关于CDH和Cloudera Manager

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

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

环境说明

  • 操作系统:Centos6.7 * 4:
bd-dev-cm1-240  172.31.217.240(主节点)
bd-dev-cm2-241 172.31.217.241
bd-dev-cm3-242 172.31.217.242
bd-dev-cm4-243 172.31.217.243
  • Cloudera Manager:5.10
  • CDH:5.10

安装说明

官方参考文档

https://www.cloudera.com/documentation/enterprise/5-10-x/topics/cm_ig_install_path_c.html#concept_fbv_2v3_3r__section_z1d_5pm_s5

官方共给出了3中安装方式,建议使用第三种安装方式。第三种方法对系统侵入性最小,最大优点可实现全离线安装,而且重装什么的都非常方便。后期的集群统一包升级也非常好。这也是我之所以选择离线安装的原因。

相关包的下载地址

Cloudera Manager下载地址:http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.10.0_x86_64.tar.gz

CDH安装包地址:http://archive.cloudera.com/cdh5/parcels/5.10.0/,需要下载下面三个包:

  • CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel
  • CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha1
  • manifest.json

准备工作

以下操作均需要(root)管理员权限。防火墙和SELinux均已全部关闭。

1、配置hosts(所有节点)

设置hostname,以bd-dev-cm1-240为例:

# hostname bd-dev-cm1-240

并使其永久生效:

# vim /etc/sysconfig/network
修改HOSTNAME=bd-dev-cm1-240

修改hosts表:

在每个节点上都应有一份hosts表,在之后的配置中,对应节点名称使用hostname

# vim /etc/hosts
172.31.217.240 bd-dev-cm1-240
172.31.217.241 bd-dev-cm2-241
172.31.217.242 bd-dev-cm3-242
172.31.217.243 bd-dev-cm4-243

2、设置ssh无密码登陆(所有节点)

在主节点上执行ssh-keygen -t rsa一路回车,生成密钥对。

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

# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,

并设置authorized_keys的访问权限:

# chmod 600 ~/.ssh/authorized_keys

scp文件到其他所有节点:

scp ~/.ssh/authorized_keys root@bd-dev-cm2-241:~/.ssh/

测试:在主节点上ssh bd-dev-cm2-241,正常情况下,不需要密码就能直接连进去了。

3、安装Oracle的Java(所有节点)

这里使用的jdk版本为1.8.0_111,我这里由于已经制作成rpm包放到了私有仓库中,直接yum安装:

# yum install es-jdk8 -y(包名是自定义的)

如果有需要建议可以去Oracle的官网下载jdk的rpm安装包,这里就不赘述了。

这里安装路径为:/opt/programs/jdk1.8.0_111,这里需要配置一个全局的JAVA_HOME变量,执行命令:

# echo "JAVA_HOME=/opt/programs/jdk1.8.0_111" >> /etc/environment

并创建软链接到:/usr/java/default

# ln -s /opt/programs/jdk1.8.0_111 /usr/java/default

验证:正常情况下通过java -version可以看到jdk的版本信息。

4、安装配置MySql(主节点)

通过yum install mysql-server安装mysql服务器。chkconfig mysqld on设置开机启动,并service mysqld start启动mysql服务,并根据提示设置root的初试密码:mysqladmin -u root password 'xxxx'

mysql -uroot -pxxxx进入mysql命令行,创建以下数据库:

#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity oozie 如果需要的话
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity hue 如果需要的话
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

设置root授权访问以上所有的数据库:

grant all privileges on *.* to 'root'@'bd-dev-cm1-240' identified by 'xxxx' with grant option;
flush privileges;

5、配置NTP服务(所有节点)

集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 这里选用172.31.217.173 作为时间服务器。

参考配置如下:

# cat /etc/ntp.conf
trict default kod nomodify notrap nopeer noquery              
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1                                
restrict -6 ::1 
restrict 172.31.217.0 mask 255.255.255.0 nomodify notrap 
server 172.31.217.173            
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org                
server 2.centos.pool.ntp.org                           
server 172.31.217.173 # local clock            
fudge 172.31.217.173 stratum 10 

在所有节点启动ntp服务:

# /etc/init.d/ntpd start

