手把手教CDH

 1、Cloudera Manager使用

        Cloudera Manager是CDH市场领先的管理平台。作为业界第一的端到端Apache Hadoop的管理应用,Cloudera Manager对CDH的每个部件都提供了细粒度的可视化和控制,从而设立了企业部署的标准。通过Cloudera Manger,运维人员得以提高集群的性能,提升服务质量,提高合规性并降低管理成本。

        Cloudera Manager设计的目的是为了使得对于企业数据中心的管理变得简单和直观。通过 Cloudera Manager,可以方便地部署并且集中式的操作完整的大数据软件栈。该应用软件会自动化安装过程,从而减少了部署集群的时间。通过Cloudera Manager可以提供一个集群范围内的节点实时运行状态视图。同时,还提供了一个中央控制台,可以用于配置集群。不仅如此,Cloudera Manager通过包含一系列的报道和诊断工具,可以帮助优化集群性能,并且提高利用率。Cloudera Manager能够提供以下的功能:

  1. 自动化Hadoop安装过程,大幅缩短部署时间
  2. 提供实时的集群概况,例如节点、服务的运行状况
  3. 提供了集中的中央控制台对集群的配置进行更改
  4. 包含全面的报告和诊断工具,帮助优化性能和利用率

Cloudera Manager 的架构如图所示,主要由如下几部分组成:

  1. 服务端/Server:Cloudera Manager的核心。主要用于管理web server和应用逻辑。它用于安装软件,配置,开始和停止服务,以及管理服务运行的集群。
  2. 代理/agent:安装在每台主机上。它负责启动和停止的进程,部署配置,触发安装和监控主机。
  3. 数据库/Database:存储配置和监控信息。通常可以在一个或多个数据库服务器上运行的多个逻辑数据库。例如,所述的Cloudera管理器服务和监视后台程序使用不同的逻辑数据库。
  4. Cloudera Repository:用于软件分发由Cloudera软件仓库。
  5. 客户端/Clients:提供了一个与Server交互的接口:
  6. 管理平台/Admin Console:提供一个管理员管理集群和Cloudera Manage的基于网页的交互界面。
  7. API:为开发者提供了创造自定义Cloudera Manager程序的API。

2、配置安装源

配置Linux源

安装前选择一台机器安装配置本地源并安装http服务,如utility01

挂载redhat的安装光盘,/root/rhel-server-x86_64-dvd.is为iso镜像的地址

Cloudera Manager使用

Cloudera Manager是CDH市场领先的管理平台。作为业界第一的端到端Apache Hadoop的管理应用,Cloudera Manager对CDH的每个部件都提供了细粒度的可视化和控制,从而设立了企业部署的标准。通过Cloudera Manger,运维人员得以提高集群的性能,提升服务质量,提高合规性并降低管理成本。

Cloudera Manager设计的目的是为了使得对于企业数据中心的管理变得简单和直观。通过 Cloudera Manager,可以方便地部署并且集中式的操作完整的大数据软件栈。该应用软件会自动化安装过程,从而减少了部署集群的时间。通过Cloudera Manager可以提供一个集群范围内的节点实时运行状态视图。同时,还提供了一个中央控制台,可以用于配置集群。不仅如此,Cloudera Manager通过包含一系列的报道和诊断工具,可以帮助优化集群性能,并且提高利用率。Cloudera Manager能够提供以下的功能:

自动化Hadoop安装过程,大幅缩短部署时间

提供实时的集群概况,例如节点、服务的运行状况

提供了集中的中央控制台对集群的配置进行更改

包含全面的报告和诊断工具,帮助优化性能和利用率

Cloudera Manager 的架构如图所示,主要由如下几部分组成:

服务端/Server:Cloudera Manager的核心。主要用于管理web server和应用逻辑。它用于安装软件,配置,开始和停止服务,以及管理服务运行的集群。

代理/agent:安装在每台主机上。它负责启动和停止的进程,部署配置,触发安装和监控主机。

数据库/Database:存储配置和监控信息。通常可以在一个或多个数据库服务器上运行的多个逻辑数据库。例如,所述的Cloudera管理器服务和监视后台程序使用不同的逻辑数据库。

