CDH6.2.1搭建(史上最全的安装教程)

1.Cloudera Manager

1.1 CM简介

1.1.1 CM简介

Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
CDH6.2.1搭建(史上最全的安装教程)_第1张图片

1.1.2 CM架构

CDH6.2.1搭建(史上最全的安装教程)_第2张图片

1.2 CM部署准备配置

1.2.1 修改hosts文件

[root@node01 ~]# vim /etc/hosts
127.0.0.1 localhost  localhost
::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6
172.17.138.24 hadoop001 hadoop001 
172.17.138.25 hadoop002 hadoop002 
172.17.138.23 hadoop003 hadoop003 

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

1.2.2 SSH免密登录

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

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

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上

[root@node01 .ssh]$ ssh-copy-id node01
[root@node01 .ssh]$ ssh-copy-id node02
[root@node01 .ssh]$ ssh-copy-id node03

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

1.2.3 集群同步脚本

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

[root@node01 ~]$ mkdir bin

[root@node01 ~]$ cd bin/

[root@node01 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=01; host<04; host++)); do
        echo ------------------- node0$host --------------
        rsync -av $pdir/$fname $user@node0$host:$pdir
done

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

[root@node01 bin]$ chmod 777 xsync

可以在每台机器都增加该脚本,方便后面的操作。

1.2.4 集群整体操作脚本

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

[root@node01 bin]$ vim xcall.sh

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

#! /bin/bash

for i in node01 node02 node03
do
        echo --------- $i ----------
        ssh $i "source /etc/profile ; $*"
done

3)修改脚本执行权限

[root@node01 bin]$ chmod +x xcall.sh

4)测试

[root@node01 bin]# xcall.sh jps

该脚本也可以在集群每台的机器上面增加

1.2.5 关闭防火墙

​ 阿里云的防火墙默认是关闭的,但是他有web防火墙,我们需要将7180,3306,8888,8889,9870等端口开放。本地服务器的话需要执行

firewalld 服务管理

1、安装firewalld

yum -y install firewall

2、开机启动/禁用服务

systemctl enable/disable firewalld

3、启动/关闭服务

systemctl start/stop firewalld

4、查看服务状态

systemctl status firewalld

1.2.6 关闭SELINUX

安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux 内核模块,也是Linux的一个安全子系统。为了避免安装过程出现各种错误,建议关闭,有如下两种关闭方法:

1)临时关闭(不建议使用)

[root@node01 ~]# setenforce 0

但是这种方式只对当次启动有效,重启机器后会失效。

2)永久关闭(建议使用)

修改配置文件/etc/selinux/config

[root@node01 ~]# vim /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled

SELINUX=disabled

3)同步/etc/selinux/config配置文件

[root@node01 ~]# xsync /etc/selinux/config

4)重启node01、node02、node03主机

[root@node01 ~]# reboot

[root@node02 ~]# reboot

[root@node03 ~]# reboot

1.2.7 配置NTP时钟同步

1.确认是否需要安装

1) 我们的操作系统是 Centos7 , 使用 rpm 管理。首先,查看下我们是否已经安装了该服务,

执行以下命令。

rpm -qa | grep ntp

在我们的主机,执行效果如下:

[root@cdh-manager sbin]# rpm -qa | grep ntp
ntp-4.2.6p5-28.el7.centos.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
ntpdate-4.2.6p5-28.el7.centos.x86_64
python-ntplib-0.3.2-1.el7.noarch
You have new mail in /var/spool/mail/root

若只有ntpdate而未见ntp,则需删除原有ntpdate。如:

ntpdate-4.2.6p5-22.el7_0.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
python-ntplib-0.3.2-1.el7.noarch

2)删除已安装ntp

【命令】yum -y remove ntpdate-4.2.6p5-22.el7.x86_64

3)重新安装ntp

【命令】yum -y install ntp

2.安装服务

1)Install NTP(每一台)

yum install ntp

2)启动ntpd并设置为开机自启(每个节点node01,node02,node03)

[root@node02 ~]#sudo systemctl enable ntpd

[root@node02 ~]#  systemctl start ntpd

查看服务状态

systemctl status ntpd

检测时间同步情况

ntpq -p

CDH6.2.1搭建(史上最全的安装教程)_第3张图片

3)使用群发date命令查看结果

xcall date

4.修改时区

