前期准备工作

虚拟机准备

  • 至少三台Linux虚拟机,主机保证内存 10 G,其他从机保证在 4G 就可以了,因为主机要运行的服务会比较多。
  • 配置好三台机器的网络IP,主机名称,关闭防火墙

SSH 免密登录

配置好三台主机的免密登录

公钥生成

1
ssh-ketgen -t rsa

将公钥拷贝到目标机器上

1
2
3
ssh-copy-id hadoop101
ssh-copy-id hadoop102
ssh-copy-id hadoop103

集群同步脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/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=101; host<104; host++)); do
echo ------------------- hadoop$host --------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done

JDK 的安装

在主机hadoop101上安装好 JDK后,分发出去。配置好Java环境

集群整体操作脚本

1
2
3
4
5
6
7
#! /bin/bash

for i in hadoop101 hadoop102 hadoop103
do
echo "===============$i 后台进程==============="
ssh $i "source /etc/profile && jps | grep -v Jps"
done

这里,我们记得将 /etc/profile 文件追加到 ~/.bashrc

MySQL安装

这个MySQL安装就不做过多介绍了,装上能用就行。

创建CM用的数据库

1
2
3
4
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

关闭 SELINUX

1
2
3
vim /etc/selinux/config
SELINUX=disabled
# 同步下去,重启

第三方依赖

1
2
# 三台节点都要安装
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

安装CM

下载地址:

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

(2)离线库下载地址:http://archive.cloudera.com/https://sun-iot.coding.net/p/hexo-image/git/raw/master/bigdata/cdh5/parcels

然后,上传解压啥的,就没必要说了

创建新用户

1
2
3
4
5
6
useradd \
--system \ # 创建系统用户
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \ # 指定用户登录的主目录
--no-create-home \ # 不创建用户主目录
--shell=/bin/false \ # 用户登录的 shell 名
--comment "Cloudera SCM User" cloudera-scm # 用户的描述信息

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

修改 CM Agent 配置

1
vim /opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini

修改主机名称:

1
2
# Hostname of the CM server.
server_host=hadoop101

配置CM数据库

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

1
2
# 没有就自己创建
mkdir /usr/share/java/

使用 CM自带脚本,创建 CM库

1
/opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop101 -uroot -p000000 --scm-host hadoop101 scm scm scm

然后再把 cm文件夹分发出去。提前准备好这三个文件:

1572406871740

1
mv https://sun-iot.coding.net/p/hexo-image/git/raw/master/bigdata/cdh-5.12.1-1.https://sun-iot.coding.net/p/hexo-image/git/raw/master/bigdata/cdh5.12.1.p0.3-el6.parcel.sha1 https://sun-iot.coding.net/p/hexo-image/git/raw/master/bigdata/cdh-5.12.1-1.https://sun-iot.coding.net/p/hexo-image/git/raw/master/bigdata/cdh5.12.1.p0.3-el6.parcel.sha

在各台机器上创建目录: /opt/cloudera/parcels

1
2
3
mkdir -p /opt/cloudera/parcels 
# 修改用户组
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

开始分发 /opt/cloudera,过程有点慢

1
xsync /opt/cloudera/

启动/关闭 服务

启动服务

1
2
3
4
# 启动服务端
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server start
# 1启动节点端
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start

关闭服务

1
2
3
4
# 启动服务端
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server stop
# 1启动节点端
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop

对CM的部署

后面的步骤就主要是截图啊。那个,登录的用户名和密码都是 admin

1572414366181

1572414413600

1572414498752

1572414535224

1572414578131

到这,就等吧。然后我们选择自定义安装

1572415932043

目前我们先安装 HDFS,HIVE,YARN,ZOOKEEPER这四个基础服务

1572415989370

分配节点上,我们可以根据我们 Apache 版本的一致

1572416068125

1572416082556

然后就默认下去就好了。这是完成后的页面。

这里

这里,我们修改HDFS的权限配置

1572416156903

  • 我们开放 HadoopLZO支持

    • 主机 -> Parcel -> 配置

1572416226924

1572416236584

1572416311055

    • 返回 Parcel列表,可以看到多出了 LZO,选择下载,分配,激活。
    • 安装完LZO后,打开HDFS配置,找到“压缩编码解码器”一栏,点击加号,添加com.hadoop.compression.lzo.LzopCodec后保存更改

1572416446722

1572416457061

  • 随后,重新部署客户端,在重启集群

1572416474174