http://www.aboutyun.com/thread-9219-1-1.html 非常强大的博客 ! ! !
1, cdh简介
CDH (Cloudera’s Distribution, including Apache Hadoop),是hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
目前集群的乱象:
1, 版本管理混乱
2, 部署升级复杂
3, 兼容性差
4, 安全性低
Hadoop的发行版:
apache hadoop
CDH: 是hadoop分支的一种, 由Cloudera维护, 基于web的用户界面
HDP: 一个虚拟机
MapR: linux指令
EMR: 集群脱管方案, 应用较少
Cloudera的CDH和Apache的Hadoop的区别
目前而言,不收费的Hadoop版本主要有三个(均是国外厂商),分别是:Apache(最原始的版本,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”),对于国内而言,绝大多数选择CDH版本,CDH和Apache版本主要区别如下: () CDH对Hadoop版本的划分非常清晰,只有两个系列的版本,分别是cdh3和cdh4,分别对应第一代Hadoop(Hadoop 1.0)和第二代Hadoop(Hadoop 2.0),相比而言,Apache版本则混乱得多;比Apache hadoop在兼容性,安全性,稳定性上有增强。 ()CDH3版本是基于Apache hadoop 0.20.2改进的,并融入了最新的patch,CDH4版本是基于Apache hadoop .X改进的,CDH总
是并应用了最新Bug修复或者Feature的Patch,并比Apache hadoop同功能版本提早发布,更新速度比Apache官方快。 ()安全 CDH支持Kerberos安全认证,apache hadoop则使用简陋的用户名匹配认证 ()CDH文档清晰,很多采用Apache版本的用户都会阅读CDH提供的文档,包括安装文档、升级文档等。 ()CDH支持Yum/Apt包,Tar包,RPM包,CM安装,Cloudera Manager三种方式安装,Apache hadoop只支持Tar包安装。
http://www.aboutyun.com/thread-9225-1-1.html
cdh结构图:
cdh优点:
版本清晰
版本更新速度快
支持Kerberos认证
文档清晰
支持多种安装方式 (Cloudera manager)
简单来说, cdh是为了简化集群部署, 最优升级方案,
http://www.aboutyun.com/thread-6788-1-1.html
2, Cloudera manager
是一个管理cdh端到端的应用, 作用: 管理, 监控, 诊断, 集成
server功能:
客户端服务器和应用服务器键的逻辑
软件安装和配置
各项服务的管理, 启动停止, 监控整个集群
agent:
每个服务进程管理
监控主机
数据库, 为region-server提供数据库支撑
management_server:
监控集群状态
生成报表
3, cdh搭建前期准备
1, 准备3台虚拟机
master占用会非常大, 建议6g内存以上, 其他2台2g内存即可
修改主机名: /etc/sysconfig/network, 为 node1, node2, node3
2, 设置3台机器的免密码登录
3台机器分别设置, 同时对自己免密码登录
http://www.cnblogs.com/wenbronk/p/6628993.html
3, 防火墙关闭
service iptables stop
chkconfig iptables off
4, 安装jdk, 这儿使用的 jdk1.7
JDK一定要解压到/usr/java/default下面,即JAVA_HOME= /usr/java/default, 否则CDH的后续安装将会报错
环境变量配置:
export JAVA_HOME=/usr/java/default
export JRE_HOME=/usr/java/default/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
5, 设置3台机器的时间同步
ntpdate -u ntp.api.bz
6, 设置selinux关闭, 重启生效
vim /etc/selinux/config
SELINUX=disabled (原始值为: enforcing)
7, 安装mysql ( 本次安装node1, 可搭建专门mysql服务器, 版本5.5 , 版本对应关系可查官网 )
http://www.cnblogs.com/wenbronk/p/6840484.html
8, 安装3rd 依赖包
3, 内核修改: (所有节点)
1, 句柄设置
通过 ulimit -n 查看文件句柄,
vim /etc/security/limits.conf # 添加如下内容
* soft nproc
* hard nproc
* soft nofile
* hard nofile
然后
vim /etc/security/limits.d/-nproc.conf # 修改为:
* soft nproc
root soft nproc unlimited
2, 修改内核参数
# echo > /proc/sys/vm/swappiness
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
3, 修改编码集
# vim /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
4, cloudera manager的安装
1, 解压安装包 (3台机器)
mkdir /opt/cloudera-manager
tar -zxvf cloudera-manager*.tar.gz -C /opt/cloudera-manager
2, 创建用户 (所有节点)
useradd --system --home=/opt/cloudera/cm-5.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
3, 配置CM Agent (所有 agent 端)
cd /opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent
vim ./config.ini # 修改 server_host=node1
4, 配置 CM server 数据库(master 或者单独的服务器)
默认到 usr/share/java/ 目录下寻找jar, 包名一定为 mysql-connector.jar
cp ~/cloudera-manager/mysql-connector-java-5.1.-bin.jar /usr/share/java/mysql-connector-java.jar
创建支撑库:
grant all on *.* to 'scm'@'%' identified by 'scm' with grant option; /opt/cloudera-manager/cm-5.4.3/share/cmf/schema/scm_prepare_database.sh mysql temp -h 192.168.208.110 -uroot -p123 --scm-host 192.168.208.110 scm scm scm
格式: 数据库类型, 数据库名, host, 用户名, 密码, cm Server 服务器, 最后3个: 默认账户及数据库名
5, 修复安装包 bug, BUG会导致在集群安装YARN时失败 ( 所有节点)
# vim /opt/cloudera-manager/cm-5.4.3/lib64/cmf/agent/src/cmf/util.py --该文件第365行
pipe = subprocess.Popen(['/bin/bash','-c',". %s; %s; env"%(path, command)],
stdout=subprocess.PIPE, env=caller_env)
改成
pipe = subprocess.Popen(['/bin/bash','-c',". %s; %s; env | grep -v { | grep -v }"%(path, command)],
stdout=subprocess.PIPE, env=caller_env)
6, 创建 Parcel 目录
server端:
mkdir -p /opt/cloudera/parcel-repo chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
agent
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
因为安装时 需要存放 cdh的安装目录, 默认分发目录就是 parcels
6, 制作 CDH 本地源, 不制作需要从云下载, 非常非常慢...
-rw-r--r-- root root Mar : CDH-5.4.-.cdh5.4.0.p0.-el6.parcel
-rw-r--r-- root root Mar : CDH-5.4.-.cdh5.4.0.p0.-el6.parcel.sha
-rw-r--r-- 1 root root 42625 Mar 5 17:02 manifest.json
将其拷贝到 /opt/cloudera/parcel-repo
cp -v ~/cloudera-manager/CDH-5.4.-.cdh5.4.0.p0.-el6.parcel* /opt/cloudera/parcel-repo/ cp -v ~/cloudera-manager/manifest.json /opt/cloudera/parcel-repo/
注意文件名:!!!!!!!!!!!!!!!!!!!!!!
7, 启动 server, agent,
cd /opt/cloudera-manager/cm-5.4./etc/init.d
# 先启动server, 等server启动后, 在启动agent
./cloudera-scm-server start ./cloudera-scm-agent start
启动成功后, 在网页可访问: cdh-01:7180
8, 日志查看
在 /opt/cloudera-manager/cm-5.4.3/log 下可看
注意, 如果启动过程中终止, 需要把前面的重新来一遍
5, 界面设置
1, 网页访问: 192.168.208.110:7180
2, 选择版本
3, 继续, 继续, 选择本地源的版本, 5.4.0
4, 选择安装的主机
5, 集群安装
6, 检验正确性,
此步如果没有之前的内核数据修改, 会报错, 修改了即可
echo > /proc/sys/vm/swappiness
7, 选择需要的服务
8, 集群设置, 默认即可
9, 数据库设置, 需要提前创建 hive库和 Oozie库
建库脚本:
create database hive default character set utf8;
grant all on hive.* to 'hive'@'%' identified by 'hive'; create database oozie default character set utf8;
grant all on oozie.* to 'oozie'@'%' identified by 'oozie';
最后等待安装结束
关于安装错误, 卸载的: http://blog.csdn.net/wulantian/article/details/42706777