1、查看系统当前的时区

[root@node01 etc]# timedatectl
      Local time: Fri 2020-07-24 08:31:38 UTC
  Universal time: Fri 2020-07-24 08:31:38 UTC
        RTC time: Fri 2020-07-24 08:31:38
       Time zone: UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

2、修改系统使用的时区

修改为中国时区

timedatectl set-timezone Asia/Shanghai

修改为世界时区

timedatectl set-timezone UTC

3、时间不准确时校准时间

yum install -y ntpdate
ntpdate us.pool.ntp.org

4.将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间((立即生效))

timedatectl set-local-rtc 1

5.查看硬件时间

hwclock --show

1.3 CM安装准备软件

1.3.1 安装JDK(三台)

1)在node01创建**/usr/java**目录

[root@node01 opt]# mkdir /usr/java

2)用SecureCRT或xshell将jdk-8u144-linux-x64.tar.gz上传至node01,并解压到/usr/java目录下。

[root@node01 ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/

3)配置JAVA_HOME环境变量

(1)打开/etc/profile文件

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

在profile文件末尾添加JDK路径

#JAVA_HOME

export JAVA_HOME=/usr/java/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

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

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

4)测试JDK是否安装成功

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

java version "1.8.0_144"

5)将node01中的JDK和环境变量分发到node02、node03两台主机

[root@node01 opt]# xsync /usr/java/

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

分别在node02、node03上source一下

[root@node02 ~]$ source /etc/profile

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

1.3.2 安装MySQL

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

1)安装包准备

(1)查看MySQL是否安装

[root@node01 桌面]# rpm -qa|grep -i mysql(忽略查询的时候的大小写)

mysql-libs-5.1.73-7.el6.x86_64

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

[root@node01 桌面]#

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

2)安装MySQL服务器

(1)安装

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

sudo yum install mysql-server

检查是否安装好:

启动服务:

sudo systemctl start mysqld

执行 :

mysql

看是否能空密码连接上。

CDH6.2.1搭建(史上最全的安装教程)_第4张图片

修改密码

SET PASSWORD=PASSWORD('000000');

退出

exit

最后不要忘记, 将mysql 加到 开机启动中**

sudo systemctl enable mysqld

3)MySQL中user表中主机配置

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

(1)进入MySQL

[root@node01 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='node01';

delete from user where Host='127.0.0.1';

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

(9)刷新

mysql>flush privileges;

(10)退出

mysql>quit;

1.3.3 为CM安装mysql驱动

(1)下载mysql-connector到node01的/opt/software目录,并解压文件到当前目录

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

tar -zxvf mysql-connector-java-5.1.46.tar.gz -C /opt/module/

(2)创建文件夹并将用到的jar包复制到文件夹下

sudo mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

注意:jar包名称要修改为mysql-connector-java.jar

(3)分发驱动

xsync /usr/share/java

1.3.4 创建CM用的数据库

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

1)启动数据库

[root@node01 ~]# 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)sentry数据库

mysql> create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

7)下面数据库都可以创建一下

create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navDEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navmsDEFAULT CHARSET utf8 COLLATE utf8_general_ci;

7)关闭数据库

mysql> quit;

1.4 CM安装部署

1.4.1 CM安装

Cloudera Manager默认采用yum安装,对于能够联网的用户,可直接在线安装,十分快捷方便。对于网络不畅的用户,则可搭建本地yum源,进行安装。

1)集群规划

节点 node01 node02 node03
服务 cloudera-scm-server cloudera-scm-agent cloudera-scm-agent cloudera-scm-agent

2)下载在线yum源配置文件(在线yum安装)

cd /etc/yum.repos.d

wget https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/cloudera-manager.repo

3)分发在线yum源配置文件(在线yum安装)

xsync /etc/yum.repos.d/cloudera-manager.repo

