??
一、 准备工作
1. 需求条件
- 网速好
因为是线上安装,所以要求要有比较大的带宽,特别是并行安装台服务器时。
- 网络稳
一旦网络中断,可能你花费了半天或则一天的时间,就有可能会浪费,然后重装。
- 内存大
最少要求10G以上内存,特别NameNode节点分配的角色较多,占用内存会更多。
2. 安装环境
安装版本
OS:CentOS 6.7
CM:Cloudera Manager5.7
CHD:Cloudera Hadoop 5.7(Hadoop2.6.0,Hbase1.2.0,Hive1.1.0)
注:
初步准备6台服务器安装,后面可根据需要再添加新服务器到集群中
3. 系统配置
- 修改每台/etc/hosts文件
- 每台都要安装ssh
# yum install ssh
- 修改/usr/bin/host文件名
# mv /usr/bin/host /usr/bin/host.bak
- 修改swappiness参数配置
--临时生效配置
# echo 0 > /proc/sys/vm/swappiness
--永久生效配置
[[email protected] ~]# cat /etc/sysctl.conf
vm.swappiness = 0
二、Cloudera Manager安装
1. 下载cloudera-manager-installer.bin
下载地址:
http://archive.cloudera.com/cm5/installer/5.7.0/
2. 执行并安装CM
--赋予脚本执行权限
# chmod u+x cloudera-manager-installer.bin
--执行脚本启动安装界面
# export DISPLAY=192.168.1.198:0.0
# ./cloudera-manager-installer.bin
弹出安装界面后,同意点Next就可以:
Next:
Next:
Next:
Next:
开始安装:
安装完成:
安装完成弹出的对话框:
Your browser should now open tohttp://localhost:7180/. Log in to Cloudera Manager with the username andpassword set to ‘admin‘ to continue installation.
在安装cloudera-server的pc机下,输入下面网址即可访问:
上面点击close,会自动访问。关闭浏览器后,会看到下图
http://ip:7180/ 登录界面:
输入用户名和密码
用户名:admin
密码: admin
这样cloudera-manager-server就已经安装成功了。
三、Cloudera Hadoop集群安装
1. 选择CM版本
首先登录http://localhost:7180/管理界面,选择ClouderaHadoop版本和指定主机
我们选择ClouderExpress。
当然你选择ClouderEnterprise试用版也可以。关于Clouder Express和Clouder Enterprise的区别见文章:
http://bananalighter.com/cloudera-manager-express-vs-enterprose/
单击继续
2. 选择要安装CDH的主机
注:使用主机名的通配符或是用逗号隔开所有主机名,可点击模式查看格式。
都选中后,点击继续
3. 选择CDH存储库
4. 配置 Java 加密
5. 选择用户模式
不用单用户模式安装:
6. SSH登录主机
这里选用的是root,并且接受相同的密码。
注:
指定主机的 SSH 登录方式
一种通过root用户,密码需要一致,刚开始安装建议使用root。
也可以使用非root用户,但是需要保证sudo无密码访问
实现方法如下:
给aboutyun用户设置无密码sudo权限:
# chmod u+w /etc/sudoers
grid ALL=(root)NOPASSWD:ALL
# chmod u-w /etc/sudoers
测试:sudo ifconfig
7. 集群安装(jdk,agent)
这一步很重要,主要下载安装jdk,agent包,在线安装可能花的时间比较长,也有可能会因为主机配置不当,或是网络原因会下载安装失败,安装失败后要卸载重装。遇到的问题也在后面做了总结。
安装完成后通信就成功了。
这步可能遇到的问题比较多,下面是一结错误总结:
http://www.aboutyun.com/thread-9293-1-1.html
8. 安装Parcel包
关于Parcel的作用和原理见:
9. 检查主机正确性
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
解决办法:
# echo 0 > /proc/sys/vm/swappiness
# vi /etc/rc.local
echo 0 > /proc/sys/vm/swappiness
hadoop[0-5].hadoop.com
解决:
# echo never> /sys/kernel/mm/transparent_hugepage/defrag
# vi /etc/rc.local
echo never >/sys/kernel/mm/transparent_hugepage/defrag
问题:
IOException thrown while collecting data from host: No route to host
原因:agent开启了防火墙
解决:service iptables stop(不推荐)
10. 集群设置
选择要安装的服务,根据自己服务器性能和需要设置
分配角色:
数据库设置:
这里默认的是内嵌的PostgreSQL数据
Hive/cHHjYGNhGs
Oozie:oozie_oozie_server/n5wSvDW71N
点击测试连接检查是否连接成功。
审核更改:
这里修改要安装服务的配置参数
11. 启动服务
最后设置完成后启动服务
完成后可以主机页面看到已经成功安装的主机列表:
四、向集群中添加新主机
在主机列表页面点击“向群集中添加新主机”
1. 选择集群
选择群集名:
2. 安装CDH
下面步骤和上面安装CDH的步骤一样:
3. 添加角色
添加角色:
--添加HBase的RS (RegionServer)角色
--添加HDFS的DN(datanode)角色
添加完启动
添加NM (MR2 NodeManager)角色
五、遇到的问题
遇到的问题:
问题1:安装CDH时,手动中止安装后,出现下面的错误页面。
解决:重新启动cloudera-scm-server服务。
# service cloudera-scm-server restart
问题2:配置hive服务时出现问题
、
解决:是hive Metastore主机的服务器名配置有误,修改主机名保留后重新检查安装。
问题3:java环境变量导致hadoop命令无法使用
现象:
[root@devtest ~]# hadoop dfsadmin -report
DEPRECATED: Use of this script to executehdfs command is deprecated.
Instead use the hdfs command for it.
/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop/libexec/../../hadoop-hdfs/bin/hdfs:line 309: /usr/java/jdk1.6.0_18/bin/java: 没有那个文件或目录
/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hadoop/libexec/../../hadoop-hdfs/bin/hdfs:line 309: exec: /usr/java/jdk1.6.0_18/bin/java: cannot execute: 没有那个文件或目录
查看系统java的版本,是1.6.0_29
[root@devtest ~]# java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build20.4-b02, mixed mode)
可我明明安装了java 1.7版本的啊,为什么查看时还是1.6版本的?
[root@devtest ~]# rpm -qa oracle-j2sdk1.7
oracle-j2sdk1.7-1.7.0+update67-1.x86_64
解决:
[root@devtest ~]# rpm -qa jdk
jdk1.6.0_29
[root@devtest ~]# rpm -e jdk1.6.0_29
[root@devtest ~]# cd /usr/java
[root@devtest java]# ls
jdk1.6.0_29 jdk1.6.0_31 jdk1.7.0_67-cloudera jdk1.8.0_66 jdk-8u66-linux-x64.tar.gz jre-6u29-linux-amd64.rpm jre-6u29-linux-x64-rpm.bin
--添加java环境变量
[root@devtest java]# vi /etc/profile
exportJAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
exportPATH="$PATH:$JAVA_HOME/bin"
export JRE_HOME="$JAVA_HOME/jre"
exportCLASSPATH=".:$JAVA_HOME/lib:$JRE_HOME/lib"
--重新登录
[root@devtest java]# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build24.65-b04, mixed mode)
[root@devtest java]#
Java
问题4:“该主机未与Host Monitor建立联系”
信息:不良,该主机已与Cloudera Manager Server建立联系,该机未与HostMonitor建立联系。
解决:重新启动agent
# service cloudera-scm-agent restart
-----删除cluster2以后,再新添加webdb2到cluster1
问题5:集群安装jdk,agent时的问题
解决:查看/etc/hosts的IP和hostname是否对应
[root@clouds ~]# python -c ‘import socket;print socket.getfqdn(), socket.gethostbyname(socket.getfqdn())‘
clouds 10.1.5.247
问题总结:
http://www.aboutyun.com/thread-9087-1-1.html
参考:http://www.aboutyun.com/thread-9303-1-1.html
??