使用cloudrea manager管理已有的cdh集群(转)
转自:http://blog.51cto.com/teacheryan/1912116
本文介绍如何搭建cloudera manager去接入已有hadoop组件(cdh)。
一、下载必备文件:
1.cloudera manager:http://archive-primary.cloudera.com/cm5/cm/5/

大部分公司内大数据集群环境都无公网访问权限,针对当前集群系统环境和想要接入的cm版本找到对应版本离线包,对于redhat、centos系统来说el6就是redhat6、centos6系统,之后找到想要安装的cm版本,本文搭建过程采用cloudera-manager-el6-cm5.9.0_x86_64.tar.gz
2.cdh安装包:http://archive.cloudera.com/cdh5/parcels/5.9.0/
本搭建过程采用CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel、CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1,parcel文件为cdh压缩包,执行安装过程会进行解压并且上传到各节点;sha1文件内为压缩包的校验码

3.mysql的jdbc驱动jar包:http://dev.mysql.com/downloads/connector/j/

4.mysql5.6:http://dev.mysql.com/downloads/mysql/5.6.html
本搭建过程采用mysql5.6社区版源码包mysql-5.6.35.tar.gz

二、cloudera manager安装:
1.server端安装配置mysql5.6:
解压mysql安装包后执行
yum install cmake ncurses-* -y
其余看编译输出,缺少什么包就再yum安装什么
进入mysql解压目录,执行
cmake -DCMAKE_INSTALL_PREFIX=/export/mysql5.6
make && make install
如果没有报错继续执行
顺利执行过后将/etc/my.cnf删除或移走,在mysql安装目录当中简单编写my.cnf并启动,具体配置请根据自身环境进行设置,本文不对此内容赘述
2.解压cloudera-manager-el6-cm5.9.0_x86_64.tar.gz到安装目录:
默认cloudera和cm-5.9.0目录放置在/opt下,如果想放在其他目录须留意对应配置
3.导入数据,执行完成后会有cm库:
/export/tmp/opt/cm-5.9.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot --scm-host 127.0.0.1 scm scm scm
4.登录mysql,进行必要的修改配置:
set global binlog_format='ROW';
grant all on *.* to 'scm'@'%' identified by 'scm';
否则默认binlog格式为statement,cm会启动报错
对scm进行所有主机的授权
5.cloudera manager server端配置:
创建用户
useradd --system --home=/opt/cm-5.9.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "cloudera SCM user" cloudera-scm
在之前的cloudera目录下创建parcel-repo目录,将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel和CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1放在此目录下,重命名sha1文件为sha,否则cm找不到sha文件无法进行校验,会重新去公网上下载压缩包
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha
6.mysql jar包放入lib库:
将解压mysql-connector-java-5.1.40.tar.gz得到的文件放在/opt/cm-5.9.0/share/cmf/lib下
7.配置db连接信息:
vim /opt/cm-5.9.0/etc/cloudera-scm-server/db.properties

host由于mysql就装在本机所以写127地址即可,库名、用户名、密码遵循上面创建用户和授权的内容进行填写
8.配置cm启动脚本的java环境:
vim /opt/cm-5.9.0/etc/init.d/cloudera-scm-agent
vim /opt/cm-5.9.0/etc/init.d/cloudera-scm-server
export JAVA_HOME=/usr/java/jdk1.7.0_51
9.agent配置:
vim /export/tmp/opt/cm-5.9.0/etc/cloudera-scm-agent/config.ini

server_host配置server端的ip或者主机名
server_port和port没有修改,使用默认的即可
listening_ip可以不做修改
之后将/opt/cm-5.9.0此目录拷贝到其他agent节点的对应目录
注:须确保/opt/cm-5.9.0/lib/cloudera-scm-agent下的uuid文件删掉,否则会出现cm web中主机显示冲突的情况
10.启动服务:
server端执行
/opt/cm-5.9.0/etc/init.d/cloudera-scm-server start
agent端执行
/opt/cm-5.9.0/etc/init.d/cloudera-scm-agent start
server端启动端口7180 7182
agent端启动端口9000
三、web配置:
1.添加cloudera management service:
浏览器访问server端地址的7180端口,用户名密码默认admin admin
登录后不按照提示进行安装,直接点击左上方主页,然后选择右边添加管理服务

填入管理员登录mysql的连接信息即可

审核更改页不用做任何更改

之后等待安装完成,安装过后会发现集群监控已经有数据,点选所有主机,检查所有主机检查各节点状态


回到主页,点击cluster1右侧的添加服务
2.添加hdfs服务:

选择hdfs继续,根据原有集群情况进行主机选择

审核更改部分可以根据现有集群配置进行填写,左侧会有对应参数名

需要注意的是,datanode数据目录不管原来所有者是谁必须要修改为hdfs,否则无法通过cm启动,并且原有集群对应进程要先停掉
点击继续后不要等待进程进行,直接返回主页,会发现hdfs集群角色已经添加

进入hdfs配置journalnode目录dfs.journalnode.edits.dir

之后启动集群,观察监控数据

注:其余hadoop组件接入原则也是停掉原有进程,修改对应目录属主为组件名称的用户,比如hdfs,yarn,同时修改cm上对应的关键配置。此种做法对程序环境改造很大,很多标准必须遵循cloudera manager的规则,而且有丢失hdfs元数据风险。
四、后记:
此次搭建cm集群遇到一些问题,比如添加hdfs角色后无法启动namenode,报错java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, but got txid 16,可能数据不连续,通过hadoop namenode -recover命令进行修复后可以启动,此命令不敢保证在生产环境执行没有问题;又或者datanode无法启动,遇到以下报错Operation not permitted

