摘要
Cloudera’s Distribution, including Apache Hadoop 是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,基于Web的用户界面,
提供了Hadoop的核心
- 可扩展存储
- 分布式计算
优点
Apache Hadoop 不足之处
- 版本管理混乱
- 部署过程繁琐、升级过程复杂
- 兼容性差
- 安全性低
CDH的优点
- 版本划分清晰
- 版本更新速度快
- 支持Kerberos安全认证
- 文档清晰
- 支持多种安装方式(Cloudera Manager方式)
- Cloudera Manager
- Yum
- Rpm
- Tarball
CDH能解决的问题
- 1000台服务器的集群,最少要花费多长时间来搭建好Hadoop集群,包括Hive、Hbase、Flume、Kafka、Spark等等
- 只给你一天时间,完成以上工作?
- 对于以上集群进行hadoop版本升级,你会选择什么升级方案,最少要花费多长时间?
- 新版本的Hadoop,与Hive、Hbase、Flume、Kafka、Spark等等兼容?
准备安装所需文件
安装包下载
官网地址 http://archive.cloudera.com/cm5/cm/5/下载Cloudera Manager和CDH 5.11
cloudera-manager-el6-cm5.11.0_x86_64.tar.gz
CDH安装包地址 http://archive.cloudera.com/cdh5/parcels/latest/
- CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel
- CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha1
- manifest.json
CentOS6.8安装
vim /etc/hosts
192.168.1.92 cdh-master
192.168.1.93 cdh-slave1
192.168.1.94 cdh-slave2
vim /etc/hostname # centos 7.x
vim /etc/sysconfig/network # centos 6.x
cdh-master cdh-slave1 cdh-slave2
配置SSH无密码登录 链接地址
ntp同步各时间节点 链接地址
安装JDK 链接地址
除以上配置外需要按cdh的/opt/cm5/lib64/cmf/service/common/cloudera-config.sh文件来修改创建一部分链接,用于让cdh能管理的软件进行使用。
安装mysql 链接地址
允许root在任何主机登录
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
mysql> grant all privileges on *.* to 'root'@'cdh-master' identified by 'root' with grant option;
mysql> flush privileges;
创建以下数据库
mysql> create database hive DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> create database oozie DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> create database amon DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> create database hue DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
安装CDH
安装Cloudera Manager Server和Agent
主节点解压安装
cloudera manager的目录默认位置在/opt下
tar -xzf cloudera-manager*.tar.gz &
ln -s /opt/soft/cm-* /opt/cm5
ln -s /opt/soft/cloudera /opt/cloudera
复制并改名成mysql-connector-java.jar
cp mysql-connector-*.jar /opt/cm5/share/cmf/lib/mysql-connector-java.jar
scp mysql-connector-java-5.1.43.jar root@cdh-master:/usr/share/java/mysql-connector-java.jar
scp mysql-connector-java-5.1.43.jar root@cdh-slave1:/usr/share/java/mysql-connector-java.jar
scp mysql-connector-java-5.1.43.jar root@cdh-slave2:/usr/share/java/mysql-connector-java.jar
创建用户cloudera-scm
在所有节点上执行
useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
agent配置
主节点
修改/opt/cm5/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名
sed -i "s/server_host=localhost/server_host=cdh-master/g" /opt/cm5/etc/cloudera-scm-agent/config.ini
注意:少于100个主机节点可设置最大堆内存2G,修改文件中的memory参数。
sed -i "s/memory=0/memory=2048/g" /opt/cm5/etc/init.d/cloudera-scm-server
同步Agent到其他所有节点:
scp -r /opt/soft/cm-* root@cdh-slave1:/opt/soft/ &
scp -r /opt/soft/cm-* root@cdh-slave2:/opt/soft/ &
在主节点初始化CM5数据库
/opt/cm5/share/cmf/schema/scm_prepare_database.sh mysql cm -h cdh-master -uroot -proot --scm-host cdh-master scm scm scm
-h后是mysql的主机名
--scm-host 后是SCM server的主机名(主节点)
如果有报错,一般是msyql的权限设置没设好,root不能远程登录
准备Parcels,用来安装CDH5
将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中
相关的文件如下
- CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel
- CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha1
- manifest.json
将CDH-5.7.6-1.cdh5.7.6.p0.6-el6.parcel.sha1重命名为CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha
mv CDH-5.7.6-1.cdh5.7.6.p0.6-el6.parcel.sha1 CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha
启动脚本
主节点 启动服务端。
/opt/cm5/etc/init.d/cloudera-scm-server start
所有节点(包括主节点) 启动Agent服务
/opt/cm5/etc/init.d/cloudera-scm-agent start
注
停止可以用
/opt/cm5/etc/init.d/cloudera-scm-server stop
启动成功后,可以用
ps -ef|grep cloudera
这里会看到这2个进程
如果cloudera-scm-agent的log报错:
[04/Sep/2017 16:29:38 +0000] 2983 MainThread agent ERROR Heartbeating to cdh-master:7182 failed.
一般是主节点防火墙没关闭
CDH5的安装配置
- 打开页面 http://192.168.1.92:7180/cmf/login
- 默认的用户名和密码均为admin
- 选择免费版本
- 输入主机 master,slave1,slave2 点搜索
- 点当前管理的主机,选中3台主机 选择继续
- 接下来,选择Parcel安装,直接点继续
监测时会出现一个问题
详细信息请点击 链接地址
运行
echo 10 > /proc/sys/vm/swappiness
要永久改变
echo vm.swappiness=10 >> /etc/sysctl.conf
echo never>/sys/kernel/mm/transparent_hugepage/defrag
echo never>/sys/kernel/mm/transparent_hugepage/enabled
接下来点击继续然后选择安装的服务,及数据库配置就行了。
常见问题
问题
时钟偏移,显示的信息如
Bad Health --Clock OffsetThe host's NTP service did not respond to a request for the clock offset.
解决
配置NTP服务 链接地址
问题
10 under replicated blocks in the cluster. 15 total blocks in the cluster. Percentage under replicated blocks: 66.67%. Critical threshold: 40.00%.
解决
sudo -u hdfs hdfs dfs -setrep -R 1 / # 备份个数修改为1
sudo -u hdfs hdfs fsck / #
问题
hadoop中datanode无法启动
解决
Directory /var/dfs/dn is in an inconsistent state: cluster Id is incompatible with others.
问题
DeprecationWarning: the sets module is deprecated
解决
mkdir /opt/cm5/run/cloudera-scm-agent
chown -R cloudera-scm:cloudera-scm /opt/cm5/run/cloudera-scm-agent
问题
Initialization failed for Block pool <registering (Datanode Uuid unassigned) service to cdh-master/192.168.20.21:8022. Exiting.
解决
把配置文件中dfs.datanode.data.dir在本地系统的路径下的current/VERSION中的clusterID改为与namenode一样且datanodeUuid与本机的两个nn的datanodeUuid相同。重启即可!
问题
hive oozie 等 无法加载com.mysql.jdbc.Driver
解决
mysql-connector-java.jar 放入 /usr/share/java/ 下
问题
Canary test failed to create file in directory /tmp/.cloudera_health_monitoring_canary_files.11
解决
未解决(权限问题???)
问题
cloudera-scm-agent.log 记录日志 Failed to connect to newly launched supervisor. Agent will exit`
解决
ps -ef | grep supervisord
问题
CDH中安装Hue出现无法验证数据库
解决
原因大都是因为缺少环境包所致。
通过查看cm-5.x.0/log/cloudera-scm-server/cloudera-scm-server.log,找到具体的原因。
问题
Journal Storage Directory /jn/nameservice3 not formatted