CDH入门教程1-2

CDH入门教程1-1 CM简介及集群部署

Cloudera Manager

1.1 CM简介

1.1.1 CM简介

Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

1.1.2 CM架构

1.2 阿里云服务器准备

1.2.1 注册阿里云账户

阿里云网址为:https://cn.aliyun.com/,注册账号并登录。

1.2.2 购买ECS云服务器

1) 进入控制台

2)打开侧边栏,点击云服务器ECS

3)侧边栏点击实例,然后点击创建实例

4)选择计费方式、服务器区域

5)选定服务器配置

6)选定服务器系统

7)选定磁盘类型及大小

8)网络和安全组配置

9)系统配置

10)分组设置,默认即可

11)确认订单

1.2.3 ECS配置及安全组修改

1)升级hadoop102配置

(1)停止实例

(2)更改实例规格

2)修改安全组策略

需将以下端口开放

1.3 CM部署准备

1.3.1 连接阿里云服务器

打开远程连接工具进行配置,这里以CRT为例。

1)新建一个session

2)填写hostname(填写公网ip)

1.3.2 修改hosts文件

[root@hadoop102 ~]# vim /etc/hosts

127.0.0.1 localhost localhost

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.17.138.24 hadoop102 hadoop102

172.17.138.25 hadoop103 hadoop103

172.17.138.23 hadoop104 hadoop104

注意:这里每个人不一样,ip填写的是私有ip,做完后ping一下。

1.3.3 SSH免密登录

配置hadoop102对hadoop102、hadoop103、hadoop104三台服务器免密登录。CDH服务开启与关闭是通过server和agent来完成的,所以这里不需要配置SSH免密登录,但是为了我们分发文件方便,在这里我们也配置SSH。

1)生成公钥和私钥:

[root@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

2)将公钥拷贝到要免密登录的目标机器上

[root@hadoop102 .ssh]$ ssh-copy-id hadoop102

[root@hadoop102 .ssh]$ ssh-copy-id hadoop103

[root@hadoop102 .ssh]$ ssh-copy-id hadoop104

3)重复1和2的操作,配置hadoop103对hadoop102、hadoop103、hadoop104三台服务器免密登录。

1.3.4 集群同步脚本

1)在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下:

[root@hadoop102 ~]$ mkdir bin

[root@hadoop102 ~]$ cd bin/

[root@hadoop102 bin]$ vi xsync

在该文件中编写如下代码

#!/bin/bash

#1 获取输入参数个数,如果没有参数,直接退出

pcount=$#

if((pcount==0)); then

echo no args;

exit;

fi

#2 获取文件名称

p1=$1

fname=`basename $p1`

echo fname=$fname

#3 获取上级目录到绝对路径

pdir=`cd -P $(dirname $p1); pwd`

echo pdir=$pdir

#4 获取当前用户名称

user=`whoami`

#5 循环

for((host=103; host<105; host++)); do

echo ------------------- hadoop$host --------------

rsync -av $pdir/$fname $user@hadoop$host:$pdir

done

2)修改脚本 xsync 具有执行权限

[root@hadoop102 bin]$ chmod 777 xsync

1.3.5 集群整体操作脚本

1)在/root/bin目录下创建脚本xcall.sh

[root@hadoop102 bin]$ vim xcall.sh

2)在脚本中编写如下内容

#! /bin/bash

for i in hadoop102 hadoop103 hadoop104

do

echo --------- $i ----------

ssh $i "$*"

done

3)修改脚本执行权限

[root@hadoop102 bin]$ chmod 777 xcall.sh

4)将/etc/profile文件追加到~/.bashrc后面(修改.bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了)

[root@hadoop102 module]# cat /etc/profile >> ~/.bashrc

[root@hadoop103 module]# cat /etc/profile >> ~/.bashrc

[root@hadoop104 module]# cat /etc/profile >> ~/.bashrc

5)测试

[root@hadoop102 bin]# xcall.sh jps

1.3.6 安装JDK(三台)

1)在hadoop102的/opt目录下创建module和software文件夹