Cloudera Repository:用于软件分发由Cloudera软件仓库。

客户端/Clients:提供了一个与Server交互的接口:

管理平台/Admin Console:提供一个管理员管理集群和Cloudera Manage的基于网页的交互界面。

API:为开发者提供了创造自定义Cloudera Manager程序的API。

配置安装源

配置Linux源

安装前选择一台机器安装配置本地源并安装http服务,如utility01

挂载redhat的安装光盘,/root/rhel-server-x86_64-dvd.is为iso镜像的地址

mount -o loop -t iso9660 /root/rhel-server-x86_64-dvd.iso /mnt/boson

在/etc/yum.repos.d下添加rhel6.repo文件

[rhel6]

name=Redhat Enterprise Linux

baseurl=file:///mnt/boson

enabled=1

gpgcheck=1

gpgkey= file:///mnt/boson/RPM-GPG-KEY-redhat-release

安装http服务

yum -y install httpd

设置开机自启动

chkconfig httpd on

启动http服务

service httpd start

将光盘内容拷贝到/var/www/html下

scp -r /mnt/boson /var/www/html/redhat/

确认使用http:// utiliity01.cdhtest.com /redhat可以访问到下载的文件夹。

在其他服务器上配置源,在/etc/yum.repos.d下添加rhel.repo文件

[local]

name=Redhat Enterprise Linux

baseurl=http://utiliity01.cdhtest.com/redhat

enabled=1

gpgcheck=1

gpgkey=http:// utiliity01.cdhtest.com/redhat/RPM-GPG-KEY-redhat-release

配置CDH源

由于本次在内网环境安装,需要在cloudera官网下载cm安装包和cdh parcel包

cm安装包下载地址如下,可按照需要选择自己需要的版本,目前采用的版本为5.11.2

http://archive.cloudera.com/cm5/repo-as-tarball/

cdh parcel包下载地址如下,请选择和cm配套的版本

http://archive.cloudera.com/cdh5/parcels/

下载后将所有安装包传输至内网环境任一机器,解压缩后的目录结构如下(仅为示意):

将所有文件拷贝至/var/www/html/供集群使用,确认使用http:// utiliity01.cdhtest.com/cdh 和http:// utiliity01.cdhtest.com/cm可以访问到安装包

在/etc/yum.repos.d/文件夹下创建repo文件,如cloudera-manager.repo,内容如下。

[cloudera-manager]

baseurl=http:// utiliity01.cdhtest.com/cm/5/

gpgkey=http:// utiliity01.cdhtest.com/RPM-GPG-KEY-cloudera

gpgcheck=1

集群管理

升级CM和CDH

Cloudera升级概述

下面描述的流程适用于由Cloudera Manager管理的集群,对于不是由Cloudera Manager管理的集群升级,

请参考:

https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_upgrade_command_line.html#xd_583c10bfdbd326ba--5a52cca-1476e7473cd--7f99

CDH和Cloudera Manager不用同时升级,但是需要保证Cloudera Manager和CDH版本的兼容。Cloudera Manager可以管理当前或以前的major版本的CDH,或相同minor版本的CDH,或较低minor版本的CDH。比如,Cloudear Manager 5.7.1可以管理CDH5.7.2,CDH5.6.1和CDH4.8.6,但是不能管理CDH5.8.1. Cloudera Manager5.x不能管理CDH3.x。

升级时具体有如下几种选择:

评估升级影响

一般需要规划一个足够长的维护窗口(停机时间)进行升级。根据需要升级的组件,集群的节点数,以及不同的硬件情况,可能需要一整天来进行升级。开始升级之前,需要做好一些前置条件准备以及关键数据备份,这篇文档在讲述升级步骤时也会说明。升级之前,需要查阅Cloudera Manager的

Cloudera Enterprise 5.x Release Notes | 5.x | Cloudera Documentation

了解API更改,不推荐的功能,新的功能以及不兼容的更改。

同时需要检查

CDH 5 and Cloudera Manager 5 Requirements and Supported Versions | 5.x | Cloudera Documentation

来确认支持的操作系统,JDK,数据库和其他组件。

