离线安装Cloudera Manager 5和CDH5
关于CDH和Cloudera Manager
CDH (Cloudera's Distribution, including Apache Hadoop),是Cloudera 完全开源的Hadoop 分布式系统架构,为了满足企业的需求而特别构建的系统。即一个开源的企业级分布式存储系统。
CDH是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的封闭改变。Cloudera公司的发行版,我们将该版本称之为CDH。
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
系统环境
- 实验环境:VMware虚拟机
- 操作系统:CentOS 6.5 x64 (至少内存2G以上)
- Cloudera Manager:5.3.2
- CDH: 5.3.2
相关目录说明:
- /var/log/cloudera-scm-installer : 安装日志目录。
- /var/log/* : 相关日志文件(相关服务的及CM的)。
- /usr/share/cmf/ : 程序安装目录。
- /usr/lib64/cmf/ : Agent程序代码。
- /var/lib/cloudera-scm-server-db/data : 内嵌数据库目录。
- /usr/bin/postgres : 内嵌数据库程序。
- /etc/cloudera-scm-agent/ : agent的配置目录。
/etc/cloudera-scm-agent/config.ini 是agent主配置文件
vim /etc/cloudera-scm-agent/config.ini +3
server_host= 主节点IP
- /etc/cloudera-scm-server/ : server的配置目录。
- /opt/cloudera/parcels/ : Hadoop相关服务安装目录。
- /opt/cloudera/parcel-repo/ : 下载的服务软件包数据,数据格式为parcels。
- /opt/cloudera/parcel-cache/ : 下载的服务软件包缓存数据。
- /etc/hadoop/* : 客户端配置文件目录
安装说明
官方共给出了3中安装方式:第一种方法必须要求所有机器都能连网,由于最近各种国外的网站被墙的厉害,我尝试了几次各种超时错误,巨耽误时间不说,一旦失败,重装非常痛苦。第二种方法下载很多包。第三种方法对系统侵入性最小,最大优点可实现全离线安装,而且重装什么的都非常方便。后期的集群统一包升级也非常好。这也是我之所以选择离线安装的原因。
准备工作:系统环境搭建
以下操作均用root用户操作。
1. 网络配置(所有节点)
vi /etc/sysconfig/network
修改hostname:
NETWORKING=yes
HOSTNAME=n1
通过service network restart
重启网络服务生效。
vi /etc/hosts
,修改ip与主机名的对应关系
192.168.1.106 n1
192.168.1.107 n2
192.168.1.108 n3
注意:这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误。
2.打通SSH,设置ssh无密码登陆(所有节点)
在主节点上执行
# ssh-keygen -t rsa
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@n2
测试:在主节点上ssh n2,正常情况下,不需要密码就能直接登陆进去了。
3.安装Oracle的Java(所有节点)
CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持。
卸载自带的OpenJdk,使用rpm -qa | grep java
查询java相关的包,使用rpm -e --nodeps 包名
卸载之。
去Oracle的官网下载jdk的rpm安装包,并使用rpm -ivh 包名
安装之。
由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:
echo "export JAVA_HOME=/usr/java/latest/" >> /etc/profile
source /etc/prfile
4.关闭防火墙和SELinux
关闭防火墙:
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)
关闭SELINUX :
setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
5.所有节点配置NTP服务
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下:
master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。
所有datanode节点以master节点为基础同步时间。
所有节点安装相关组件:yum install ntp
。完成后,配置开机启动:chkconfig ntpd on
,检查是否设置成功:chkconfig --list ntpd
其中2-5为on状态就代表成功。
本博客之前有过讲解,在此不再进行介绍。
6.进行安装之前的一些相关设置,为了避免在安装过程中出现一些错误,影响安装进度。
mv /usr/bin/host /usr/bin/host.bak ; echo 0 > /proc/sys/vm/swappiness ; echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
并加入开机启动:
cat >> /etc/rc.local <<EOF
echo 0 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
EOF
7.CM默认安装的是postgresql数据库,如果想使用mysql进行替代的话,还需要进行如下准备。
yum -y install mysql-server mysql-connector-java
service mysqld start
mysqladmin -u root password 'rootroot'
可以根据需要预先创建以下数据库:
--hive数据库 create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci
--集群监控数据库 create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci
--hue数据库 create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci
初始化CM5服务器端的mysql数据库:
/usr/share/cmf/schema/scm_prepare_database.sh mysql scm -hlocalhost -uroot -prootroot --scm-host localhost scm scm scm
格式是: scm_prepare_database.sh 数据库类型 数据库 服务器 用户名 密码 --scm-host Cloudera_Manager_Server所在的机器 ....... scm scm scm后面三个scm未知
该初始化操作除了创建 CM server 所需的库和表外,同时还会更新CM服务器的数据库主配置文件 /etc/cloudera-scm-server/db.properties。
相关包的下载以及安装
Cloudera Manager server安装
1、下载Cloudera Manager 5.3.2所需的对应系统类型的rpm包
下载网址为:
http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.2/RPMS/x86_64/
JDK官网下载地址:
http://www.oracle.com/technetwork/java/javase/overview/index.html
安装rpm文件
将下载的rpm包直接放入文件夹/var/www/html/cm/ 下,为下文搭建yum源时做好准备
mkdir -p /var/www/html/cm/
yum localinstall –-nogpgcheck *.rpm (注意:在使用mysql作为数据库时,则不需要下载和安装 cloudera-manager-server-db-2-5.3.2-1.cm532.p0.209.el6.x86_64.rpm,此包为postgresql数据库的安装包)
2、分别启动agent服务端和cm服务端
/etc/init.d/cloudera-manager-agent start
/etc/init.d/cloudera-manager-server start
安装完成后等待一段时间,在浏览器输入localhost:7180 初次登录 用户名:admin 密码:admin (此时测试可以打开并顺利登陆即可,先不必进行任何操作。)
#3、下载Cloudera Manager 5.3.2的主安装文件并运行。(在用mysql数据库时省略此步)
http://archive.cloudera.com/cm5/installer/5.3.2/cloudera-manager-installer.bin
也可以直接从官网首页上进行下载: http://www.cloudera.com/content/cloudera/en/downloads/cloudera_manager/cm-5-3-2.html
此bin文件即可以实现在线一键安装CM和CDH,只是等待的时间有些长罢了
成功运行完毕该安装程序后,会启动cloudera-scm-server、cloudera-scm-agent、cloudera-scm-server-db这三个服务。
安装完成后等待一段时间,在浏览器输入localhost:7180 初次登录 用户名:admin 密码:admin (此时测试可以打开并顺利登陆即可,先不必进行任何操作。)
本地源配置用以安装CDH5
Parcel的可以从如下网址获得,下载.parcel文件和manifest.json文件:
http://archive.cloudera.com/cdh5/parcels/5.3.2/
因为这现在环境里用的是Centos6.4,所以这里选择下载以下三个文件:
http://archive.cloudera.com/cdh5/parcels/5.3.2/CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel
http://archive.cloudera.com/cdh5/parcels/5.3.2/CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.3.2/manifest.json
把以下载的以上文件拷贝到/opt/cloudera/parcel-repo/文件夹下,并修改属主。在安装CDH5时会自动调用该parcel源
chown -R cloudera-scm:cloudera-scm /opt
并且把下载的.sha1文件重命名为.sha ,命令如下:
mv CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel.sha1 CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel.sha
mv ./*.parcel /opt/cloudera/parcel-repo/
注意事项:
打开manifest.json文件查看CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel对应的编号,核对与CDH-5.0.1-1.cdh5.0.1.p0.47-el6.parcel.sha文件内容是否相同,如果不同的话修改成找到的编号!
以下是manifest.json中CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel对应的编号,这里是:a1722a9c033d33ca4ed4558eaf6c10c803b06a16
{
"parcelName":"CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel",
"components": [
{
"pkg_version": "0.7.0+cdh5.0.1+0",
"pkg_release": "1.cdh5.0.1.p0.30",
"name": "bigtop-tomcat",
"version": "6.0.37-cdh5.0.1"
},
{
"pkg_version": "0.9.0+cdh5.0.1+23",
"pkg_release":"1.cdh5.0.1.p0.25",
"name": "crunch",
"version": "0.9.0-cdh5.0.1"
},
............
{
"pkg_version": "0.9.0+cdh5.0.1+8",
"pkg_release": "1.cdh5.0.1.p0.25",
"name": "whirr",
"version": "0.9.0-cdh5.0.1"
},
{
"pkg_version": "3.4.5+cdh5.0.1+30",
"pkg_release":"1.cdh5.0.1.p0.31",
"name": "zookeeper",
"version": "3.4.5-cdh5.0.1"
}
],
"replaces": "IMPALA, SOLR, SPARK",
"hash":"a1722a9c033d33ca4ed4558eaf6c10c803b06a16"
}
关于datanode节点的Agent安装
datanode集群主机比较多时,比较快捷省事的方法是在master节点搭建Yum软件源用以安装datanode节点的Agent(推荐)
1、yum install -y createrepo httpd ; mkdir -p /var/www/html/cm/
2、把Cloudera Manager 5.3.2所需的对应系统类型的源rpm包下载到 /var/www/html/cm/ (此步上文已经交待进行过)
这里下载地址为 http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.2/RPMS/x86_64/
3、cd /var/www/html/cm ; createrepo . (该createrepo命令执行的位置须对应 myrepo文件中的URL中的位置)
4、service httpd start
5、除在上文交待过的各节点的准备工作之外,还需要在各个datanode节点添加repo文件 vim /etc/yum.repos.d/my.repo
[myrepo]
name=My Cloudera Manager
baseurl=http://主节点IP/cm/
gpgcheck=0
cost=300
#cost权值默认为1000,值越小优先级越高(适用于当同版本的包位于不同的repo中时,优先从本repo获取)
需要注意的一点是,repo 的优先级跟 *.repo 的文件名称无关
6、登录CM管理页面,一路next进行相关“添加新主机”的操作.
CDH5的安装配置
Cloudera Manager Server和Agent都启动完以后,就可以进行CDH5的安装配置了。
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin:
可以看到,免费版本的CM5已经没有原来50个节点数量的限制了。
各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。
接下来,出现以下包名,说明本地Parcel包配置无误,直接点继续就可以了。
点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约10多分钟吧,取决于内网网速。
接下来是选择安装服务:
服务配置,一般情况下保持默认就可以了(Cloudera Manager会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了):
接下来是数据库的设置,检查通过后就可以进行下一步的操作了:
下面是集群设置的审查页面,我这里都是保持默认配置的:
服务的安装过程大约半小时内就可以完成:
安装完成后,就可以进入集群界面看一下集群的当前状况了。
这里可能会出现无法发出查询:对 Service Monitor 的请求超时
的错误提示,如果各个组件安装没有问题,一般是因为服务器比较卡导致的,过一会刷新一下页面就好了:
注意红色框内的部分,编辑主机模板时要勾选好具体的服务
这样在添加新datanode主机节点时,可以使用已创建的模板为其指定角色
FAQ:
安装时卡在正在获取安装锁时,去agent节点 yum remove cloudera-manager-agent -y ,然后重新尝试失败的主机
参考文档:
http://www.aboutyun.com/thread-9087-1-1.html
http://www.aboutyun.com/thread-9078-1-1.html
离线安装Cloudera Manager 5和CDH5的更多相关文章
- 离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程
关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...
- 离线安装 Cloudera Manager 5 和 CDH5.10
关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(六)CM的安装
一.角色分配 Cloudera Manager Agent:向server端报告当前机器服务状态. Cloudera Manager Server:接受agent角色报告服务状态,以视图界面展现,方便 ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(一)环境说明
关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(七)界面安装
一.安装过程 1.1 登录 1.2 接受许可协议 1.3 选择免费版本 1.4 选择下一步 1.5 选择当前管理的主机 1.6 选择使用Parcel安装,选择CDH版本,点击继续 1.7 等待安装 此 ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(二)基础环境安装
一.安装CentOS 6.5 x64 具体安装过程自行百度 1.1 修改IP地址 [root@master ~]# vi /etc/sysconfig/network DEVICE=eth0 TYPE ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(四)数据库安装(单节点)
一.卸载CentOS自带的MySQL 1.1 查看之前是否安装过mysql [root@master mysql]# rpm -qa|grep -i mysql mysql-libs--.el6.x8 ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(五)数据库安装(双节点)
一.方案选择 通过Lvs+keepalived+mysql(主主同步)实现数据库层面的高可用方案,需要两台服务器作为数据库提供业务数据的存储,应用服务器通过vip访问数据库,允许同一时间内一台数据库服 ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(三)重新分配磁盘空间(可选)
一.查看文件系统 [root@master ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_master-lv_ ...
随机推荐
- Python中的偏函数
偏函数是从Python2.5引入的一个概念,通过functools模块被用户调用. 偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的 ...
- 基于jQuery的表单操作
1,文本框的聚焦和失焦 在对文本框进行操作时,通常为了提升用户体验,是用户的操作得到及时的反馈,会在文本框获得焦点时,让其颜色改变,然后在失去焦点时恢复为原来的样式,一般情况下,我们可以通过css的伪 ...
- selenium操作隐藏的元素 (下拉框类型)
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: Python 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操 ...
- 学习笔记之FluentAssertions
dotnet/src/MoqSample at master · haotang923/dotnet · GitHub https://github.com/htanghtang/dotnet/tre ...
- [C#]反射遍历对象属性
/// <summary> /// C#反射遍历对象属性 /// </summary> /// <typeparam name="T">对象类型 ...
- Ubuntu终端快捷键使用
快捷键 功能 Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 Ctrl+d 删除当前 ...
- [UE4]蓝图函数库小结
蓝图函数库的功能非常强劲,如果在项目中使用的话有时能达到事半功倍的效果. 蓝图函数库,Blueprint Function Library.可以非常方便的将代码中的函数暴露给所有的蓝图使用,同时也提供 ...
- php 编程笔记分享
php获取POST数据的三种方法php 图片加水印源代码php+ajax+json的一个最简单实例php 汉字转拼音源码php遍历目录,生成目录下每个文件的md5值并写入到结果文件中php实现linu ...
- 中国Linux开源镜像站大全
本文来源:各大开源软件.发行版镜像页面. 请注意这是一个总结,如果您自己搭建了一个小型开源镜像,这里并没有.以下列出的是包含大量不同镜像的站点. 具体配置中,我建议您使用大企业 ...
- 学习MongoDB 六: MongoDB查询(游标操作、游标信息)(三)
一.简介 db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段.并返回到匹配文档的游标,可以随意修改查询限制.跳跃.和排序顺序的 ...