一 。CDH简介

     CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
    Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化

  具体 关于Cloudera Manager(简称:cm)的用法 参考 (https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Introduction/cm5i_primer.html)

》》相关术语

以下图示表示相关术语的关系 具体描述参考:

CDH CPU架构支持_mysql

  • deployment
  • cluster
  • host
  • rack
  • service
  • service instance
  • role
  • role instance
  • role group
  • host template
  • gateway
  • parcel

》》CDH组件

    CDH管理着跨组件版本,并提供一个稳定的平台供许多包一起运行:
       HDFS—自我修复的分布式文件系统
       MapReduce—强大的并行数据处理框架
       Hadoop Common—一组支持Hadoop子项目的工具
       HBase—支持随机读/写访问的Hadoop数据库
       Hive—在大数据集合上的类SQL查询和表
       Pig—数据流语言和编译器
       Oozie—针对互相依赖的Hadoop作业的工作流
       Sqoop—利用集成到Hadoop的数据库和数据仓库
       Flume—高可靠、可配置的数据流集合
       Zookeeper—面向分布式应用的协调服务
       Hue—可视化Hadoop应用的用户接口框架和SDK

》》Cloudera Manager架构

  Cloudera管理器的核心是Cloudera管理器服务器。服务器承载管理控制台Web服务器和应用程序逻辑。它负责安装软件、配置、启动和停止服务,以及管理运行服务的集群。

CDH CPU架构支持_cloudera_02

Cloudera管理器服务器与其他几个组件一起工作:

  • Agent:安装在每台主机上。它负责启动和停止进程,解压缩配置,触发安装和监控主机
  • Management Service:执行各种监控、报警和报告功能的一组角色的服务。
  • Database:存储配置和监控信息
  • Cloudera Repository:可供Cloudera Manager分配的软件的存储库(repo库)
  • Client:用于与服务器进行交互的接口: 
  1. Admin Console:管理员控制台
  2. API:开发人员使用 API可以创建自定义的Cloudera Manager应用程序

二 。CDH安装

  Cloudera管理器可以帮助我们安装内嵌的hadoop套件  需要有个一个管理服务器 和若干个agent代理服务器  多个代理服务器可以位于同一个rack(host分组)中


CDH CPU架构支持_java_03

》》系统环境准备

192.168.58.133 cdh1    cmserver  mysql-server
192.168.58.144 cdh2    cmagent
192.168.58.145 cdh3    cmagent
192.168.58.132 chd4    cmagent


系统使用 centos7 (cat /etc/centos-release)

同步时间 三台机器执行


[root@cdh1 ~]# ln -sf  /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime
[root@cdh1 ~]# ntpdate time1.aliyun.com

关闭防火墙


[root@bogon ~]# systemctl disable firewalld
[root@bogon ~]# iptables --flush

修改主机名


192.168.58.133 执行 hostnamectl set-hostname cdh1
192.168.58.144 执行 hostnamectl set-hostname cdh2
192.168.58.145 执行 hostnamectl set-hostname cdh3
192.168.58.132 执行 hostnamectl set-hostname cdh4

logout重新登录

分别查看是否修改成功


[root@cdh3 ~]# more /etc/hostname
cdh3

修改133 etc/hosts  追加内容


192.168.58.133 cdh1
192.168.58.144 cdh2
192.168.58.145 cdh3
192.168.58.132 cdh4

发送到其他机器


scp /etc/hosts root@192.168.58.144:/etc/
scp /etc/hosts root@192.168.58.145:/etc/
scp /etc/hosts root@192.168.58.132:/etc/

cm安装要求server服务器能免密登录其他agent  133上生成密钥对:


ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost 测试不需要输入密码

公钥拷贝到144 145添加到认证文件


scp ~/.ssh/id_rsa.pub root@cdh2:~/.ssh/
scp ~/.ssh/id_rsa.pub root@cdh3:~/.ssh/
scp ~/.ssh/id_rsa.pub root@cdh4:~/.ssh/
两台机器执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@cdh1 ~]# ssh cdh2
Last login: Fri Apr 20 09:50:00 2018 from 192.168.58.1
[root@cdh2 ~]# exit
logout
Connection to cdh2 closed.
[root@cdh1 ~]# ssh cdh3
Last login: Thu Apr 19 18:50:19 2018 from 192.168.58.1
[root@cdh3 ~]# exit
logout
Connection to cdh3 closed.
免密登录成功登录cdh2和cdh3