Cloudera Manager升级概述

升级Cloudera Manager包括以下步骤:

1.在CM节点上升级Cloudera Manager Server,使用操作系统的命令,比如Redhat的yum。也可以手动通过tarballs来升级。

2.在所有主机上升级Cloudera Manager agent,Cloudera Manager的升级向导可以帮助你升级agent(JDK升级可选),同时也可以手动的通过tarballs升级JDK和agent。

Cloudera Manager升级,可以参考官网文档:

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_upgrade.html#concept_q1q_mbs_wx

CDH升级概述

CDH升级包含Hadoop相关组件的升级,可以使用Cloudera Manager来升级CDH,采用parcel或package的方式都可以。

建议使用parcels来升级CDH,因为Cloudera Manager管理这些parcels自动下载,分发和激活。

JDK升级

在升级Cloudera Manager和CDH之前,请确保集群内的所有主机都是使用受支持的Oracle JDK

参考:CDH 5 and Cloudera Manager 5 Requirements and Supported Versions | 5.x | Cloudera Documentation

同时,所有主机必须使用相同版本的JDK

参考:https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_cm_upgrading_to_jdk8.html#xd_583c10bfdbd326ba-590cb1d1-149e9ca9886--7c46

配置安装源

配置新的CM和CDH源

修改/etc/yum.repos.d/cloudera-manager.repo指向新的CM源

[cloudera-manager]

name = Cloudera Manager, Version 5.13.0

baseurl = http://10.123.197.131/cm/5

gpgkey = http://10.123.197.131/cm/RPM-GPG-KEY-cloudera

gpgcheck = 1

升级CM

暂停cms服务

选择集群-Cloudera Management Service,选择停止

备份数据库

在数据库所在服务器上执行如下命令备份原数据库数据

mysqldump -u root -p -A > /root/oldmysql.dump

停止CM服务

停止cloudera-scm-server和所有cloudera-scm-agent

service cloudera-scm-server stop

service cloudera-scm-agent stop

在Cloudera Manager上备份以下目录

scp -r  /etc/cloudera-scm-server/ /root/cm_bak/

scp -r  /etc/cloudera-scm-agent/ /root/cm_bak/

升级CM

yum clean all

yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent

重启Cloudera manager

service cloudera-scm-server start

登入CM执行升级向导

CM会自动启动升级向导

填写CM源

选择安装JDK和JCE

输入SSH登录凭证

等待升级完成

检查主机正确性

升级完成

进入审核更改向导界面

重启Cloudera Management Service

重启完成

CM显示过期配置,重启服务

重启完成

升级CDH

停止集群服务

备份NameNode上的HDFS Metastore,注意,此目录实际地址需要在CM的HDFS配置中查看

cd /dfs/

tar -czvf /root/nn_bak/nn_backup.tar.gz  nn/

在数据库所在服务器上执行如下命令备份原数据库数据

mysqldump -u root -p -A > /root/newmysql.dump

向集群中添加新版的CDH存储库

在主页选择升级集群,进入升级向导

选择升级版本

确认备份

通过检测

等待parcel分发完成

通过主机正确性验证

选择完整集群升级

等待升级完成

升级完成

最终化元数据升级

在最终化元数据之前,进行几天甚至几周的运行观察集群是否正常,在发现所有任务都没有任何异常情况后,再进行最终化元数据操作。一旦进行最终化元数据之后,就不能回滚到老的版本了,除非有数据备份。对NameNode的主备节点都执行最终化元数据升级操作:

功能验证

建议参照集群功能测试确认集群功能。

升级JDK

CDH支持的JDK包括JDK7以及JDK8。Cloudera提供相应JDK包,并可以通过CM自动在集群中部署安装。CDH的版本都能提供对Oracle JDK7的支持,而JDK8的支持则需要CDH5.3之后的版本。目前在CDH发行版中自带的JDK版本为1.7.0_67版本。

参考文档:

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

JDK7版本支持情况:

JDK 7

Supported in all C5.x

1.7u80

Recommended / Latest version tested

1.7u75

Recommended

1.7u67

Recommended

1.7u55

