文档章节

CDH5.1.3安装手册

varchard
 varchard
发布于 2017/06/17 16:38
字数 3780
阅读 85
收藏 0

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

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

注:本文档所有操作均使用root登陆操作。

1     节点说明

ip

节点编号

名称

物理机

192.168.1.170

master

管理节点

本地

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 仅在主节点上设置无密码登陆

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

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

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

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

3、   再之后,在命令窗口执行: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

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

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

进行解压缩。

3、  打开/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

4、  重新启动系统后,输入: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节点)

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

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

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

3、打开/etc/hosts文件。

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

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

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

打开/etc/hosts文件。

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

 

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

1、测试群定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节点)

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

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

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

3、打开/etc/hosts文件。

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

4、清除已有授权(与9有区别)

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

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

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

打开/etc/hosts文件。

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

 

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

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

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

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

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

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

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

2、选择主机模板选择“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/

 

 

© 著作权归作者所有

varchard
粉丝 6
博文 58
码字总数 19458
作品 0
程序员
私信 提问
求救:MapReduce程序没输出日志

1. 服务器上:hadoop-2.3.0-cdh5.1.3 、centos 本地eclipse远程连接的hadoop,运行mapreduce程序成功,但是控制台没有日志(就是map跑了X%,reduce跑了X%这样的日志木有)。我看到别人的都是这...

仙人指路有人用了
2014/11/20
3.3K
7
svn diff命令在比较文件时,出现什么二进制文件的问题

本来想根据svn diff来查询代码量的,但是.doc,.xls,这类的文件,出现的如下结果: Index: hardware-test/Tseries/TEST_V2.00/总体规划阶段/硬件安装手册.doc ============================...

康师傅猪头
2016/12/05
482
0
linux 打造man中文帮助手册

学IT的同学都知道, Linux是一个好东西, 但初学者往往会因为太多的命令觉得头疼, 更头疼的是所有的帮助文档都是英文. 其实Linux之所以强大, 就在于其强大的命令行, 如此繁杂的命令让一个六级以...

hbzhangmao
2014/12/10
8.6K
16
更新日期2016年5月16日-Citrix XenDesktop/XenApp 7.x PoC Runbook

Citrix XenDesktop、XenApp 7.x PoC Runbook文档内容简介: PoC手册 - _简介及环境准备 PoC手册 - Lab 01 虚拟主机基础环境安装1.0 PoC手册 - Lab 02 微软基础构架环境安装1.0 PoC手册 - La...

sesame.qian
2014/12/02
0
0
提升团队研发效能利器,《阿里巴巴Java开发手册》插件全球首发(附插件下载地址)

《阿里巴巴Java开发手册》于2017年2月9日首次公布,瞬间引起全民代码规范的热潮。2017年9月底,阿里巴巴集团发布了《阿里巴巴Java开发手册》PDF终极版,2017年10月14日,在2017杭州云栖大会上...

乔川
2017/10/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 文件类操作API与IO编程基础知识

阅读目录: https://www.w3cschool.cn/java/java-io-file.html Java 文件 Java 文件 Java 文件操作 Java 输入流 Java 输入流 Java 文件输入流 Java 缓冲输入流 Java 推回输入流 Java 数据输入...

boonya
22分钟前
2
0
SDKMAN推荐一个好

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性: By Developers, fo...

hotsmile
47分钟前
8
0
什么是 HDFS

是什么? HDFS 是基于 Java 的分布式文件系统,允许您在 Hadoop 集群中的多个节点上存储大量数据。 起源: 单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称...

Garphy
50分钟前
5
0
一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
今天
10
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部