CDH相关介绍: 

参考链接:

 https://blog.csdn.net/u013061459/article/details/73368929

https://www.cnblogs.com/raphael5200/p/5293960.html


为了构建一个以数据为驱动的业务场景,我们需要一个强大的管理工具去统一并安全地管理我们的业务数据,Cloudera做为一个强大的数据中心管理工具为此孕育而生。Cloudera不光提供了自己衍化重新封装的市场领先并100%开源的商业化Apache Hadoop发行版本(CDH, Cloudera’s Distribution including Apache Hadoop)和相关的组件,其中包括了各类安全高效的企业级数据管理工具,如Hive, HBase,Oozie, Zookeeper等。 Hadoop是Apache(开源web服务器软件基金会)下的大数据开源项目,许多商业公司会在Apache Hadoop的基础上重新开发成商业版本,Cloudera公司就是其中之一,最近在维护的两个Hadoop版本分别是CDH4和CDH5。Hadoop使用分布式的思想存储,计算和分析数据,它允许多个数据分析计算任务同时作用在同一个数据块上并在集群上进行分布式计算,以此来进行超大规模数据的处理。Hadoop是大数据处理框架的鼻祖之一,同时Cloudera公司的Hadoop版本CDH也是目前使用最广泛的Hadoop商业版本。从广泛意义来说,CDH是Cloudera发布的一个自己封装的商业版软件发行包,里面不仅包含了Cloudera的商业版Hadoop,同时CDH中也包含了各类常用的开源数据处理存储框架,如Spark,Hive,HBase等。

Cloudera作为一个强大的商业版数据中心管理工具,提供了各种能够快速稳定运行的数据计算框架,如Apache Spark;使用Apache Impala做为对HDFS,HBase的高性能SQL查询引擎;也带了Hive数据仓库工具帮助用户分析数据; 用户也能用Cloudera管理安装HBase分布式列式NoSQL数据库;Cloudera还包含了原生的Hadoop搜索引擎以及Cloudera Navigator Optimizer去对Hadoop上的计算任务进行一个可视化的协调优化,提高运行效率;同时Cloudera中提供的各种组件能让用户在一个可视化的UI界面中方便地管理,配置和监控Hadoop以及其它所有相关组件,并有一定的容错容灾处理;Cloudera作为一个广泛使用的商业版数据中心管理工具更是对数据的安全决不妥协!


CDH能解决哪些问题?

  •   • 1000台服务器的集群,最少要花费多长时间来搭建好Hadoop集群,包括Hive、Hbase、Flume、Kafka、Spark等等

  •   • 只给你一天时间,完成以上工作?

  •   • 对于以上集群进行hadoop版本升级,你会选择什么升级方案,最少要花费多长时间?

  •   • 新版本的Hadoop,与Hive、Hbase、Flume、Kafka、Spark等等兼容?



CDH安装环境:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#concept_ap1_q2g_4cb


CDH安装

CDH安装分两部分,Cloudera Manager(CM)安装和CDH的安装。CM包含server端和agent端,通常先安装CM,在通过WEB UI的管理控制台安装部署CDH。

对于CDH的安装官方提供了三种安装方式:

1、在线安装 :https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_non_production.html

2、rpm/yum 安装 : https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_b.html

3、tar包安装:https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_c.html


CDH离线安装过程:这里以tar包的方式安装


环境:

系统:CentOS7.2 

JDK版本:1.8

CDH版本:5.14.0


角色:

hadoop01:主节点,需要安装CM-Server,MySQL

hadoop02:客户端,安装CM-Client

hadoop03:客户端,安装CM-Client


安装步骤:

1、下载CM安装包和CDH安装包:

http://archive.cloudera.com/cm5/cm/5/

下载:

cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz


https://archive.cloudera.com/cdh5/parcels/5.10.0/

下载:

  • CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel 

  • CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1

  • manifest.json


2、所有节点安装JDK1.8,并设置JAVA_HOME 环境变量,过程省略


3、所有节点时间同步


4、所有节点修改主机名,例如hadoop01 这样修改

vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=hadoop01


5、所有修改/etc/hosts文件,并关闭防火墙和SELinux

192.168.131.165 hadoop01
192.168.131.166 hadoop02
192.168.131.168 hadoop03


6、创建hadoop用户,生成秘钥对,使用所有节点之间能够面密码登录

生产环境有时候不允许root账户登录,所以最好是创建一个专门的账户用来节点直接互相连接,并且该用户要有sudo权限

adduser hadoop
passwd hadoop



ssh-copy-id -i .ssh/id_rsa.pub HADOOP01
ssh-copy-id -i .ssh/id_rsa.pub HADOOP02
ssh-copy-id -i .ssh/id_rsa.pub HADOOP03

执行上面命令后,每个节点的hadoop用户下会创建.ssh目录,并生成authorized_keys文件


#将秘钥对拷贝到从节点

scp id_rsa id_rsa.pub  HADOOP02:~/.ssh
scp id_rsa id_rsa.pub  HADOOP03:~/.ssh


保证每个节点的hadoop家目录下的.ssh目录下,都有以下几个文件

