CDH安装文档目录
文章目录
0、准备
- 虚拟机或者实体机,安装CenterOs 6.5
主机配置建议: 内存8G+ - 默认账户密码 admin
- 通过ifconfig查看主机ip
我这里三台虚拟机:
H1 192.168.19.128 (主机)
H2 192.168.19.129 (从机)
H3 192.168.19.130 (从机)
博文需要用到的脚本下载地址:cdh及其组件安装的shell脚本集合 。
1、配置免密码登录
1、修改hostip.properties文件,按行加入主机、从机的ip地址。
2、需要将shell文件夹上传到主节点的root目录下,在主节点机器上执
行脚本clientSSHAuthorize.sh
输入任意名字作为保存keyFile ,密码为空
注脚本执行过程:
在h1执行 ./clientSSHAuthorize.sh h2IP
脚本运行完会自动连接到h2机器,切换目录 cd shell,执行 ./otherClientSSHAuthorize h3IP
脚本运行完会自动连接到h3机器, 切换目录 cd shell,执行 ./otherClientSSHAuthorize h4IP
…
脚本运行完会自动连接到hn机器, 切换目录 cd shell,执行 ./otherClientSSHAuthorize h1IP
执行完毕
2、配置环境变量
注意:如果客户指定主机名,不使用默认的h1.hadoop等,查看shell——客户指定主机名—更改主机名.txt,参照操作。
2.1、配置主机名,安装JDK
修改 setConfig.sh 脚本内容:
#install java8
scp jdk-8u73-linux-x64.tar.gz root@$host_ip:/root/shell/
echo "====install java on $host_ip===="
ssh -p 22 root@$host_ip "cd /root/shell && tar --no-same-owner -zxvf jdk-8u73-linux-x64.tar.gz && mkdir /usr/java/ && mv jdk1.8.0_73 /usr/java/"
#source /etc/profile
ssh -p 22 root@$host_ip 'echo JAVA_HOME=/usr/java/jdk1.8.0_73 >> /etc/profile'
ssh -p 22 root@$host_ip 'echo JRE_HOME=/usr/java/jdk1.8.0_73/jre >> /etc/profile'
ssh -p 22 root@$host_ip 'echo PATH=\$PATH:\$JAVA_HOME/bin:\$JRE_HOME/bin >> /etc/profile'
ssh -p 22 root@$host_ip 'echo CLASS_PATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib >> /etc/profile'
ssh -p 22 root@$host_ip 'echo export JAVA_HOME JRE_HOME CLASS_PATH PATH >> /etc/profile'
ssh -p 22 root@$host_ip 'source /etc/profile'
echo "====finish java on $host_ip===="
在主节点上执行脚本setConfig.sh,该脚本主要完成以下工作:
1、完成关闭防火墙、修改主机名、修改主机名映射,脚本执行完毕后在每台机器上执行 java -version
,查看java是否正确安装,如果没有正确安装执行以下命令:source /etc/profile
2、完成java安装
注意: 执行完成后通过java -version验证配置安装是否生效,如显示的还是java1.7的版本,则在该机器上执行以下命令:alternatives --config java
如果出现类似以下结果:
输入正确路径对应的数字回车即可。
3、重启每台机器
reboot
2.2、安装mysql
2.2.1、查看mysql是否安装
执行命令 ps -ef | grep mysql
,查看mysql是否安装
2.2.2、主节点安装mysql
- 1、 查看是否有mysql-server
yum list mysql-server
- 2、 通过
yum install mysql-server
安装mysql服务器有选择时输入 y ,最后看
到 Complete ,表示安装服务器成功 - 3、 常见错误解决方法
如果出现 yum [Errno 256] No more mirrors to try 的错误,
输入下面的命令即可解决问题:
yum clean all
yum makecache
然后再从新执行:
yum list
yum install mysql-server 即可 - 4、 执行
startMysql.sh
初始化数据库相关信息。
2.4、NTP安装
-
1、 执行setNTP.sh,然后重启所有机器。
-
2、 执行installNTP.sh脚本,观察输出值,其中2-5为on状态就代表成功。
-
3、 常见错误解决方法
如果出现 yum [Errno 256] No more mirrors to try 的错误,输入下面的命令即可解决问题:
yum clean all
yum makecache
然后再从新执行:
yum list
yum install ntp
chkconfig ntpd on
chkconfig --list ntpd 即可 -
4、 配置NTP服务
(1) 配置主节点的ntp服务修改
masterntp.sh
这个脚本里的ntpIp为时间同步服务器ip,如图所示,这个ip地址由事业部人员提供,用于时间同步。(可以选主机ip)
(2) 然后执行脚本masterntp.sh,执行后查看ntp状态,命令ntpstat
,
这个过程需要5-10分钟,最终变成以下效果: -
5、 配置子节点的ntp服务
在主节点执行脚本slaverNtp.sh
3、CDH Manager包文件文件上传分发
- 1、下载cloudera-manager-el6-cm5.5.2_x86_64 ,放到主节点shell目录下
- 2、执行
installCDH.sh
脚本。 - 3、将CHD5相关的Parcel包上传到主节点的 /opt/cloudera/parcel-repo/ 下,相关的文件如下网页)及列表文件:
CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel
CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel.sha1
manifest.json - 4、执行脚本
startCDHService.sh
需要修改:chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo /opt/cm-5.5.2/etc/init.d/cloudera-scm-server restart for host_ip in $(cat /root/shell/hostip.properties) do echo $hostip ssh -p 22 root@$host_ip "sysctl vm.swappiness=0" ssh -p 22 root@$host_ip "echo \"vm.swappiness=0\" >> /etc/sysctl.conf" ssh -p 22 root@$host_ip "echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag" #ssh -p 22 root@$host_ip "chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo" ssh -p 22 root@$host_ip "mkdir /var/log/cloudera-scm-agent/" ssh -p 22 root@$host_ip "mkdir /var/lib/cloudera-scm-agent/ ssh -p 22 root@$host_ip "/opt/cm-5.5.2/etc/init.d/cloudera-scm-agent restart" done
4、CDH5的安装配置
- 1、Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin
192.168.19.128:7180/cmf/login - 2、选择免费版安装
没错误可以继续,
- 根据提示安装CDH包,可以在线安装,或者提前手动下载后复制到/opt/cloudera/parcel-repo目录
- 前面已经放入/opt/cloudera/parcel-repo三个文件,如下
- CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel、CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel.sha1、manifest.json,
- 这里会提示 “CDH-..-.cdh*...p0.-el.parcel没有 .sha验证文件”,将CDH-..-.cdh*...p0.-el.parcel.sha1改后缀为sha,点击刷新,就可以安装。
(另外,CDH manaenger会认CDH版本,可以根据提示在线下载选定的版本,或者手动下载后复制到/opt/cloudera/parcel-repo目录)。
所有服务都不装,主机占用内存~2G,磁盘10G, 其他从机内存400M,磁盘6G。。。
-
3、安装服务,选 自【定义服务】根据自己需要选择安装 (也可跳过后期再添加)
// 后续根据需要配置安装
Zookerper直接添加服务。
Kafka先要下载parcel包,分配成功后,再激活。最后在主页添加服务。 -
4、数据库设置
- 1、hive对应的输入hive/root/root123456
- 2、Oozie server对应的输入amon/root/root123456
-
5、Hive驱动引起的错误
解决方法, 在主节点上输入命令:
cp shell/mysql/mysql-connector-java-5.1.37-bin.jar /opt/cloudera/parcels/CDH-5.5.2-1.cdh5.5.2.p0.4/lib/hive/lib/
-
6、oozie出现以上类似错误
解决方法, 在主节点上输入命令
oozie安装出错时 把mysql-driver拷贝到 /var/lib/oozie
cp shell/mysql/mysql-connector-java-5.1.37-bin.jar /var/lib/oozie -
7、基本流程按照下面的流程走,遇到问题有相依的处理方法,但注意以下的几个配置路径要放在文件空间目录上。
-
8、完成安装
5、hdfs的高可用配置
高可用性配置参考《CDH里HDFS的HA配置.doc》。
6、kafka安装
CDH安装完成以后需要安装kafka,如何安装参见CDH集成Kafka文档:kafka_CDH/CDH集成Kafka.docx
7、配置修改
- 1、 hdfs的配置修改,将检查hdfs权限(dfs.permissions)这个勾选去除,不选中。
- 2、 flume安装完成以后需要修改系统用户和系统组为:root。
- 3、 修改flume每个要使用到的agent,单独配置修改Java堆栈大小为4G.
- 4、 kafka的日志目录设置为一个存储空间较大的磁盘,配置项为:Data Directories(log.dirs)。
- 5、 kafka每个broker单独配置该broker的advertised.host.name为本机ip,暴露本地ip供外部producer连接。
8、断电启动异常(重要)
目前仅启动 zookeeper、 kafka
断电之后,我们尝试重启cdh,通过命令行
h1.hadoop
# /opt/cm-5.5.2/etc/init.d/cloudera-scm-server restart
cloudera-scm-server is already stopped
Starting cloudera-scm-server: [ OK ]
h1-h4.hadoop
# /opt/cm-5.5.2/etc/init.d/cloudera-scm-agent restart
cloudera-scm-agent is already stopped
Starting cloudera-scm-agent: [ OK ]
都正常,但是 http://192.168.3.171:7180/cmf/home 不能访问。找到根本错误如下
[root@h1 init.d]# /opt/cm-5.5.2/etc/init.d/cloudera-scm-server status
cloudera-scm-server dead but pid file exists
先直接rm run/cloudera-scm-server.pid
, 再次启动仍然不能访问。
没有去查看cloudera的详细日志,先查看了mysql的相关进程和服务。
# /etc/rc.d/init.d/mysqld status
mysqld is stopped
[root@h1 shell]# service mysqld start
Another MySQL daemon already running with the same unix socket.
Starting mysqld: [FAILED]
[root@h1 bin]# find / -name mysql.sock
/var/lib/mysql/mysql.sock
[root@h1 bin]# mysql -u root -p -S /var/lib/mysql/mysql.sock
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
数据库异常,直接 rm /var/lib/mysql/mysql.sock
,再执行
[root@h1 mysql]# service mysqld start
Starting mysqld: [ OK ]
后面再启动cdh,再次访问7180端口网页,重启相关服务。