安装Cloudera Manager

1、主节点解压安装

cloudera manager的目录默认位置在/opt下,解压:tar xzvf cloudera-manager*.tar.gz将解压后的cm-5.10.0 和cloudera目录放到/opt目录下。

2、为Cloudera Manager 5建立数据库

首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,解压后,找到mysql-connector-java-5.1.xx-bin.jar,放到/opt/cm-5.10.0/share/cmf/lib/中。

在主节点初始化CM5的数据库:

# /opt/cm-5.10.0/share/cmf/schema/scm_prepare_database.sh mysql cm -h172.31.217.240 -uroot -pxxx --scm-host 172.31.217.240 scm scm scm

3、Agent配置

修改/opt/cm-5.10.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名,这里即为bd-dev-cm1-240。

4、同步Agent到其他节点

# scp -r /opt/cm-5.10.0 root@ip:/opt/

5、在所有节点创建cloudera-scm用户

# useradd --system --home=/opt/cm5.10.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

6、准备Parcels,用以安装CDH5

将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中。

相关的文件如下:

  • CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel
  • CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha1
  • manifest.json

最后将CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha1,重命名为CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel 文件。

7、相关启动脚本

通过/opt/cm-5.10.0/etc/init.d/cloudera-scm-server start启动服务端。

通过/opt/cm-5.10.0/etc/init.d/cloudera-scm-agent start启动Agent服务。 (所有节点都要启动Agent服务,包括主节点)

我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。

CDH5的安装配置

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

这时可以通过浏览器访问主节点的7180端口测试一下了,默认的用户名和密码均为admin:

这里选择免费版。可以看到,免费版本的CM5已经没有原来50个节点数量的限制了。

各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。

接下来,出现以下包名,说明本地Parcel包配置无误,直接点继续就可以了。

点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,这个过程的速度就取决于节点之间的传输速度。

假如在安装的时候出现问题,如网络连接中断,机器死机,继续安装的时候可能会出现查询不到机器,先停止所有服务。清除数据库。

1> 删除Agent节点的UUID
# rm -rf /opt/cm-5.10.0/lib/cloudera-scm-agent/* 2> 清空主节点CM数据库
进入主节点的Mysql数据库,然后drop database cm; 3> 在主节点上重新初始化CM数据库
# /opt/cm-5.10.0/share/cmf/schema/scm_prepare_database.sh mysql cm -h172.31.217.240 -uroot -pxxx --scm-host 172.31.217.240 scm scm scm

启动server和agent。等待一下,重新连接访问主节点:7180即可,并重新进行以上步骤。

接下来是主机检查,可能会遇到以下问题:

Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。您可以继续进行安装,但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。以下主机将受到影响。通过echo 10 > /proc/sys/vm/swappiness即可解决。

接下来是选择安装服务,我这里先选择所有服务:

服务配置,我这里选择保持默认(Cloudera Manager会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了):

接下来是数据库的设置,先对之前建的库(hive、hue、oozie)进行授权:

CREATE USER 'hive'@'172.31.217.240' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'172.31.217.240'; CREATE USER 'oozie'@'172.31.217.240' IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'172.31.217.240'; CREATE USER 'hue'@'172.31.217.240' IDENTIFIED BY 'hue';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'172.31.217.240';

测试连接中,hive和oozie已经没有问题,hue的连接会有Unexpected error. Unable to verify database connection的报错,在hue安装的机器上安装一下python-lxml,即yum install -y python-lxml即可。

下面是集群设置的审查页面,这里地方可以考虑修改一些组件的数据存储目录,我这边数据的存储目录都放在opt下:

终于到安装各个服务的地方了,注意,这里安装Hive,或oozie的时候可能会报错,因为我们使用了MySql作为hive的元数据存储,hive默认没有带mysql的驱动,通过以下命令拷贝一个就行了:

# cp /opt/cm-5.10.0/share/cmf/lib/mysql-connector-java-*.jar /opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hive/lib/

# cp /opt/cm-5.10.0/share/cmf/lib/mysql-connector-java-*.jar /opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/oozie/lib/

# cp /opt/cm-5.10.0/share/cmf/lib/mysql-connector-java-*.jar /var/lib/oozie/

