CDH5.1.3安装手册

CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了不少补丁,可直接用于生产环境。java

Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理作了极大简化。node

注:本文档全部操做均使用root登录操做。mysql

1     节点说明

iplinux

节点编号web

名称sql

物理机shell

192.168.1.170数据库

masterexpress

管理节点json

本地

192.168.1.181

n1

节点1

本地

192.168.1.182

n2

节点2

192.168.1.5

192.168.1.184

n3

节点3

192.168.1.5

 

2     网络配置(全部节点)

2.1 设置本地主机名(HOSTNAME)

打开/etc/sysconfig/network文件。

修改”HOSTNAME”为指定的节点编号。

如图所示:

 

2.2 开启网络服务

在命令窗口执行:service network restart

重启网络服务生效。

 

2.3 修改ip与主机对应关系

打开/etc/hosts文件。

将ip及节点编号存入。例如:

192.168.1.170   master

192.168.1.181   n1

192.168.1.182   n2

192.168.1.184   n3

如图所示:

 

注意:这里须要将每台机器的ip及主机名对应关系都写进去,管理节点的也要写进去,不然启动Agent的时候会提示hostname解析错误。

 

3     打通SSH,设置ssh无密码登录(全部节点)

3.1 仅在主节点上设置无密码登录

一、   在命令窗口执行:ssh-keygen -t rsa

此后,一路回车,生成无密码的密钥对。

二、   以后在命令窗口执行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

将公钥添加到认证文件中。

三、   再以后,在命令窗口执行:chmod 600 ~/.ssh/authorized_keys

设置authorized_keys的访问权限。

3.2 对设置结果进行测试,同时将秘钥拷贝(需datanode节点在线)

在命令窗口执行:scp ~/.ssh/authorized_keys root@n1:~/.ssh/

测试:在主节点上ssh 节点n1,正常状况下,不须要密码就能直接登录进去了。

有时可能须要重启才能联通。

 

4     安装Oracle的Java(全部节点)

CentOS自带OpenJdk,但运行CDH5须要使用Oracle的Jdk,须要Java 7的支持。

4.1 卸载自带的OpenJdk

在命令窗口执行:rpm -qa | grep java

4.2 安装jdk

一、  在/etc下建立文件夹/java,并将jdk-7u79-linux-x64.tar.gz拷贝到”/etc/java文件夹中”

二、  在命令窗口执行:tar xvf jdk-7u79-linux-x64.tar.gz

进行解压缩。

三、  打开/etc/profile文件,在末尾追加以下内容:

export JAVA_HOME=/etc/java/jdk1.7.0_79

export JRE_HOME=/etc/java/jdk1.7.0_79/jre

export PATH=$PATH:/etc/java/jdk1.7.0_79/bin

export CLASSPATH=./:/etc/java/jdk1.7.0_79/lib:/etc/java/jdk1.7.0_79/jre/lib

四、  从新启动系统后,输入:java -version,若是看到以下截图说明你的jdk已经安装成功了。

 

5     安装配置MySql(仅主节点)

5.1 安装mysql服务器

在命令窗口执行:yum install mysql-server

5.2 设置mysql服务

“mysqld”是用来启动mysql数据库的命令。

设置开机启动,在命令窗口执行:chkconfig mysqld on

启动mysql服务,在命令窗口执行:service mysqld start

5.3 初始化mysql默认帐户root的密码为root

在命令窗口执行:mysqladmin -u root password 'root'

5.4 用root帐户进入mysql

在命令窗口执行:mysql -uroot -proot(注意此处语法为mysql –u用户名 –p密码)

5.5 建立所需数据库