[root@hadoop102 opt]# mkdir module

[root@hadoop102 opt]# mkdir software

2)用SecureCRT将jdk-8u144-linux-x64.tar.gz导入到hadoop102的/opt/software目录

3)在Linux系统下的opt目录中查看软件包是否导入成功

[root@hadoop102 software]$ ls

jdk-8u144-linux-x64.tar.gz

4)解压JDK到/opt/module目录下,并修改文件的所有者和所有者组为root

[root@hadoop102 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

[root@hadoop102 module]# chown root:root jdk1.8.0_144/ -R

5)配置JDK环境变量

(1)打开/etc/profile文件

[root@hadoop102 software]$ vim /etc/profile

在profile文件末尾添加JDK路径

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

(2)让修改后的文件生效

[root@hadoop102 jdk1.8.0_144]$ source /etc/profile

6)测试JDK是否安装成功

[root@hadoop102 jdk1.8.0_144]# java -version

java version "1.8.0_144"

7)将hadoop102中的JDK和环境变量分发到hadoop103、hadoop104两台主机

[root@hadoop102 opt]# xsync /opt/module/

[root@hadoop102 opt]# xsync /etc/profile

分别在hadoop103、hadoop104上source一下

[root@hadoop103 ~]# source /etc/profile

[root@hadoop104 ~]# source /etc/profile

1.3.7 安装MySQL

注意:一定要用root用户操作如下步骤;先卸载MySQL再安装

1)安装包准备

(1)查看MySQL是否安装(阿里云默认是没有安装)

[root@hadoop102 桌面]# rpm -qa|grep -i mysql

mysql-libs-5.1.73-7.el6.x86_64

(2)如果安装了MySQL,就先卸载

[root@hadoop102 桌面]#

rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64

(3)删除阿里云原有MySql依赖(虽然没有安装但是依赖还是有的,默认是5.7的依赖)

[root@hadoop102 桌面]# yum -y remove mysql-libs

  1. 下载MySql依赖并安装(5.6依赖)

[root@hadoop102]# yum -y install libaio

[root@hadoop102]# yum -y install autoconf

[root@hadoop102 software]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-compat-5.6.24-1.el7.x86_64.rpm

[root@hadoop102 software]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-5.6.24-1.el7.x86_64.rpm

(Wget下载或者文档里提供的上传任选其一都可以)

[root@hadoop102 software]# rpm -ivh MySQL-shared-5.6.24-1.el7.x86_64.rpm

[root@hadoop102 software]# rpm -ivh MySQL-shared-compat-5.6.24-1.el7.x86_64.rpm

(5)上传mysql-libs.zip到hadoop102的/opt/software目录,并解压文件到当前目录

##因为没有安装unzip命令因此要提前安装

[root@hadoop102 software]# yum install unzip

[root@hadoop102 software]# unzip mysql-libs.zip

[root@hadoop102 software]# ls

mysql-libs.zip

mysql-libs

(6)进入到mysql-libs文件夹下

[root@hadoop102 mysql-libs]# ll

总用量 76048

-rw-r--r--. 1 root root 18509960 3月 26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm

-rw-r--r--. 1 root root 3575135 12月 1 2013 mysql-connector-java-5.1.27.tar.gz

-rw-r--r--. 1 root root 55782196 3月 26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm

2)安装MySQL服务器

(1)安装MySQL服务端

[root@hadoop102 mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm

(2)查看产生的随机密码

[root@hadoop102 mysql-libs]# cat /root/.mysql_secret

4P8jmbMx_RVQpEOq

(3)查看MySQL状态

[root@hadoop102 mysql-libs]# service mysql status

(4)启动MySQL

[root@hadoop102 mysql-libs]# service mysql start

3)安装MySQL客户端

(1)安装MySQL客户端

[root@hadoop102 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm

(2)链接MySQL(密码替换成产生的随机密码)

[root@hadoop102 mysql-libs]# mysql -uroot -pOEXaQuS8IWkG19Xs

(3)修改密码

mysql>SET PASSWORD=PASSWORD('000000');

(4)退出MySQL

mysql>exit

4)MySQL中user表中主机配置

