hadoop记录篇8-cdh5离线安装

一 。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)

》》相关术语

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

  •     deployment :- Cloudera管理器和它管理的所有集群的配置。
  •     cluster : 一个逻辑实体,包含一组主机、一个安装在主机上的CDH版本以及在主机上运行的服务和角色实例。主机只能属于一个集群。
  •     host : 运行角色实例的物理或虚拟机。
  •     rack : 包含一组物理主机的物理实体,通常由同一个交换机提供服务。
  •     service : cdh中的一类功能,有时被称为服务类型。例如:MapReduce、HDFS、yarn。记住这一基本原则也很有帮助:而         在传统环境中,一个主机、cdh和其他分布式系统上运行多个服务,一个服务在许多主机上运行。.
  •     service instance :在集群上运行的服务实例。服务实例跨越多个角色实例。例如: "H" and "yarn".
  •     role : 服务中的一类功能。例如,HDFS服务具有以下角色:: NameNode, SecondaryNameNode, DataNode, and                 Balancer.有时被称为角色类型.
  •     role instance : 在主机上运行的角色的实例。它通常映射到UNIX进程。例如: "NameNode-h1" and "DataNode-h1".
  •     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服务器和应用程序逻辑。它负责安装软件、配置、启动和停止服务,以及管理运行服务的集群。


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分组)中



》》系统环境准备

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删除重装

  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


posted @ 2018-04-23 09:12  饺子吃遍天  阅读(315)  评论(0编辑  收藏  举报