03 - CDH 6.3.x 安装
CDH 6.3.x 离线安装
环境
- CDH 6.3.1
- CentOS 7
- 官方文档
修改主机名,配置host文件
# 根据个人需要修改主机名称
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
# 修改每个主机的 host 文件
vi /etc/hosts
172.16.1.181 node1
172.16.1.182 node2
172.16.1.183 node3
关闭系统默认安全防护
- 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld
ssh 使用密钥登陆
- node1 到其他节点即可,配置参考文档:Linux SSH 使用密钥登陆.md
- 所有节点使用相同的密码,在安装的时候使用密码操作。
机器间时钟同步
- 所有节点时间必须一致,配置参考文档:Linux 配置时钟同步.md
PG数据库
- 可以选择的数据有多种,这里使用PG,配置参考文档:PostgreSQL 安装之 CentOS 7 x64 RPM 安装.md
- 注意开启远程访问,使每个节点都能访问到数据库。
- 注意安装驱动程序。
准备CM软件
准备CDH软件
准备yum源
安装http和yum源
- 这里仅在 node1 上安装即可。
yum install httpd createrepo -y
安装JDK
- 将 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 上传到每个节点上面。
- 确认已经卸载了机器自带的OpenJDK。
- 最后安装此包并验证。
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
# 默认会安装到如下目录中:
cd /usr/java/jdk1.8.0_181-cloudera
java -version
修改系统参数
- 修改Linux swappiness参数(所有节点)
# 在 SentOS7 中 tuned 服务会动态调整系统参数,查找tuned中配置,直接修改配置
cd /usr/lib/tuned/
grep "vm.swappiness" * -R
latency-performance/tuned.conf:vm.swappiness=10
throughput-performance/tuned.conf:vm.swappiness=10
virtual-guest/tuned.conf:vm.swappiness = 30
# 然后将文件中的配置依次修改为 0,修改后将这些文件同步到其他机器上
- 禁用透明页(所有节点)
vi /etc/rc.local
# 在文件中添加如下内容:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
配置本地Parcel存储库,在Node1
- 创建/opt/cloudera/parcel-repo目录,将下载好的 parce 和 manifest.json 文件放置到该目录,命令如下:
mkdir -p /opt/cloudera/parcel-repo
[root@node1 parcel-repo]# ls -lart
总用量 2035088
drwxr-xr-x. 3 root root 24 10月 24 10:39 ..
-rw-r--r--. 1 root root 33887 10月 24 10:40 manifest.json
-rw-r--r--. 1 root root 2083878000 10月 24 11:17 CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel
-rw-r--r--. 1 root root 40 10月 24 11:17 CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1
drwxr-xr-x. 2 root root 4096 10月 24 11:17 .
-rw-r--r--. 1 root root 64 10月 24 11:17 CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha256
[root@cdh01 parcel-repo]# sha1sum CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel | awk '{ print $1 }' > CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
安装CM
- 创建CM存放路径,将如下内容上传到该目录中。
# 创建目录,复制CM文件到此目录中。
mkdir /opt/cloudera/cloudera-repo
[root@node1 cloudera-repo]# createrepo .
Spawning worker 0 with 3 pkgs
Spawning worker 1 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@node1 cloudera-repo]# ll
总用量 1366552
-rw-r--r--. 1 root root 10483568 10月 24 13:34 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 root root 1203832464 10月 24 13:54 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 root root 232 10月 24 13:34 cloudera-manager.repo
-rw-r--r--. 1 root root 11488 10月 24 13:54 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 root root 10996 10月 24 13:54 cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 root root 184988341 10月 24 13:34 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
drwxr-xr-x. 2 root root 4096 10月 24 13:56 repodata
-rw-r--r--. 1 root root 1718 10月 24 13:34 RPM-GPG-KEY-cloudera
# 将 cloudera-repo 整个目录复制到 /var/www/html 目录下
cp -r /opt/cloudera/cloudera-repo /var/www/html
# 将上面下载的 allkeys.asc 文件也放置在 html 目录下
# 在 /etc/yum.repos.d 目录下新建 cloudera-manager.repo 文件,在每个节点都需要创建
cd /etc/yum.repos.d/
vi cloudera-manager.repo
# 在cloudera-manager.repo 文件添加如下内容:
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://node1/cloudera-repo/
gpgkey=http://node1/cloudera-repo/RPM-GPG-KEY-cloudera
gpgcheck=1
enabled=1
autorefresh=0
type=rpm-md
# 保存退出后更新源信息
yum clean all
yum makecache
# 安装CDH所依赖的包,如下是从互联网搜集的(实际的测试环境下是可以联网下载的,这里先不补充)
yum install edhat-lsb portmap mod_ssl openssl-devel python-psycopg2
yum install chkconfig bind-utils libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs
# 安装守护进程包(每个节点都需要安装)
yum install cloudera-manager-daemons -y
# 安装 agent 软件包(每个节点都要安装,会自动更新一些依赖包)
yum install cloudera-manager-agent -y
# 安装 server 软件包(仅Server需要安装)
yum install cloudera-manager-server -y
# 创建CM所需要的数据库、用户
su - postgres
psql
CREATE ROLE scm LOGIN PASSWORD 'scm';
CREATE ROLE hive LOGIN PASSWORD 'hive';
CREATE ROLE oozie LOGIN PASSWORD 'oozie';
CREATE ROLE hue LOGIN PASSWORD 'hue';
CREATE DATABASE scm OWNER scm ENCODING 'UTF8';
CREATE DATABASE hive OWNER hive ENCODING 'UTF8';
CREATE DATABASE oozie OWNER oozie ENCODING 'UTF8';
CREATE DATABASE hue OWNER hue ENCODING 'UTF8';
# 针对8.4以上版本的 pg 在使用 hive 和 oozie 的时候需要关闭如下配置:
ALTER DATABASE hive SET standard_conforming_strings=off;
ALTER DATABASE oozie SET standard_conforming_strings=off;
# 初始化 scm 数据库,可以在命令上显示的写出 pg 数据库 scm 用户的密码,也可以在下面输入你的密码:
[root@node1 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh postgresql scm scm [password]
Enter SCM password: [input your password]
JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_181-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
# 启动 Server 服务,这里不用启动 agent,后面从Web界面上安装的时候直接启动。
systemctl start cloudera-scm-server
systemctl status cloudera-scm-server
- 自动安装的依赖包如下:
作为依赖被安装:
GeoIP.x86_64 0:1.5.0-14.el7
MySQL-python.x86_64 0:1.2.5-1.el7
at.x86_64 0:3.1.13-24.el7
bc.x86_64 0:1.06.95-13.el7
bind-export-libs.x86_64 32:9.11.4-9.P2.el7 bind-libs.x86_64 32:9.11.4-9.P2.el7
bind-utils.x86_64 32:9.11.4-9.P2.el7
cups-client.x86_64 1:1.6.3-40.el7
cups-libs.x86_64 1:1.6.3-40.el7
cyrus-sasl-gssapi.x86_64 0:2.1.26-23.el7
cyrus-sasl-plain.x86_64 0:2.1.26-23.el7
ed.x86_64 0:1.9-4.el7
fuse.x86_64 0:2.9.2-11.el7
geoipupdate.x86_64 0:2.5.0-1.el7
keyutils-libs-devel.x86_64 0:1.5.8-3.el7
krb5-devel.x86_64 0:1.15.1-37.el7_7.2
libcom_err-devel.x86_64 0:1.42.9-16.el7
libkadm5.x86_64 0:1.15.1-37.el7_7.2
libselinux-devel.x86_64 0:2.5-14.1.el7
libsepol-devel.x86_64 0:2.5-10.el7
libtirpc.x86_64 0:0.2.4-0.16.el7
libverto-devel.x86_64 0:0.2.5-4.el7
m4.x86_64 0:1.4.16-10.el7
mailx.x86_64 0:12.5-19.el7
mod_ssl.x86_64 1:2.4.6-90.el7.centos
openssl-devel.x86_64 1:1.0.2k-19.el7
patch.x86_64 0:2.7.1-12.el7_7
pcre-devel.x86_64 0:8.32-17.el7
psmisc.x86_64 0:22.20-16.el7
python-psycopg2.x86_64 0:2.5.1-4.el7
redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1
redhat-lsb-submod-security.x86_64 0:4.1-27.el7.centos.1
rpcbind.x86_64 0:0.2.0-48.el7
spax.x86_64 0:1.5.2-13.el7
time.x86_64 0:1.7-45.el7
zlib-devel.x86_64 0:1.2.7-18.el7
更新完毕:
selinux-policy-targeted.noarch 0:3.13.1-252.el7.1
作为依赖被升级:
bind-libs-lite.x86_64 32:9.11.4-9.P2.el7
bind-license.noarch 32:9.11.4-9.P2.el7
cyrus-sasl-lib.x86_64 0:2.1.26-23.el7
dhclient.x86_64 12:4.2.5-77.el7.centos
dhcp-common.x86_64 12:4.2.5-77.el7.centos
dhcp-libs.x86_64 12:4.2.5-77.el7.centos
e2fsprogs.x86_64 0:1.42.9-16.el7
e2fsprogs-libs.x86_64 0:1.42.9-16.el7
krb5-libs.x86_64 0:1.15.1-37.el7_7.2
libcom_err.x86_64 0:1.42.9-16.el7
libselinux.x86_64 0:2.5-14.1.el7
libselinux-python.x86_64 0:2.5-14.1.el7
libselinux-utils.x86_64 0:2.5-14.1.el7
libsemanage.x86_64 0:2.5-14.el7
libsepol.x86_64 0:2.5-10.el7
libss.x86_64 0:1.42.9-16.el7
pcre.x86_64 0:8.32-17.el7
policycoreutils.x86_64 0:2.5-33.el7
selinux-policy.noarch 0:3.13.1-252.el7.1
zlib.x86_64 0:1.2.7-18.el7
- 安装PG驱动
配置集群
- 本地浏览器上输入http://node1:7180,然后进去配置机器。
这里搜索我们的机器,注意上面安装 agent 包的时候不要启动 agent 服务。
这里使用本地仓库地址:http://node1/cloudera-repo
这里不勾选,上面我们已经在每个机器上安装了jdk
所有机器的密码相同,也就不需要使用上面的免Key登录了。
在各个节点安装 agent 服务。
这里进行网络和主机配置检查,根据提示调整机器配置,我这里先跳过了。
选择安装的服务,这里我们自定义:先之选一个 HDFS 服务。
然后为每个服务的角色分配所在主机节点:
配置 HDFS 的基本参数,留意数据存放路径,需要是机器上存放数据的目录,这个目录需要足够大。
然后等待安装完成即可。
本文来自博客园,作者:duchaoqun,转载请注明原文链接:https://www.cnblogs.com/duchaoqun/p/11940925.html