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软件
# 根据个人需要修改主机名称 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
准备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 的基本参数,留意数据存放路径,需要是机器上存放数据的目录,这个目录需要足够大。
然后等待安装完成即可。