4)搭建本地yum源(离线yum安装)(若网络环境畅通,此步可直接跳过

(1)将压缩包cloudera-repos.tar.gz拷贝到集群中的一台节点,解压到/var/www/html路径下
cloudera-repos.tar.gz压缩包下载地址
链接:https://pan.baidu.com/s/1hVgOT6ntBby_dZ7Hr1Qv0g
提取码:4b2p

[root@node01 ~]# tar -zxvf cloudera-repos.tar.gz -C /var/www/html

(2)进入/var/www/html/路径,并开启http服务(这个服务需要开启才能进行后面服务的安装)

[root@node01 ~]# cd /var/www/html/

[root@node01 html]# python -m SimpleHTTPServer 80

(3)浏览器访问该节点的80端口,查看http服务是否正常开启

http://node01:80/

CDH6.2.1搭建(史上最全的安装教程)_第5张图片

(4)编辑本地yum源配置文件

vim /etc/yum.repos.d/cloudera-manager.repo

文件内容如下

[cloudera-manager]

name=cloudera-manager

baseurl=http://node01:80/cloudera-repos/cm6/6.2.1/redhat7/yum/

enabled=1

gpgcheck=0

(5)分发该配置文件

xsync /etc/yum.repos.d/cloudera-manager.repo

1.4.2安装CM server及agent

[root@node01 ~]# yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
[root@node02 ~]# yum -y install cloudera-manager-agent cloudera-manager-daemons
[root@node03 ~]# yum -y install cloudera-manager-agent cloudera-manager-daemons

1.4.3 修改CM配置文件(三台,不要用xsync同步)

vim /etc/cloudera-scm-agent/config.ini

分别修改每台集群的server_host=node01

CDH6.2.1搭建(史上最全的安装教程)_第6张图片

6)为CM配置数据库(自带脚本)

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root 000000

1.4.4 启动CM服务

1)启动服务节点:node01

[root@node01 ~]# systemctl start cloudera-scm-server

2)启动工作节点:node01、node02、node03

[root@node01 ~]# systemctl start cloudera-scm-agent


[root@node02 ~]# systemctl start cloudera-scm-agent


[root@node03 ~]# systemctl start cloudera-scm-agent

3)查看Server启动日志

[root@node01 cm]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WgULXbX3-1595816209817)(C:\Users\刘建新\AppData\Roaming\Typora\typora-user-images\image-20200723155540374.png)]

出现Started Jetty server字样及表明启动成功。

4)访问http://node01:7180(初始用户名、密码均为admin)

CDH6.2.1搭建(史上最全的安装教程)_第7张图片

1.4.5关闭CM服务

1)关闭工作节点:node01、node02、node03

[root@node01 ~]# systemctl stop cloudera-scm-agent

 

[root@node02 ~]# systemctl stop cloudera-scm-agent

 

[root@node03 ~]# systemctl stop cloudera-scm-agent

2)关闭服务节点:node01

[root@node01 ~]# systemctl stop cloudera-scm-server

2 数仓之CDH

Cloudera Manager提供了十分方便的安装向导,大大简化了CDH的安装和部署。

1.5 CM的集群部署

1.5.1欢迎页面

CDH6.2.1搭建(史上最全的安装教程)_第8张图片

1.5.2 接受条款和协议

CDH6.2.1搭建(史上最全的安装教程)_第9张图片

1.5.3 选择免费

CDH6.2.1搭建(史上最全的安装教程)_第10张图片

CDH6.2.1搭建(史上最全的安装教程)_第11张图片

1.5.4部署CDH集群

1)欢迎页面

CDH6.2.1搭建(史上最全的安装教程)_第12张图片

2)集群命名

CDH6.2.1搭建(史上最全的安装教程)_第13张图片

3)选定集群物理节点

CDH6.2.1搭建(史上最全的安装教程)_第14张图片

4)添加本地parcel库

http://node01:80/cloudera-repos/cdh6/6.2.1/parcels/

CDH6.2.1搭建(史上最全的安装教程)_第15张图片

http://node01:80/cloudera-repos/cdh6/6.2.1/parcels/

CDH6.2.1搭建(史上最全的安装教程)_第16张图片

CDH6.2.1搭建(史上最全的安装教程)_第17张图片

5)等待parcel的下载、分配、解压和激活

CDH6.2.1搭建(史上最全的安装教程)_第18张图片

6)检查集群网络环境

CDH6.2.1搭建(史上最全的安装教程)_第19张图片

7)选择要安装的CDH组件,选择自定义安装

CDH6.2.1搭建(史上最全的安装教程)_第20张图片

8)选择需要安装的组件,如下

CDH6.2.1搭建(史上最全的安装教程)_第21张图片

9)CDH各组件角色分布

CDH6.2.1搭建(史上最全的安装教程)_第22张图片

