CDH集群搭建步骤详细文档
CDH (Cloudera‘s Distribution,including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
CDH集群服务器规划:192.168.2.41(CDH1),192.168.2.51(CDH2),192.168.2.61(CDH3)
操作系统:CentOS6.5 x64
Cloudera Manager:5.8.0
CDH: 5.8.0
采用parcel离线安装方式,安装方便,重装什么的都非常方便。后期的集群统一包升级也非常好。
Cloudera Manager下载地址:
http://archive-primary.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.8.0_x86_64.tar.gz
CDH安装包地址:
http://archive.cloudera.com/cdh5/parcels/5.8.0/
由于我们的操作系统为CentOS6.5,需要下载以下文件:
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
manifest.json
以下操作均用root用户操作。
vi /etc/sysconfig/network 修改hostname:
通过 service network restart 重启网络服务生效。
vi /etc/hosts ,修改ip与主机名的对应关系
注意:这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误。
在主节点上执行 ssh-keygen -t rsa 一路回车,生成无密码的密钥对。
然后执行以下命令复制公钥文件到所有datenode节点:
[root@cdh1 ~]# ssh-copy-id cdh1 [root@cdh1 ~]# ssh-copy-id cdh2 [root@cdh1 ~]# ssh-copy-id cdh3
测试:在主节点上ssh cdh2,正常情况下,不需要密码就能直接登陆进去了。
CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持。
卸载自带的OpenJdk,使用 rpm -qa | grep java 查询java相关的包,使用 rpm -e --nodeps 包名卸载之。
去Oracle的官网下载jdk。
http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz
解压安装包
[root@cdh1~]# tar –zxf jdk-7u79-linux-x64.tar.gz–C /usr/local [root@cdh1~]# cd/usr/local [root@cdh1~]# ln –sv jdk1.7.0_79/jdk [root@cdh1~]# vi /etc/profile.d/jdk.sh exportJAVA_HOME=/usr/local/jdk exportPATH=$PATH:JAVA_HOME/bin [root@cdh1~]# chmod 755 /etc/profile.d/jdk.sh [root@cdh1~]# . /etc/profile.d/jdk.sh
查看是否安装成功
[root@cdh1~]# java -version javaversion "1.7.0_79" Java(TM)SE Runtime Environment (build 1.7.0_79-b15) JavaHotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) [root@cdh1~]#
通过 yum installmysql-server 安装mysql服务器。 chkconfig mysqld on 设置开机启动,并 service mysqld start 启动mysql服务。
mysql -uroot-pxxxx 进入mysql命令行,创建以下数据库:
createdatabase hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; createdatabase hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; createdatabase Reports DEFAULT CHARSET utf8 COLLATE utf8_general_ci; createdatabase Oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
设置root授权访问以上所有的数据库:
#授权root用户在主节点拥有所有数据库的访问权限
grantall privileges on *.* to root@cdh1 identified by ‘123456‘; flushprivileges;
注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙:
serviceiptables stop (临时关闭) chkconfigiptables off (重启后生效)
关闭SELinux
setenforce 0(临时生效) 修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
各集群节点服务器必须同步时间,如果时间相差太大,在安装CDH是可能会出现各种异常报错。
安装ntp
yuminstall ntp ntpdate
ntp同步时间命令,这里用1.cn.pool.ntp.org做时间同步服务器
ntpdate1.cn.pool.ntp.org
主节点解压安装
cloudera manager的目录默认位置在/opt,将其解压到opt目录下
[root@cdh1opt]# tar -zxvf cloudera-manager-el6-cm5.8.0_x86_64.tar.gz –C /opt
将解压出来的两个目录的所有者改成root
chown -Rroot.root /opt/cloudera/ chown -Rroot.root /opt/cm-5.8.0/
为Cloudera Manager 5建立数据库,首先需要去MySql的官网下载JDBC驱动。
地址:http://dev.mysql.com/downloads/connector/j/
解压后,找到mysql-connector-java-5.1.41-bin.jar,放到/opt/cm-5.8.0/share/cmf/lib/中。
cp mysql-connector-java-5.1.41-bin.jar /opt/cm-5.8.0/share/cmf/lib/
在主节点初始化CM5的数据库:
/opt/cm-5.8.0/share/cmf/schema/scm_prepare_database.shmysql cm -h localhost -uroot -p123456 --scm-host localhost scm scm scm
Agent配置:
修改/opt/cm-5.8.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。
server_host=cdh1
创建cloudera-scm-agent的pid目录
mkdir/opt/cm-5.8.0/run/cloudera-scm-agent
同步Agent到其他节点
scp -r/opt/cm-5.8.0/ cdh2:/opt/ scp -r/opt/cm-5.8.0/ cdh3:/opt/
在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.8.0/run/cloudera-scm-server/ --no-create-home--shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中。
相关的文件如下:
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
manifest.json
最后将CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1文件后缀改成sha。否则,系统会重新下载CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel文件。
服务端:
/opt/cm-5.8.0/etc/init.d/cloudera-scm-serverstart
客户端:(所有节点启动)启动Agent服务。
/opt/cm-5.8.0/etc/init.d/cloudera-scm-agentstart
我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin
勾选接受条款,点击继续
可以看到,免费版本的CM5已经没有原来50个节点数量的限制了。
点击继续
各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。
出现以下包名和对应CDH版本,说明本地Parcel包配置无误,这里选择5.8.0,直接点继续。
如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约10多分钟,取决于内网网速。
接下来是服务器检查,可能会遇到以下问题:
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
通过 echo 0> /proc/sys/vm/swappiness 即可解决。点击完成。
接下来,选择安装服务。
进行集群设置角色分配,没特殊要求的话,选默认即可,点继续。
数据库设置
点击连接测试,当全部都显示Successful,点击继续
选择默认,点击继续。
开始安装配置服务,等待完成。
安装完成,登陆控制台
原文地址:http://12676522.blog.51cto.com/12666522/1934844