03 - CDH 6.3.x 安装

拥有回忆 提交于 2019-12-05 19:15:32

CDH 6.3.x 离线安装

环境

修改主机名,配置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
  • 所有节点使用相同的密码,在安装的时候使用密码操作。

机器间时钟同步

PG数据库

准备CM软件

准备CDH软件

准备yum源

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驱动

配置集群

这里搜索我们的机器,注意上面安装 agent 包的时候不要启动 agent 服务。

这里使用本地仓库地址:http://node1/cloudera-repo

这里不勾选,上面我们已经在每个机器上安装了jdk

所有机器的密码相同,也就不需要使用上面的免Key登录了。

在各个节点安装 agent 服务。

这里进行网络和主机配置检查,根据提示调整机器配置,我这里先跳过了。

选择安装的服务,这里我们自定义:先之选一个 HDFS 服务。

然后为每个服务的角色分配所在主机节点:

配置 HDFS 的基本参数,留意数据存放路径,需要是机器上存放数据的目录,这个目录需要足够大。

然后等待安装完成即可。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!