CDH安装

2018/04/13

摘要

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

解决

参考网址: https://cloud.tencent.com/developer/article/1158294

目录