# ll /home/hadoop/.ssh/
总用量 16
-rw------- 1 hadoop hadoop  397 5月  18 10:57 authorized_keys
-rw------- 1 hadoop hadoop 1675 5月  18 10:53 id_rsa
-rw-r--r-- 1 hadoop hadoop  397 5月  18 10:53 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop 1206 5月  18 10:59 known_hosts


#hadoop用户添加sudo权限

边界/etc/sudoers

追加一行

hadoop ALL=(root)NOPASSWD:ALL


#hadoop用户下,执行sudo su - root切换到root用户,能过没有提示输入密码则表示正常



7、所有节点将cloudera-manager的tar包解压缩到/opt目录

tar zxf cloudera-manager-el6-cm5.10.0_x86_64.tar.gz -C /opt


8、所有节点创建用户

sudo useradd --system --home=/opt/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

##下面这一步网上看到的,但不清楚有什么用,好像是使用单用户模式用的到,我在后面的CM-Server控制台中没有启用单用户模式
echo USER=\"cloudera-scm\" >> /etc/default/cloudera-scm-agent



9、所有节点修改cloudera-scm-agent 配置,将server_host设置为主节点的主机名

cd /opt/cloudera-manager/cm-5.14.0/etc/cloudera-scm-agent
vim  config.ini

设置server_host=hadoop01 (注意,所有节点都要改)


所有节点设置/proc/sys/vm/swappiness 设置为最大值 0。当前设置为 60,

echo 0 > /proc/sys/vm/swappiness

上面只是临时的修改,重启后失效,下面是永久修改

编辑/etc/sysctl.conf文件

设置vm.swappiness=0,并重启服务器


所有主机禁用透明压缩,参考

https://www.linuxidc.com/Linux/2016-11/137515.htm


echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled


上面只是临时修改,如果要永久修改,则编辑/etc/rc.d/rc.local,追加以下内容

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi


保存退出,然后赋予rc.local文件执行权限:

[root@localhost ~]# chmod +x /etc/rc.d/rc.local

最后重启系统,以后再检查THP应该就是被禁用了




10、主节点配置

a、安装依赖包

yum -y install bind-utils chkconfig cyrus-sasl-gssapi cyrus-sasl-plain fuse fuse-libs gcc httpd
yum -y install libxslt mod_ssl openssl openssl-devel perl portmap psmisc  sqlite swig zlib


b、安装mysql并启动服务


c、设置mysql账户的登录密码

mysqladmin -u root password '123456'


##创建安装CDH组件时需要的库

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database reports DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

#设置root授权访问以上所有的数据库:

#授权root用户在主节点拥有所有数据库的访问权限

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;


d、下载 mysql 驱动包

cd /opt/cloudera-manager/cm-5.10.0/share/cmf/lib
wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar


e、创建库

为CM创建数据库

格式:

scm_prepare_database.sh mysql cm -h <hostName> -u<username>  -p<password> --scm-host <hostName>  scm scm scm

对应于:数据库类型  数据库 服务器 用户名 密码  –scm-host  Cloudera_Manager_Server 所在节点……


 cd /opt/cm-5.14.0/share/cmf/schema
 ./scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm

  JAVA_HOME=/usr/java/jdk1.8.0_151
Verifying that we can write to /opt/cloudera-manager/cm-5.10.0/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cloudera-manager/cm-5.10.0/etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_151/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cloudera-manager/cm-5.10.0/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.10.0/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

出现上面的提示表示成功,经测试将locaohost换成hadoop01会报错,提示没有权限,好像用localhost也没有什么问题。


f、主节点上创建/opt/cloudera/parcel-repo目录

mkdir -p /opt/cloudera/parcel-repo

将下面三个文件拷贝到该目录

  • CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel

  • manifest.json

  • CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha

注意:将CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1重命名为CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha


修改/opt/cloudera/parcel-repo 文件权限

chown cloudera-scm:cloudera-scm /opt/cloudera


g、创建日志目录

sudo mkdir -p /var/log/cloudera-scm-headlamp
sudo chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-headlamp
sudo mkdir -p /var/log/cloudera-scm-firehose
sudo chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-firehose
sudo mkdir -p /var/log/cloudera-scm-alertpublisher
sudo chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-alertpublisher
sudo mkdir -p /var/log/cloudera-scm-eventserver
sudo chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-eventserver
sudo mkdir -p /var/lib/cloudera-scm-headlamp
sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-headlamp
sudo mkdir -p /var/lib/cloudera-scm-firehose
sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-firehose
sudo mkdir -p /var/lib/cloudera-scm-alertpublisher
sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-alertpublisher
sudo mkdir -p /var/lib/cloudera-scm-eventserver
sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-eventserver
sudo mkdir -p /var/lib/cloudera-scm-server
sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server



h、在主节点上启动CM-Manager服务和CM-Agent服务,并在所有从节点上启动CM-Agent服务


/opt/cloudera-manager/cm-5.10.0/etc/init.d/cloudera-scm-server  start
/opt/cloudera-manager/cm-5.10.0/etc/init.d/cloudera-scm-agent  start


11、CM控制台配置

登录http://hadoop01:7180

账号密码都是admin


image.png


image.png

image.png

image.png


image.png




配置集群的管理账户,这个账户是前面第6步创建的,要求有sudo权限

image.png

我这里集群中只安装了HDFS和zookeeper服务,如果还需要安装其他服务,可以在集群中添加

image.png