之后发现原集群的对应目录所有者为hadoop,而根据其他角色启动进程的所有者hdfs来进行权限修改后datanode可以启动
五、参考资料:
https://www.quora.com/Cloudera-company/Can-we-install-Cloudera-Manager-to-manage-an-existing-cluster 了解新搭建的cm接入现有集群思路
http://www.361way.com/cloudera-manager-cdh-install/5033.html cm离线安装步骤参考
使用cloudrea manager管理已有的cdh集群(转)的更多相关文章
- Cloudera Manager安装_搭建CDH集群
2017年2月22日, 星期三 Cloudera Manager安装_搭建CDH集群 cpu 内存16G 内存12G 内存8G 默认单核单线 CDH1_node9 Server || Agent ...
- Cloudera Manager 4.6 安装部署hadoop CDH集群
Cloudera Manager 4.6 安装详解 1. Cloudera Manager介绍 1.1. 功能介绍 Cloudera Manager是一个针对hadoop集群的管理工具,功能包括:cd ...
- CDH集群搭建部署
1. 硬件准备 使用了五台机器,其中两台8c16g,三台4c8g.一台4c8g用于搭建cmServer和NFS服务端,另外4台作为cloudera-manager agent部署CDH集群. ...
- CDH集群安装&测试总结
0.绪论 之前完全没有接触过大数据相关的东西,都是书上啊,媒体上各种吹嘘啊,我对大数据,集群啊,分布式计算等等概念真是高山仰止,充满了仰望之情,觉得这些东西是这样的: 当我搭建的过程中,发现这些东西是 ...
- 朝花夕拾之--大数据平台CDH集群离线搭建
body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...
- 使用Cloudera Manager搭建HDFS完全分布式集群
使用Cloudera Manager搭建HDFS完全分布式集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Cloudera Manager的搭建我这里就不再赘述了,可以参考 ...
- 基于yum安装CDH集群
一.环境准备 准备至少3台设备:CentOS7系统: 如果是在实验环境下,给虚拟机的内存至少4G,根建议1T,数据盘1T,由于是虚拟机,所以根分区和数据盘放心大胆的给:如果是在生产环境则多多益善:我这 ...
- 管理和维护RHCS集群
导读 管理和维护RHCS集群是一个非常复杂和繁琐的工作,要维护好一个RHCS集群,必须熟悉RHCS的基本运行原理,在集群管理方面,RHCS提供了两种方式:即Luci图形界面方式和命令行方式,这儿重点讲 ...
- 完全关闭及再次启动cdh集群
关闭集群 - 关闭集群所有组件 关闭Cloudera Management Service 关闭cdh所有客户端节点 sudo /opt/cloudera-manager/cm-5.11.1/etc/ ...
随机推荐
- Android 从上层到底层-----app层
CPU:RK3288 系统:Android 5.1 功能:上层 app 控制 led 亮灭 开发板:Firefly RK3288 MainActivity.java package com.aaron ...
- Exception in thread "main" java.lang.UnsupportedClassVersionError: com/crack
执行一个jar文件的时候抛异常了 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/cr ...
- Unit02: jQuery事件处理 、 jQuery动画
Unit02: jQuery事件处理 . jQuery动画 jQuery实现购物车案例 <!DOCTYPE html> <html> <head> <titl ...
- bytes数据类型和字符串的编码解码,三元运算,进制互换
三元运算 如果这个条件成立就存这个值,如果那个条件成立就存那个值. 进制 bytes类型,字节数据类型也就是二进制类型,这个是python3专有数据类型,在python2里跟字符串是一个类型,也就是p ...
- HDU2546题解
解题思路:先对价格排序(顺序或倒序都可以),然后,对前n-1(从1开始.排序方式为顺序)做容量为m(卡上余额)-5的01背包(背包体积和价值相等).假设dp[i][j]表示从前i个背包中挑选体积不超过 ...
- USB驱动程序之USB设备驱动程序1简单编写
1.驱动编写分析 (1)usb总线驱动程序在我们接入USB设备的时候会帮我们构造一个新的usb_device.注册到总线里面来.左边这一块已经帮我们做好了,我们要做的是右边这一块.我们要构造一个usb ...
- node 中 npm报错 Error: ENOENT, stat 'C:\Users\Administrator\AppData\Roaming\npm'
今天在看node书本时,安装express,看看里面的包.没想到出现这样一种情况. 报错了.后来思考了一下,可能是修改了node的默认安装路径.于是准备在出错的路径下建一个npm文件夹. 注意,有个时 ...
- eyoucms 前台 getshell 复现
漏洞地址:http://www.sch01ar.com/index.php/api/Uploadify/preview 这样子说明存在漏洞 对 <?php phpinfo(); 进行 base6 ...
- JS中的定时器
在JS中的定时器分两种: 1,setTimeout() 2,setInterval() setTimeout(): 只在指定时间后执行一次: function hello(){ alert('hell ...
- quartz报错 Couldn't retrieve job because the BLOB couldn't be deserialized: null
今天线上添加定时任务之后 定时任务查询页面报出如上错误, 原因有两点 1.org.quartz.jobStore.useProperties = true 这个属性的意思存储的JobDataMaps是 ...