等待一会儿,安装完毕:

可以看到服务已经都启动了,基本的监控也已经有了,剩余的工作就是根据自己的需求调整相关配置和阈值:

参考资料

http://www.cnblogs.com/jasondan/p/4011153.html

https://www.cloudera.com/documentation/enterprise/5-10-x/topics/cm_ig_install_path_c.htm

离线安装 Cloudera Manager 5 和 CDH5.10的更多相关文章

  1. 离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  2. 离线安装Cloudera Manager 5和CDH5

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Cloudera 完全开源的Hadoop  ...

  3. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(六)CM的安装

    一.角色分配 Cloudera Manager Agent:向server端报告当前机器服务状态. Cloudera Manager Server:接受agent角色报告服务状态,以视图界面展现,方便 ...

  4. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(一)环境说明

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  5. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(七)界面安装

    一.安装过程 1.1 登录 1.2 接受许可协议 1.3 选择免费版本 1.4 选择下一步 1.5 选择当前管理的主机 1.6 选择使用Parcel安装,选择CDH版本,点击继续 1.7 等待安装 此 ...

  6. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(二)基础环境安装

    一.安装CentOS 6.5 x64 具体安装过程自行百度 1.1 修改IP地址 [root@master ~]# vi /etc/sysconfig/network DEVICE=eth0 TYPE ...

  7. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(四)数据库安装(单节点)

    一.卸载CentOS自带的MySQL 1.1 查看之前是否安装过mysql [root@master mysql]# rpm -qa|grep -i mysql mysql-libs--.el6.x8 ...

  8. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(三)重新分配磁盘空间(可选)

    一.查看文件系统 [root@master ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_master-lv_ ...

  9. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(五)数据库安装(双节点)

    一.方案选择 通过Lvs+keepalived+mysql(主主同步)实现数据库层面的高可用方案,需要两台服务器作为数据库提供业务数据的存储,应用服务器通过vip访问数据库,允许同一时间内一台数据库服 ...

随机推荐

  1. 第4天:JS入门-给div设置宽高背景色

    今天学习了js入门课程,听的不多,做了个小练习,给div设置宽高.背景色.一点点都是进步.核心代码如下: <!DOCTYPE html><html lang="en&quo ...

  2. mutex和CRITICAL_SECTION,互斥和临界区

    本文不没有任何知识可讲,只是帖上自己测试的结果. 想看底层原理的可以直接关闭. 不过对于急着要选方案的人,倒提供一些帮助. 先说一些无关紧要的废话: ========================= ...

  3. 切诺夫界证明(Chernoff bound)

  4. “最美天气”Python抓取天气

    import urllib.request import urllib.parse import json """     利用"最美天气"抓取即时天 ...

  5. zoj3785 What day is that day?

    It's Saturday today, what day is it after 11 + 22 + 33 + ... + NN days? Input There are multiple tes ...

  6. Openfire分析之三:ConnectionManager 连接管理(1)

    Openfire是怎么实现连接请求的? XMPPServer.start()方法,完成Openfire的启动.但是,XMPPServer.start()方法中,并没有提及如何监听端口,那么Openfi ...

  7. 第二篇--Jmeter测试Java请求

    前提:需要准备eclipse作为开发工具,安装jdk,准备完毕,接下来开工喽! 1.新建Java工程BMIrisJNIJarTest,新建lib目录,将Jmeter安装目录下lib/ext包下的Apa ...

  8. 通过VM虚拟机安装Ubuntu server部署flask项目

    1. VM安装Ubuntu server 14.04,系统安装完成后,首先安装pip工具方便之后的包安装,此处需先使用 apt-get install update,apt-get install u ...

  9. Cython的用法以及填坑姿势

    因为项目需要,需要优化已有的Python代码.目前Python代码的执行过程是将Python代码转变成一行行指令,然后解释器解释指令的执行,调用到C代码层.如果去掉指令解释这个阶段,直接进入C代码层, ...

  10. iOS 环信集成问题(连文档都不说明的坑。。)

    首先,关于环信SDK的下载和一些依赖库的添加,在此我就不做详细介绍,(http://www.easemob.com/download/im)附上环信官网文档,可以看一下,上面都可以下载,也有相关配置介 ...