CDH6.2.1搭建(史上最全的安装教程)_第23张图片

10)数据库连接测试

CDH6.2.1搭建(史上最全的安装教程)_第24张图片

11)各组件基本设置,使用默认即可

CDH6.2.1搭建(史上最全的安装教程)_第25张图片

12)等待安装部署和启动

CDH6.2.1搭建(史上最全的安装教程)_第26张图片

CDH6.2.1搭建(史上最全的安装教程)_第27张图片

CDH6.2.1搭建(史上最全的安装教程)_第28张图片

CDH6.2.1搭建(史上最全的安装教程)_第29张图片

1.5.5 Sqoop安装部署

1)添加服务

CDH6.2.1搭建(史上最全的安装教程)_第30张图片

2)选择Sqoop

CDH6.2.1搭建(史上最全的安装教程)_第31张图片

3)选择部署节点

CDH6.2.1搭建(史上最全的安装教程)_第32张图片

4)完成

1.6 集群配置修改

1.6.1 配置Hadoop支持LZO

1)点击主机,在下拉菜单中点击Parcel

CDH6.2.1搭建(史上最全的安装教程)_第33张图片

2)点击配置

CDH6.2.1搭建(史上最全的安装教程)_第34张图片

3)加上gplextras parcel库的url

本地url: http://node01:8900/cloudera-repos/gplextras6/6.2.1/parcels/

远程url: https://archive.cloudera.com/gplextras6/6.2.1/parcels/

CDH6.2.1搭建(史上最全的安装教程)_第35张图片

4)静待片刻,Parcel列表中出现了GPLEXTERAS,依次点击下载、分配、激活。

CDH6.2.1搭建(史上最全的安装教程)_第36张图片

5)修改HDFS配置

在HDFS配置项中搜索“压缩编码解码器”,加入com.hadoop.compression.lzo.LzopCodec

CDH6.2.1搭建(史上最全的安装教程)_第37张图片

6)修改Hive配置

在Hive配置项中搜索“Hive 辅助 JAR 目录”,加入/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib

CDH6.2.1搭建(史上最全的安装教程)_第38张图片

7)修改Sqoop配置

在Sqoop的配置项中搜索“sqoop-conf/sqoop-env.sh 的 Sqoop 1 Client 客户端高级配置代码段(安全阀)”,加入以下字段

HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/*
JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/native

CDH6.2.1搭建(史上最全的安装教程)_第39张图片

1.6.2NameNode NameNode 的 Java 堆栈大小

1)waring现象如下图

CDH6.2.1搭建(史上最全的安装教程)_第40张图片

2)更改为4G

1.6.3 修改HDFS的权限检查配置

关闭HDFS中的权限检查:dfs.permissions。

CDH6.2.1搭建(史上最全的安装教程)_第41张图片

1.6.4开启高可用

1)进入HDFS页面点击启用High Availability

CDH6.2.1搭建(史上最全的安装教程)_第42张图片

2)命名

CDH6.2.1搭建(史上最全的安装教程)_第43张图片

3)分配角色

CDH6.2.1搭建(史上最全的安装教程)_第44张图片

4)审核更改

/dfs/jn

CDH6.2.1搭建(史上最全的安装教程)_第45张图片

5)等待启动服务

CDH6.2.1搭建(史上最全的安装教程)_第46张图片

1.6.5配置Hue支持Impala

CDH6.2.1搭建(史上最全的安装教程)_第47张图片

1.7 集群安装问题记录

1.7.1集群安装后报警时钟偏差

1)报警现象如下

CDH6.2.1搭建(史上最全的安装教程)_第48张图片

2)报警原因:集群安装时时间为世界事件,安装后本地集群时间改为上海时间,但是CDH集群的时间还是时间时间导致的,开启NPT服务后,CDH的时间仍然未同步。暂时将本地集群时间还原为世界事件

1.7.2 hdfs Coding Verification Test

1)报警现象如下

CDH6.2.1搭建(史上最全的安装教程)_第49张图片

2)报警原因:纠删码默认需要5个节点以上才能开启,集群共3个节点,因此关闭纠删码策略,改用副本集策略

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wED09eRW-1595816209842)(C:\Users\刘建新\AppData\Roaming\Typora\typora-user-images\image-20200724144908484.png)]

你可能感兴趣的:(cloudera,hadoop,hdfs)