配置root用户的远程登录,只要是root用户+密码,在任何主机上都能登录MySQL数据库。

(1)进入MySQL

[root@hadoop102 mysql-libs]# mysql -uroot -p000000

(2)显示数据库

mysql>show databases;

(3)使用MySQL数据库

mysql>use mysql;

(4)展示MySQL数据库中的所有表

mysql>show tables;

(5)展示user表的结构

mysql>desc user;

(6)查询user表

mysql>select User, Host, Password from user;

(7)修改user表,把Host表内容修改为%

mysql>update user set host='%' where host='localhost';

(8)删除root用户的其他host

mysql>

delete from user where Host='hadoop102';

delete from user where Host='127.0.0.1';

delete from user where Host='::1';

(9)刷新

mysql>flush privileges;

(10)退出

mysql>quit;

1.3.8 创建CM用的数据库

在MySQL中依次创建监控amon数据库、Hive数据库、Oozie数据库、Hue数据库

1)启动数据库

[root@hadoop102 ~]# mysql -uroot -p000000

2)集群监控数据库

mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3)Hive数据库 

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

4)Oozie数据库

mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

5)Hue数据库

mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

6)关闭数据库

mysql> quit;

1.3.9 下载第三方依赖

依次在三台节点(所有Agent的节点)上执行下载第三方依赖(注意:需要联网)

[root@hadoop102 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

[root@hadoop103 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

[root@hadoop104 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

1.4 CM安装部署

1.4.1 CM下载地址

1)CM下载地址:http://archive.cloudera.com/cm5/cm/5/

2)离线库下载地址:http://archive.cloudera.com/cdh5/parcels

1.4.2 CM安装

注:以下所有操作均使用root用户

1)创建/opt/module/cm目录

[root@hadoop102 module]# mkdir /opt/module/cm

2)上传cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz到hadoop102的/opt/software目录,并解压到/opt/module/cm目录

[root@hadoop102 software]# tar -zxvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C /opt/module/cm

3)分别在hadoop102、hadoop103、hadoop104创建用户cloudera-scm

[root@hadoop102 module]#

useradd \

--system \

--home=/opt/module/cm/cm-5.16.2/run/cloudera-scm-server \

--no-create-home \

--shell=/bin/false \

--comment "Cloudera SCM User" cloudera-scm

[root@hadoop103 module]#

useradd \

--system \

--home=/opt/module/cm/cm-5.16.2/run/cloudera-scm-server \

--no-create-home \

--shell=/bin/false \

--comment "Cloudera SCM User" cloudera-scm

[root@hadoop104 module]#

useradd \

--system \

--home=/opt/module/cm/cm-5.16.2/run/cloudera-scm-server \

--no-create-home \

--shell=/bin/false \

--comment "Cloudera SCM User" cloudera-scm

参数说明:

--system 创建一个系统账户

--home 指定用户登入时的主目录,替换系统默认值/home/<用户名>

--no-create-home 不要创建用户的主目录

--shell 用户的登录 shell 名

--comment 用户的描述信息

注意:Cloudera Manager默认去找用户cloudera-scm,创建完该用户后,将自动使用此用户。

4)修改CM Agent配置

修改文件/opt/module/cm/cm-5.16.2/etc/cloudera-scm-agent/ config.ini的主机名称

[root@hadoop102 cloudera-scm-agent]# vim /opt/module/cm/cm-5.16.2/etc/cloudera-scm-agent/config.ini

修改主机名称

server_host=hadoop102

5)配置CM的数据库

拷贝mysql-connector-java-5.1.27-bin.jar文件到目录 /usr/share/java/

[root@hadoop102 cm]# mkdir -p /usr/share/java/

[root@hadoop102 mysql-libs]# tar -zxvf mysql-connector-java-5.1.27.tar.gz

[root@hadoop102 mysql-libs]# cp /opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/share/java/

[root@hadoop102 mysql-libs]# mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar

注意:jar包名称要修改为mysql-connector-java.jar
6)使用CM自带的脚本,在MySQL中创建CM库