》》离线下载依赖工具准备(yum安装的mysql就没有列出)

  1.     cm5.5.6  (http://archive.cloudera.com/cm5/cm/5/  下载cloudera-manager-centos7-cm5.5.6_x86_64.tar.gz)
  2.    cdh parcel离线包 (http://archive.cloudera.com/cdh5/parcels/5.5.6/ 下载和cm相同版本的cdh镜像 其中el7表示centos7版本)   需要下载下面三个文件   
    CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel
    CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel.sha1
    manifest.json
  3.    jdk1.7 (官网描述cdh5版本支持jdk1.7)
    下载地址:(http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html)

》》安装过程(过程参考https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_install_path_C.html)

  1 》安装jdk
     上传到linux后安装

rpm -ivh jdk-7u79-linux-x64.rpm

  2》安装mysql服务器

       Cloudera管理器使用数据库存储有关Cloudera管理器配置(loudera Manager Server, Cloudera Management Service, 和 Hive的元数据)的信息,以及系统或任务进度等信息。为了方便快速完成简单安装,Cloudera管理器可以安装和配置嵌入式PostgreSQL数据库  这里不使用内嵌的PostgreSQL 而使用外部数据库mysql(mariadb) 参考

(https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_installing_configuring_dbs.html#cmig_topic_5)
   Preparing an Cloudera Manager Server External Database章节

    133机器上安装 centos7不能直接使用yum安装 mysql-server  我这里使用mariadb替代

yum -y install epel-release.noarch mariadb-server mariadb

 启动并登陆测试



service mariadb start && mysql -uroot -proot

cm5需要通过java远程连接mysql所以需要将java的驱动包放在某个特定的目录(/usr/share/java)名字必须是mysql-connector-java.jar


下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html


mkdir -p /usr/share/java/
cp /soft/mysql-connector-java-5.1.26-bin.jar /usr/share/java/mysql-connector-java.jar


  3》安装cm5


  下载对应cm安装包(http://archive.cloudera.com/cm5/) 比如我这里下载cloudera-manager-centos7-cm5.5.6_x86_64.tar.gz



mkdir -p /opt/cloudera-manager
tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

创建cm运行的用户(home目录cm版本目录对应上)所有3台主机都要创建

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

其他两台机器拷贝 cm 执行以下命令


scp -r /opt/cloudera-manager root@cdh2:/opt/cloudera-manager
scp -r /opt/cloudera-manager root@cdh3:/opt/cloudera-manager

修改两台agent机器(144和145) 配置server


vi /opt/cloudera-manager/cloudera-manager/cm-5.5.6/etc/cloudera-scm-agent/config.ini

修改server_host为 cdh1或者ip地址:192.168.58.133  server_port使用默认7182【没有修改过服务器的】


133 cmserver上初始化数据库


/opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm

成功结果:


root@cdh1 cm-5.5.6]# /opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm
JAVA_HOME=/usr/java/jdk1.7.0_79
Verifying that we can write to /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server
Executing:  /usr/java/jdk1.7.0_79/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cloudera-manager/cm-5.5.6/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.5.6/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!

查看 /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server目录/db.properties


# Auto-generated by scm_prepare_database.sh on Fri Apr 20 12:24:11 CST 2018
#
# For information describing how to configure the Cloudera Manager Server
# to connect to databases, see the "Cloudera Manager Installation Guide."
#
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm

动将数据库信息写入了该配置文件  mysql下创建了一个数据库scm 创建了一个用户scm 密码scm 服务器是localhost


添加cm5的cdh5镜像parcel  下载地址:http://archive.cloudera.com/cdh5/parcels/5.5.6/


下载和cm相同版本的cdh镜像 其中el7表示centos7版本


CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel
CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel.sha1
manifest.json

将三个文件 放入/opt/cloudera/parcel-repo目录


mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo


启动server


/opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-server start
[root@cdh1 init.d]# netstat -nlp | grep java
tcp        0      0 0.0.0.0:7180            0.0.0.0:*               LISTEN      5390/java           
tcp        0      0 0.0.0.0:7182            0.0.0.0:*               LISTEN      5390/java

7180是web管理界面


7182用于agent连接server


启动两台agent


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

浏览器访问 http://192.168.58.133:7180/ 输入用户名密码都是admin 注意 浏览器语言设置为简体中文 显示中文版


CDH CPU架构支持_mysql_04



三 。CDH删除重装

  1> 删除Agent节点的UUID 

# rm -rf /opt/cloudera-manager/cm-5.5.6/lib/cloudera-scm-agent/*

2>  清空主节点CM数据库


进入主节点的Mysql数据库,然后drop database scm;

 3> 删除Agent节点namenode和datanode节点信息


# rm -rf /opt/dfs/nn/*
     # rm -rf /opt/dfs/dn/*

4> 在主节点上重新初始化CM数据库


/opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm

5> 执行启动脚本


 启动server


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

启动agent


 

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