Minimum required

JDK8版本支持情况:

JDK 8

Supported in C5.3 and Higher

1.8u131

Recommended / Latest version tested

1.8u121

Recommended

1.8u111

Recommended

1.8u102

Recommended

1.8u91

Recommended

1.8u74

Recommended

1.8u31

Minimum required

建议使用Cloudera官网推荐的JDK版本。

JDK8安装包准备

在oracle官网下载JDK8 1.8u131的安装包

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

下载JDK8的无限制权限策略文件JCE,如果集群未启动Kerberos,无需下载,但是建议下载,以免日后出现问题。

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

解压下载的两个压缩包,将UnlimitedJCEPolicyJDK8目录下所有文件拷贝至./jdk1.8.0_131/jre/lib/security目录下覆盖原有文件

tar zxvf jdk-8u131-linux-x64.tar.gz

unzip jce_policy-8.zip

cp UnlimitedJCEPolicyJDK8/* jdk1.8.0_131/jre/lib/security/

部署JDK8到集群

将jdk1.8.0_131目录拷贝至/usr/java目录下

cp -r jdk1.8.0_131/ /usr/java/jdk1.8.0_131-cloudera

将jdk1.8.0_131-cloudera目录同步至集群所有节点的/usr/java目录下。注意:集群中所有节点jdk1.8.0_131-cloudera的部署目录必须一致。

nodes=`cat /etc/hosts | grep -v "localhost" | awk '{print $3}' | grep -v kdc*`

for target in $nodes; do echo $target "==========>"; scp -r /usr/java/jdk1.8.0_131-cloudera/ $target:/usr/java/; done

Cloudera Manager配置

登录Cloudera Manager的Web管理界面,进入主机列表页面

点击配置进入主机配置页面

选择高级类别,在Java主目录输入jdk8的路径并保存配置

回到CM主页根据页面提示重启相应服务

验证集群JDK8环境

使用ps -ef命令查看启动的java服务使用的jdk版本

常见问题

cloudera-scm-server使用的jdk版本仍然为jdk7,如需将其切换为jdk8,可以删除CM节点的/usr/java/jdk1.7.0_67-cloudera文件夹并重启cm server

升级Kafka和Spark

本文以升级Kafka0.11及Spark2.2为例,这两个版本都需要JDK1.8的支持,因此需要首先按照将CDH集群JAVA升级至JDK8中的步骤升级JDK

设置源地址

根据配置安装源配置新的Kafka和Spark2源

Kafka下载地址

http://archive.cloudera.com/kafka/parcels

Spark2下载地址

http://archive.cloudera.com/spark2/parcels

在集群中增加新的parcel库

更换Spark CSD文件

CSD文件下载地址

http://archive.cloudera.com/spark2/csd/

将下载的文件放入/opt/cloudera/csd目录

cp SPARK2_ON_YARN-2.2.0.cloudera1.jar /opt/cloudera/csd

CSD文件存放的地址可以通过CM中的Custom Service Descriptors配置项修改

重启cloudera-scm-server服务

service cloudera-scm-server restart

设置parcel

下载、分配Parcel包

激活parcel包时提示重启,选择滚动重启或重启

激活成功

回到CM主页,根据提示重启服务并下发客户端配置

配置Spark2的JAVA环境变量

配置Spark2的JAVA环境变量为JDK8

集群数据备份

namenode节点元数据备份

在CM中选择活动的namenode

选择该namenode,进入安全模式

选择保存Namespace,此命令将所有edits修改flush到fsimage

进入活动namenode的服务器,将namenode元数据备份,根据集群namenode目录进行如下操作

mkdir /root/namenode_back

tar -czvf /root/namenode_back/nn_back.tar.gz /dfs/nn

备份MySQL元数据

在utility01上执行以下命令

mysqldump -u root -p -A > /root/oldmysql.dump

集群用户数据备份

以下路径为Cloudera默认安装目录下各组件用户数据,需在安装相关组件的所有服务器上备份数据

/var/lib/flume-ng

/var/lib/hadoop*

/var/lib/hue

/var/lib/navigator

/var/lib/oozie

/var/lib/solr

/var/lib/sqoop*

/var/lib/zookeeper

#data_driver_path为集群环境部署时设置的目录,如根目录

data_drive_path/dfs

data_drive_path/mapred

data_drive_path/yarn

可参考以下备份zookeeper数据的方式备份以上所有数据

mkdir zookeeper_back

scp -r /var/lib/zookeeper/  /root/zookeeper_back/zookeeper_1

卸载CDH

数据备份

参考集群数据备份备份数据

停止所有服务

在CM界面中停止所有集群服务

先停止集群服务

再停止cms服务

解除并移除Parcels

在CM主页右上角选择parcel图标

停用所有parcel

删除停用后的parcel,此处以KUDU为例,所有parcel都需删除

删除集群

在CM界面选择集群,删除

停止CM相关服务

停止utility01的cloudera manager

systemctl stop cloudera-scm-server

停止所有节点的cloudera manager agent

systemctl stop cloudera-scm-agent

也可以使用脚本停止cloudera manager agent,此脚本在utility01上执行,并假设utility01已经设置到所有服务器的免密登录,可参考配置操作系统,下同。

nodes=`cat /etc/hosts | grep -v "localhost" | awk '{print $3}' | grep -v kdc*`

for target in $nodes; do echo $target "==========>"; ssh -o StrictHostKeyChecking=no $target "service cloudera-scm-agent stop"; done

卸载所有服务

在所有集群节点上运行以下命令

yum remove 'cloudera-manager-*' avro-tools crunch flume-ng hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase-solr hive-hbase hive-webhcat hue-beeswax hue-hbase hue-impala hue-pig hue-plugins hue-rdbms hue-search hue-spark hue-sqoop hue-zookeeper impala impala-shell kite llama mahout oozie pig pig-udf-datafu search sentry solr-mapreduce spark-core spark-master spark-worker spark-history-server spark-python sqoop sqoop2 whirr hue-common oozie-client solr solr-doc sqoop2-client zookeeper

yum clean all

移除Cloudera Manager和用户数据

杀死 Cloudera Manager和Managed进程

在所有集群节点上运行以下命令,将所有服务器的Cloudera Manager和Managed进程杀死

for u in cloudera-scm flume hadoop hdfs hbase hive httpfs  hue impala llama mapred oozie solr spark sqoop sqoop2 yarn zookeeper;

do

    sudo kill $(ps  -u $u -o pid=);

done

移除Cloudera Manager数据

在所有集群节点上运行以下命令,删除所有Cloudera Manager数据

umount cm_processes

rm –rf /usr/share/cmf  /var/lib/cloudera* /var/cache/yum/x86_64/6/cloudera*  /var/log/cloudera* /var/run/cloudera* /etc/cloudera* /usr/lib64/cmf

移除Cloudera Manager Lock File

在所有集群节点上运行以下命令,删除Cloudera Manager Lock File

rm –rf /tmp/.scm_prepare_node.lock

移除用户数据

在所有集群节点上运行以下命令,删除用户所有数据

#用户数据目录

rm -rf /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue  /var/lib/navigator /var/lib/oozie /var/lib/solr /var/lib/sqoop*  /var/lib/zookeeper

rm -rf /usr/lib/hadoop /usr/lib/hadoop* /usr/lib/hive  /usr/lib/hbase /usr/lib/oozie /usr/lib/sqoop* /usr/lib/zookeeper  /usr/lib/bigtop* /usr/lib/flume-ng /usr/lib/hcatalog

  

rm -rf /var/run/hadoop* /var/run/flume-ng  /var/run/cloudera* /var/run/oozie /var/run/sqoop2 /var/run/zookeeper  /var/run/hbase /var/run/hbase /var/run/impala /var/run/hive  /var/run/hdfs-sockets

  

#服务命令

rm -rf /usr/bin/hadoop* /usr/bin/zookeeper*  /usr/bin/hbase* /usr/bin/hive* /usr/bin/hdfs /usr/bin/mapred /usr/bin/yarn  /usr/bin/sqoop* /usr/bin/oozie

#集群配置文件目录

rm -rf /etc/cloud

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值