前言
本文主要记录在Centos7.3下使用jdk1.8安装CDH和Cloudera Manager。安装的版本为Cloudera Manager 5.15.1,如遇不同版本,安装方式大致相同。
内容 | 版本 |
OS | CentOS Linux release 7.3.1611 |
JDK | 1.8 |
Cloudera Manager | 5.15.1 |
本次安装使用了3台虚拟机服务器
主机名 | 配置 | IP | 用途 |
cdh01 | 4核8G内存 | 192.168.1.21 | 主,安装CM |
cdh02 | 4核8G内存 | 192.168.1.22 | 从,slaver |
cdh03 | 4核8G内存 | 192.168.1.23 | 从,slaver |
1、准备工作
1.1 虚拟机环境准备
- 3台虚拟机分别安装操作系统,配置网络IP地址、主机名
- 修改SELINUX=disabled,重启主机
- 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
1.2 配置hosts
echo '192.168.1.21 cdh01
192.168.1.22 cdh02
192.168.1.23 cdh03' >> /etc/hosts
1.3 配置所有节点ssh无密码登录
先在cdh01上执行:
ssh-keygen -t rsa #一路回车到完成
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh01 #将公钥拷贝到本机的authorized_keys上
再在其他节点分别执行以下命令:
ssh-keygen -t rsa #一路回车到完成
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh01 #注意此处不变,将公钥拷贝到cdh01的authorized_keys上
在cdh01上,将authorized_keys分发到其他节点服务器:
scp ~/.ssh/authorized_keys root@cdh02:~/.ssh/
scp ~/.ssh/authorized_keys root@cdh03:~/.ssh/
1.4 安装配置NTP同步
1)所有节点执行yum install -y ntp安装ntp服务
2)在cdh02, cdh03上修改/etc/ntp.conf配置,修改成如下配置
server cdh01
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
3)检查每个节点的ntp服务状态:ntpq -p
cdh01:
[root@cdh01 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*cn.ntp.faelix.n 185.134.196.169 2 u 21 64 377 286.756 14.200 184.209
CDH02/03:
[root@cdh02 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
cdh01 185.134.197.4 3 u 49 64 0 0.000 0.000 0.000
*biisoni.miuku.n 204.123.2.72 2 u 38 64 1 193.145 15.573 0.137
1.5 下载离线安装文件
- 下载CM安装文件及需要的jdk1.7软件包
wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/RPMS/x86_64/cloudera-manager-agent-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/RPMS/x86_64/cloudera-manager-server-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/RPMS/x86_64/cloudera-manager-server-db-2-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/RPMS/x86_64/enterprise-debuginfo-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/RPMS/x86_64/cloudera-manager-daemons-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
注:cloudera-manager安装时必须使用oracle-j2sdk,所以CM节点需要先按照jdk1.7版本
- 下载cloudera-manager安装文件
wget http://archive.cloudera.com/cm5/installer/5.15.1/cloudera-manager-installer.bin
- 下载parcel(文件比较大,2G)
wget http://archive.cloudera.com/cdh5/parcels/5.15.1/CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel
wget http://archive.cloudera.com/cdh5/parcels/5.15.1/CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1
-
下载rpm仓库文件,修改仓库文件
cloudera-manager.repo
,把版本号加上5.15.1
wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo
vi cloudera-manager.repo
[cloudera-manager]
# Packages for Cloudera Manager, Version 5, on RedHat or CentOS 7 x86_64
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/
gpgkey =https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/RPM-GPG-KEY-cloudera
gpgcheck = 1
- 下载jdk 1.8安装包
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2 上传软件包
1)在每个节点上建立/root/soft目录
2)使用xftp工具将下载的软件按下表上传到/root/soft目录下
主机 | 用途 | 软件包 |
cdh01 | 主 | cloudera-manager-agent-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm cloudera-manager-daemons-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm cloudera-manager.repo oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm cloudera-manager-server-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm cloudera-manager-server-db-2-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm enterprise-debuginfo-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm cloudera-manager-installer.bin CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 jdk1.8.0_101-linux-x64.tar.gz |
cdh02-03 | 从 | cloudera-manager-agent-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm cloudera-manager-daemons-5.15.1-1.cm5151.p0.3.el7.x86_64.rpm cloudera-manager.repo jdk1.8.0_101-linux-x64.tar.gz |
3)在每个节点上将cloudera-manager.repo拷贝到/etc/yum.repos.d/
cp /root/soft/cloudera-manager.repo /etc/yum.repos.d/
3 安装软件
3.1 安装软件包
在每个节点/root/soft目录下执行:1)安装命令
yum localinstall -y --nogpgcheck *.rpm
2)安装jdk1.8并添加java环境变量
tar -xzf jdk1.8.0_101-linux-x64.tar.gz -C /opt/
echo 'export JAVA_HOME=/opt/jdk1.8.0_101
export CLASSPATH=.:$CLASSPTAH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin ' >> /etc/profile
source /etc/profile
安装完后检查
yum list | grep cloudera
yum list|grep oracle-j2sdk # cloudera-manager安装节点上检查此包
service cloudera-scm-agent status #检查agent状态
检查java命令是否正常
java -version
每个节点配置sudoers,否则后面安装HDFS/Hive等服务时会报错误
echo 'cloudera-scm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
由于上面的软件包是使用root用户安装的,而运行时用户为cloudera-scm,需要在每个节点上重设一下/var/log/cloudera-scm-agent下文件的权限
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-agent/ -R
systemctl restart cloudera-scm-agent
3.2 安装cloduera manager二进制安装包
进入cdh01的/root/soft所在目录
设置安装权限并执行安装:
rm -rf /etc/cloudera-scm-server/db.properties
chmod u+x cloudera-manager-installer.bin
./cloudera-manager-installer.bin
注意,如果出现下面的错误,可以重新执行安装命令,直到提示安装成功。
相同配置下顺利安装时间在1分钟内即可完成。
然后我们在web浏览器访问 http://192.168.1.21:7180/,看是否能打开页面即可,先不要进行登录操作。
注意:chd server服务器启动需要一些时间,等1分钟左右。
如果能访问,那证明 cloudera manager安装正常。
4 CDH服务安装
4.1 制作本地parcel
前面完成cloudera manager安装之后cdh01会在/opt目录下生成cloudera文件夹,将之前下载好的CDH-*文件移动到parcel-repo文件夹中,在cdh01中执行:
mv CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel /opt/cloudera/parcel-repo
mv CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha #注意后缀名有重命名
将cloudera manager的用户授权给/opt和日志目录:
chown cloudera-scm:cloudera-scm /opt/cloudera/ -R
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-agent/ -R
重启cloudera-scm-server(重要)
# 修改cm的jdk
echo 'export JAVA_HOME=/opt/jdk1.8.0_101' >> /etc/default/cloudera-scm-server
# 重启cm
/etc/init.d/cloudera-scm-server restart #或者 systemctl restart cloudera-scm-server
重启速度较慢,约1-2分钟后访问 http://192.168.1.21:7180 登陆,账号密码 admin, 密码admin
选择免费版本,一路next开始安装。
4.2 集群安装
1)登录http://192.168.1.21:7180,输入用户名admin密码admin,接受许可条款
2)选择Cloudera Express版本
3)添加主机
4)选择CDH 5.15版本
5)JDK安装选择,此处不选(重要,否则CDH会使用jdk 1.7版本)
6)用户模式。(重要:不启用单用户模式,单用户模式安装会有问题)
7)安装代理,如果前面工作都没错误的话这步1分钟左右很快就安装完
这一步CM节点没加进来也没关系,后面在进行服务安装前在新浏览器窗口中进主界面添加节点。
8)安装CDH包
9)检查主机状态
在每个节点上修改cm-agent的jdk版本
echo 'export JAVA_HOME=/opt/jdk1.8.0_101' >> /etc/default/cloudera-scm-agent
systemctl restart cloudera-scm-agent
然后点击“重新运行按钮”,查看运行结果中jdk1.8为所有主机
进入CM界面,给每一个主机设置java主目录
进入CM界面,检查所有主机状态,确保都检查通过
异常处理
1)已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 6.3 (Final)”且版本为“2.6.32-279.el6.x86_64”的 Kernel 已将 enabled 设置为“[always] never”,并将 defrag 设置为“[always] never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会设置它
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
2)Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
echo 0 > /proc/sys/vm/swappiness
sysctl vm/swappiness
echo 'vm.swappiness = 0'>> /etc/sysctl.conf
sysctl -p
4.3 服务安装
1)选择含spark的服务
2)定义服务角色分配
HDFS的DataNode选择3个主机,zookeeper选择3个主机
3)选择数据库
4)按默认配置接着安装后面的,如果前面步骤都没问题,后面能够顺利安装