[root@hadoop102 cm-5.16.2]#

/opt/module/cm/cm-5.16.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop102 -uroot -p000000 --scm-host hadoop102 scm scm scm

参数说明

-h:Database host

-u:Database username

-p:Database Password

--scm-host:SCM server's hostname

7)分发cm

[root@hadoop102 module]# xsync /opt/module/cm

8)创建Parcel-repo(CDH本地包仓库)

[root@hadoop102 module]# mkdir -p /opt/cloudera/parcel-repo

[root@hadoop102 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

9)拷贝下载文件manifest.json 、CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1 、CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel到hadoop102的/opt/cloudera/parcel-repo/目录下

[root@hadoop102 parcel-repo]# ls

CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1

manifest.json

10)将CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1:需改名为

CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha

[root@hadoop102 parcel-repo]# mv CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha

11)在hadoop102上创建目录/opt/cloudera/parcels(CDH的安装包路径),并修改该目录的所属用户及用户组为cloudera-scm

[root@hadoop102 module]# mkdir -p /opt/cloudera/parcels

[root@hadoop102 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

1.4.3 启动CM服务

1)启动服务节点:hadoop102

[root@hadoop102 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-server start

Starting cloudera-scm-server: [确定]

2)启动工作节点:hadoop102、hadoop103、hadoop104

[root@hadoop102 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent start

[root@hadoop103 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent start

[root@hadoop104 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent start

注意:启动过程非常慢,Manager启动成功需要等待5分钟左右,过程中会在数据库中创建对应的表需要耗费 一些时间。

3)查看被占用则表示安装成功了!!!

[root@hadoop102 cm]# netstat -nlp | grep 7180

tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 5498/java

4)访问http://hadoop102:7180,(用户名、密码:admin)

1.4.4 关闭CM服务

1)关闭工作节点:hadoop102、hadoop103、hadoop104

[root@hadoop102 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent stop

Stopping cloudera-scm-agent: [确定]

[root@hadoop103 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent stop

Stopping cloudera-scm-agent: [确定]

[root@hadoop104 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent stop

Stopping cloudera-scm-agent: [确定]

2)关闭服务节点:hadoop102

[root@hadoop102 cm]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-server stop

停止 cloudera-scm-server: [确定]

1.5 CM的集群部署

1.5.1 接受条款和协议

1.5.2 选择免费

1.5.3 指定主机

1.5.4 选择CDH的版本5.16.2

注意:如果这里没有出现对应的版本,那么重启server和agent服务即可。

1.5.5 等待下载安装

注意:如果这里出现问题,如网络中断,死机等,再次进入页面可能出现查询不到机器的情况,这时我们可以:

1)停止所有服务

[root@hadoop102 parcel-repo]#

/opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent stop

Stopping cloudera-scm-agent: [确定]

[root@hadoop103 parcel-repo]#

/opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent stop

Stopping cloudera-scm-agent: [确定]

[root@hadoop104 parcel-repo]#

/opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-agent stop

Stopping cloudera-scm-agent: [确定]

[root@hadoop102 parcel-repo]#

/opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-server stop

停止 cloudera-scm-server: [确定]

2)删除三台机器的UUID

rm -rf /opt/module/cm/cm-5.16.2/lib/cloudera-scm-agent/*

3)删除数据库

mysql>drop database cm;

4)重新运行创建数据库的脚本

[root@hadoop102 cm-5.16.2]#

/opt/module/cm/cm-5.16.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop102 -uroot -p000000 --scm-host hadoop102 scm scm scm

5)重新启动服务进行安装

警告1:Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:

通过echo 10 > /proc/sys/vm/swappiness即可解决。

警告2:已启用透明大页面压缩,可能会导致重大性能问题。(三台机器)请运行

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

echo never > /sys/kernel/mm/transparent_hugepage/enabled以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始脚本中,以便在系统重启时予以设置。

posted @ 2023-02-12 23:47  LEEPINE  阅读(255)  评论(0编辑  收藏  举报