在命令窗口执行:create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;(#hive)

以后,在命令窗口再执行:create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;(#activity monitor)

5.6 设置root帐户在主节点拥有mysql全部数据库的访问权限

在命令窗口执行:grant all privileges on *.* to 'root'@'master' identified by 'root' with grant option;(注意identified by后跟的是’密码’)

以后,为促使设置生效,在命令窗口执行:flush privileges;

最终可执行”exit;”命令退出mysql登录状态。

 

6     关闭防火墙和SELinux (全部节点)

6.1 关闭防火墙

在命令窗口执行:service iptables stop(临时关闭)

在命令窗口执行:chkconfig iptables off(重启后生效)

6.2 关闭SELINUX

在命令窗口执行:setenforce 0(临时关闭)

修改/etc/selinux/config文件中的 SELINUX=disabled(重启后永久生效)

 

7     配置NTP服务(全部节点)

集群中全部主机必须保持时间同步,若是时间相差较大会引发各类问题。具体思路以下:

master节点做为ntp服务器与外界对时中心同步时间,随后对全部datanode节点提供时间同步服务。

全部datanode节点以master节点为基础同步时间。

7.1 安装相关组件(全部节点)

在命令窗口执行:yum install ntp

7.2 设置开机启动(全部节点)

在命令窗口执行:chkconfig ntpd on

7.3 检查是否设置成功(全部节点)

在命令窗口执行:chkconfig --list ntpd

其中2-5为on(启动)状态就表明成功

7.4 主节点的配置文件设置(仅主节点)

打开/etc/ntp.conf文件,注释掉“server”相关的内容,仅留以下内容:

driftfile /var/lib/ntp/drift

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict -6 ::1

# 容许内网其余机器同步时间

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 0.centos.pool.ntp.org perfer

# 容许上层时间服务器主动修改本机时间

restrict 0.centos.pool.ntp.org nomodify notrap noquery

# 外部时间服务器不可用时,以本地时间做为时间服务

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

 

7.5 设置对时中心(仅主节点)

设置配置文件,

为免本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用阿里巴巴0.centos.pool.ntp.org做为对时中心,

在命令窗口执行:ntpdate -u 0.centos.pool.ntp.org

7.6 启动NTP服务(仅主节点)

在命令窗口执行:service ntpd start

以后,在命令窗口执行:ntpstat(查看同步状态,出现下图所示内容表示同步成功)

若是出现异常请等待几分钟,通常等待5-30分钟才能同步。

 

7.7 各datanode节点的配置文件设置(仅datanode节点)

打开/etc/ntp.conf文件,注释掉“server”相关的内容,仅留以下内容:

driftfile /var/lib/ntp/drift

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict -6 ::1

#这里是主节点的主机名或者ip,仅设置主节点

server master

# 外部时间服务器不可用时,以本地时间做为时间服务

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

注:若是在命令窗口执行:ntpdate -d master出现以下结果:

正常状况下stratum这个值得范围是“0~15”。出现这个状况,是由于NTP server尚未和其自身或者它的server同步上。须要查主节点服务是否已经正常启动。

 

8     安装Cloudera Manager Server 和Agent

8.1 解压缩Cloudera Manager组件(仅主节点)

将下载的cloudera-manager-el6-cm5.1.3_x86_64.tar.gz文件放在/opt目录下,以后解压缩,进入/opt目录后,在命令窗口执行:tar xzvf cloudera-manager*.tar.gz

8.2 安装mysql数据库驱动(仅主节点)

找到mysql的jdbc驱动mysql-connector-java-5.1.38-bin.jar,并放到/opt/cm-5.1.3/share/cmf/lib/中。

8.3 在主节点建立cloudera-scm用户(主节点)

在命令窗口执行:useradd --system --home=/opt/cm-5.1.3/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

8.4 初始化CM5的数据库(仅主节点)【暂时报错,但不知是否有影响】

在命令窗口执行:/opt/cm-5.1.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm

 

报错信息以下:

[root@master ~]# /opt/cm-5.1.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm

Verifying that we can write to /opt/cm-5.1.3/etc/cloudera-scm-server

log4j:ERROR Could not find value for key log4j.appender.A

log4j:ERROR Could not instantiate appender named "A".

Creating SCM configuration file in /opt/cm-5.1.3/etc/cloudera-scm-server

groups: cloudera-scm:无此用户

Executing:  /etc/java/jdk1.7.0_79/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cm-5.1.3/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cm-5.1.3/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.

log4j:ERROR Could not find value for key log4j.appender.A

log4j:ERROR Could not instantiate appender named "A".

[2016-04-13 03:18:09,146] INFO     0[main] - com.cloudera.enterprise.dbutil.DbCommandExecutor.testDbConnection(DbCommandExecutor.java:238) - Successfully connected to database.

All done, your SCM database is configured correctly!

 

8.5 Agent配置(仅主节点)

修改/opt/cm-5.1.3/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名,即将”server_host”的值置为”master”。

8.6 同步Agent到其余节点(在主节点同步到其余节点)

在命令窗口对各节点执行:scp -r /opt/cm-5.1.3 root@n1:/opt/

8.7 在各datanode节点建立cloudera-scm用户(各datanode节点)

在命令窗口执行:useradd --system --home=/opt/cm-5.1.3/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

8.8 准备Parcels,用以安装CDH5(仅主节点)

将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo须要手动建立)。

相关的文件以下:

1>、CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel

2>、CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1

3>、manifest.json

最后将CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1,重命名为CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha,这点必须注意,不然,系统会从新下载CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel文件。

8.9 相关服务启动(全部节点)

在命令窗口执行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-server start(启动cloudera-scm服务端)(仅主节点)。

以后,在命令窗口执行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start(启动Agent服务)(主节点及各datanode节点)。

在此启动的实际上是个service脚本,须要中止服务将以上的start参数改成stop就能够了,重启是restart。

 

9     CDH5安装前,Datanode节点扩展(包括全部节点的修改)

9.1 Datanode节点nN建立(以某一个datanode节点为模板进行)

以VMware的克隆功能生成一个节点所在的虚拟机。

9.2 新节点nN内的基本设置(仅新建的datanode节点)

一、在系统->首选项->网络链接中,进行网络设置。

二、打开/etc/sysconfig/network文件。

修改”HOSTNAME”为指定的节点编号。

三、打开/etc/hosts文件。

将新的ip及节点编号存入。

四、在命令窗口执行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start(启动Agent服务)。

9.3 其他datanode节点设置(除了新建的datanode节点以外的其余datanode节点)

打开/etc/hosts文件。

将新的ip及节点编号存入。

 

9.4 主节点设置(仅主节点)

一、测试群定ssh畅通(需新节点nN在线)

在命令窗口执行:scp ~/.ssh/authorized_keys root@nN:~/.ssh/

测试:在主节点上ssh 节点nN,正常状况下,不须要密码就能直接登录进去了。

有时可能须要重启才能联通。

10          CDH5的安装配置(注意中途不要中断)

Cloudera Manager Server和Agent都启动之后,就能够进行CDH5的安装配置了。

这时能够经过浏览器访问主节点的7180端口测试一下了(因为CM Server的启动须要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin:

如下操做,须要先保证8.9的服务已所有启动。

访问地址:http://master:7180/cmf/login

用户名/密码:admin/admin

10.1       选定要安装的节点

各个Agent节点正常启动后,能够在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。如图所示:

 

10.2       集群安装

点击“继续”按钮,若是出现以下图所示界面,说明本地Parcel包配置无误,直接点继续就能够了。

点击,继续,若是配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,而后就是耐心等待分配过程就好了,以下图所示,大约10-20分钟,取决于内网网速。

10.3       服务检查

点击“继续”按钮,开始服务器检查,可能弹出以下信息“

Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您能够继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机因为交换运行情况不佳。如下主机受到影响:

”,以下图所示

在命令窗口执行:echo 0 > /proc/sys/vm/swappiness,便可解决此文问题,点击“返回”按钮,以后点击“继续”,从新检查便可看到结果。点击“完成”,可进入集群设置界面。

10.4       群集设置-选定服务

在此选择“全部服务”,以后点“继续”,进入角色分配界面。

10.5       群集设置-自定义角色分配

 

通常状况下保持默认就能够了(Cloudera Manager会根据机器的配置自动进行配置,若是须要特殊调整,自行进行设置就能够了),点击“继续”进入数据库设置界面。

10.6       群集设置-数据库设置

此刻依照第5部分所设,数据库:“hive”,用户名/密码:”root/root”

10.7       群集设置-审核更改

保持默认。但注意,这里安装Hive的时候可能会报错,由于咱们使用了MySql做为hive的元数据存储,hive默认没有带mysql的驱动,经过如下命令拷贝一个就好了:

cp /opt/cm-5.1.3/share/cmf/lib/mysql-connector-java-5.1.38-bin.jar /opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hive/lib/

点击“重试”。最终展示以下图所示界面

http://master:7180/cmf/clusters/2/express-add-services/index

11          CDH5安装后,Datanode节点扩展(包括全部节点的修改)

11.1       Datanode节点nN建立(以某一个datanode节点为模板进行)

以VMware的克隆功能生成一个节点所在的虚拟机。

11.2       新节点nN内的基本设置(仅新建的datanode节点)

一、在系统->首选项->网络链接中,进行网络设置。

二、打开/etc/sysconfig/network文件。

修改”HOSTNAME”为指定的节点编号。

三、打开/etc/hosts文件。

将新的ip及节点编号存入。

四、清除已有受权(与9有区别)

将“/opt/cm-5.1.3/lib/cloudera-scm-agent”下的文件“uuid”删掉。

五、在命令窗口执行:/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start(启动Agent服务)。

11.3       其他datanode节点设置(除了新建的datanode节点以外的其余datanode节点)

打开/etc/hosts文件。

将新的ip及节点编号存入。

 

11.4       主节点设置(仅主节点)

一、测试群定ssh畅通(需新节点nN在线)

在命令窗口执行:scp ~/.ssh/authorized_keys root@nN:~/.ssh/

测试:在主节点上ssh 节点nN,正常状况下,不须要密码就能直接登录进去了。

有时可能须要重启才能联通。

11.5       在主机中设置新节点(web操做界面)

一、在主界面->主机中,选择“向集群添加新主机”,选择新节点nN以后点击“继续”

二、选择主机模板选择“srit_node_model”,以下图所示

点击“完成”即完成配置。

12          常见问题处理

12.1       主节点下一旦删除了/opt/cm-5.1.3/lib/cloudera-scm-agent下的uuid文件

此时,mysql驱动莫名其妙也被删除,将会形成hive没法启动,此时须要在命令窗口从新执行:cp /opt/cm-5.1.3/share/cmf/lib/mysql-connector-java-5.1.38-bin.jar /opt/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hive/lib/

相关文章
相关标签/搜索