关于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. 基于FPGA的均值滤波算法实现

    我们为了实现动态图像的滤波算法,用串口发送图像数据到FPGA开发板,经FPGA进行图像处理算法后,动态显示到VGA显示屏上,前面我们把硬件平台已经搭建完成了,后面我们将利用这个硬件基础平台上来实现基于 ...

  2. JSP 页面传值方法总结(转)

    原文地址:http://www.cnblogs.com/java-class/p/6358964.html 阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 ...

  3. MySQL57安装教程

    MySQL57安装教程... --------------------------- 首先需要下载MySQL57安装包: --------------------------------------- ...

  4. php Yii2使用registerJs或registerCss报错syntax error, unexpected end of file

    解决方法: 注册时$js=<<<JS .....JS;//结尾处JS;应单独成行并且没有空格  JS;//这样就会报错,多了空格JS;//这样就不会

  5. Java web轻量级开发面试教程读书笔记:数据库方面,如何准备面试

    如果在面试或与资深人事交流的过程中,你能有效合理地展示出本章所给出的一些知识点,那么对你的评价就会是"对数据库有深入了解",甚至能加上"有设计数据表的经验",即 ...

  6. windows7下VirtualBox COM获取对象失败

    一.问题 今天在windows7系统下安装virtualbox报错:VirtualBox COM获取对象失败,应用程序将被中断.上网查了下,发现了解决办法. 环境:windows7.VirtualBo ...

  7. 面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程

    上星期写了一个篇文章,数据库方面的面试技巧,如何从建表方面展示自己能力,承蒙管理员抬举,放入首页,也承蒙各位厚爱,两天内收获了将近770个点击,也一度进入48小时热榜. 为了感谢管理员和大家的支持,再 ...

  8. node.js后台快速搭建在阿里云(二)(pm2和nginx篇)

    前期准备 阿里云服务器 node.js pm2 express nginx linux(推荐教程:鸟哥的私房菜) 简介 嗯……我只是个前端而已 在第一部分说完了express篇. 后面继续项目的部署, ...

  9. jmeter系列-------脚本调试

    1.调试的时候 可以只跑需要调试的接口,禁用其他的接口 2.每个接口都需要增加断言眼,保证脚本的结果的正确性 3.验证脚本的可靠性,可以切换用户(测试变量)来进行调试 4.使用Debug Sample ...

  10. django框架(View)

    -------------------URLconf-------------------1.设置 1.在settings.py文件中通过ROOT_URLCONF指定根级url的配置 2.urlpat ...