离线搭建CDH6.X图解教程

前言

最近大数据井喷式爆发,很多公司都是从零开始,需要搭建大数据平台,很多公司选择了用CDH搭建大数据平台,CDH相对于手动搭建来说,他有安装升级方便,自动下载以来软件包,与hadoop生态系统包自动匹配等优点

环境准备

系统环境CentOS7

见前面文章:服务器CentOS 7.X系统安装配置图解教程(虚拟机通用)
https://segmentfault.com/a/1190000019815245?share_user=1030000019541827

ssh免登录设置

见前面的文章:ssh配置免密登录手动版和脚本版
https://segmentfault.com/a/1190000019919600?share_user=1030000019541827

关闭防火墙

CentOS7防火墙命令
firewall-cmd --state                 查看防火墙
systemctl stop firewalld.service     关闭防火墙
systemctl disable firewalld.service  永久关闭防火墙

关闭selinux

setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)  

《离线搭建CDH6.X图解教程》

手动时钟同步

因为离线环境,没装ntp所以使用手动的方法进行时钟同步(推荐使用ntp)
xshell有发送命令到所有会话,发送到三台机器时间就统一了,很方便
重启失效修改系统时间命令:date -s "2019-08-3 11:14:00"

《离线搭建CDH6.X图解教程》

重启不失效的修改系统时间的命令:date -s "2019-08-3 11:16:00" && hwclock --systohc 

《离线搭建CDH6.X图解教程》

yum源仓库配置

见前面的文章:创建yum源仓库和其他服务器指向yum源仓库(局域网yum源仓库)图解教程
https://segmentfault.com/a/1190000019906869?share_user=1030000019541827

安装包准备

CM6 RPM官网:https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/
需要下载该链接下的所有RPM文件
然后放入/upload/cloudera-repos/文件夹下,
将jdk文件(oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm)单独拿出来随便放一个目录我们后面单独装jdk,我是放入了opt目录下

ASC文件:https://archive.cloudera.com/cm6/6.0.1/allkeys.asc
同时还需要下载一个asc文件,同样保存到cloudera-repos目录下

要求使用5.1.26以上版本的jdbc驱动,mysql-connector-java-5.1.47.tar.gz
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz

CDH6 Parcels:https://archive.cloudera.com/cdh6/6.0.1/parcels/
需要下载CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel和manifest.json这两个文件

mysql安装包下载
https://dev.mysql.com/downloads/mysql/
根据系统版本下载 

回头会整理把所有的打包上传到网盘方便大家统一下载

安装

配置JDK环境

cd /opt     (我是将jdk放入了opt目录,具体进入哪个目录看jdk的rpm文件放在了哪里)

《离线搭建CDH6.X图解教程》

rpm -ivh oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

《离线搭建CDH6.X图解教程》

cd /usr/java 用ll进行查看会发现有个jdk1.8.0_141-cloudera文件

《离线搭建CDH6.X图解教程》

然后配置java环境变量
vim /etc/profile(新装的CentOS7系统可能没有vim命令,我习惯了vim所以提前安装了,可以用vi 或者安装vim工具)
在文件末尾添加
export JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version

《离线搭建CDH6.X图解教程》

环境配置成功

配置Cloudera Manager yum库

安装httpd和createrepo
yum -y install httpd createrepo

《离线搭建CDH6.X图解教程》

启动httpd服务并设置开机自启动:
systemctl start httpd
systemctl enable httpd

《离线搭建CDH6.X图解教程》

然后进入到前面准备好的存放Cloudera Manager RPM包的目录cloudera-repos下:
cd /upload/cloudera-repos/
生成RPM元数据:createrepo .
提示:createrpo 点  后面有个点

《离线搭建CDH6.X图解教程》

然后将cloudera-repos目录移动到httpd的html目录下:
mv cloudera-repos /var/www/html/
确保可以通过浏览器查看到这些RPM包:

《离线搭建CDH6.X图解教程》

接着在Cloudera Manager Server主机上创建cm6的repo文件(三台机器):
cd /etc/yum.repos.d
vim cloudera-manager.repo

添加如下内容:

[cloudera-manager]
name=Cloudera Manager 6.0.1
baseurl=http://192.168.66.61/cloudera-repos/
gpgcheck=0
enabled=1
保存,退出,然后执行yum clean all && yum makecache命令:安装Cloudera Manager Server

《离线搭建CDH6.X图解教程》

安装Cloudera Manager Server

这一步只需要在CM Server节点上操作。
执行下面的命令:
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

《离线搭建CDH6.X图解教程》

会在opt目录下生成cloudera文件夹

《离线搭建CDH6.X图解教程》

Cloudera Manager Server安装完成后,进入到本地Parcel存储库目录:
cd /opt/cloudera/parcel-repo
将第一部分下载的CDH Parcel文件(CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel和manifest.json)上传至该目录下,然后执行命令生成sha文件:
sha1sum CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel | awk '{ print $1 }' > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
然后执行下面的命令修改文件所有者:
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
最终/opt/cloudera/parcel-repo目录内容如下:

《离线搭建CDH6.X图解教程》

配置mysql jdbc驱动

在所有节点,从前面下载好的mysql-connector-java-5.1.47.tar.gz包中解压出mysql-connector-java-5.1.47-bin.jar文件,将mysql-connector-java-5.1.47-bin.jar文件上传至CM Server节点上的/usr/share/java/目录下并重命名为mysql-connector-java.jar(如果/usr/share/java/目录不存在,需要手动创建):

tar -zxvf mysql-connector-java-5.1.47.tar.gz
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

《离线搭建CDH6.X图解教程》

Mysql安装

安装新版mysql前,需将系统自带的mariadb-lib卸载
[root@node1 java]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@node1 java]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@node1 java]# rpm -qa|grep mariadb

《离线搭建CDH6.X图解教程》

解压安装包:新建一个目录将安装包上传到该目录下然后解压
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 

《离线搭建CDH6.X图解教程》

解压后的目录如下图所示

《离线搭建CDH6.X图解教程》

开始安装

①mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

《离线搭建CDH6.X图解教程》

②mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

《离线搭建CDH6.X图解教程》

③mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

《离线搭建CDH6.X图解教程》

④mysql-community-server-5.7.26-1.el7.x86_64.rpm
在安装之前需要检查libaio是否,我这个是已经有了,若没有需要在网上下载
[root@node1 mysql]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64
[root@node1 mysql]# 

《离线搭建CDH6.X图解教程》

安装server
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
发现报错说缺少net-tools依赖

《离线搭建CDH6.X图解教程》

如果联网可以安装依赖,此时我们暂时不理强制安装,命令如下
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm --force --nodeps

《离线搭建CDH6.X图解教程》

初始化数据库
// 初始化,执行生会在/var/log/mysqld.log生成随机密码
[root@node1 mysql]# mysqld --initialize
[root@node1 log]# cat /var/log/mysqld.log 

《离线搭建CDH6.X图解教程》

更改mysql数据库目录的所属用户及其所属组
chown mysql:mysql /var/lib/mysql -R
启动mysql:systemctl start mysqld.service
查看mysql:systemctl status mysqld.service

《离线搭建CDH6.X图解教程》

登录到mysql,更改root用户的密码
查看初始密码:grep 'temporary password' /var/log/mysqld.log
可以发现与上面生成的密码完全一致,这个命令更直白方便一点

《离线搭建CDH6.X图解教程》

登录:mysql -uroot -p
复制密码输入

《离线搭建CDH6.X图解教程》

更改密码为123456789
set password=password('123456789');

《离线搭建CDH6.X图解教程》

退出,重新登录查看密码修改是否有问题
mysql -uroot -p123456789   

《离线搭建CDH6.X图解教程》

创建CDH所需要的数据库

根据所需要安装的服务参照下表创建对应的数据库以及数据库用户,数据库必须使用utf8编码,创建数据库时要记录好用户名及对应密码:
服务名                                 数据库名     用户名
Cloudera Manager Server                scm         scm
Activity Monitor                       amon        amon
Reports Manager                        rman        rman
Hue                                    hue         hue
Hive Metastore Server                  metastore   hive
Sentry Server                          sentry      sentry
Cloudera Navigator Audit Server        nav         nav
Cloudera Navigator Metadata Server     navms       navms
先创建4个数据库及对应用户,操作步骤如下

mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

《离线搭建CDH6.X图解教程》

然后为数据库授权设置密码并FLUSH
mysql> GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456789';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456789';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456789';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '123456789';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

《离线搭建CDH6.X图解教程》

查看授权是否正确
mysql> SHOW GRANTS FOR 'scm'@'%';
+----------------------------------------------+
| Grants for scm@%                             |
+----------------------------------------------+
| GRANT USAGE ON *.* TO 'scm'@'%'              |
| GRANT ALL PRIVILEGES ON `scm`.* TO 'scm'@'%' |
+----------------------------------------------+
2 rows in set (0.00 sec)

mysql> SHOW GRANTS FOR 'amon'@'%';
+------------------------------------------------+
| Grants for amon@%                              |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'amon'@'%'               |
| GRANT ALL PRIVILEGES ON `amon`.* TO 'amon'@'%' |
+------------------------------------------------+
2 rows in set (0.00 sec)

mysql> SHOW GRANTS FOR 'rman'@'%';
+------------------------------------------------+
| Grants for rman@%                              |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'rman'@'%'               |
| GRANT ALL PRIVILEGES ON `rman`.* TO 'rman'@'%' |
+------------------------------------------------+
2 rows in set (0.00 sec)

mysql> SHOW GRANTS FOR 'hive'@'%';
+-----------------------------------------------------+
| Grants for hive@%                                   |
+-----------------------------------------------------+
| GRANT USAGE ON *.* TO 'hive'@'%'                    |
| GRANT ALL PRIVILEGES ON `metastore`.* TO 'hive'@'%' |
+-----------------------------------------------------+
2 rows in set (0.00 sec)

《离线搭建CDH6.X图解教程》

设置Cloudera Manager 数据库

Cloudera Manager Server包含一个配置数据库的脚本。
mysql数据库与CM Server是同一台主机时命令为
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root
不同台时命令为:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h192.168.31.249 --scm-host 192.168.31.245 scm root

《离线搭建CDH6.X图解教程》

安装CDH节点

启动Cloudera Manager Server服务
systemctl start cloudera-scm-server

然后等待Cloudera Manager Server启动,可能需要稍等一会儿,可以通过命令
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log去监控服务启动状态。
当看到INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.日志打印出来后,说明服务启动成功,可以通过浏览器访问Cloudera Manager WEB界面了。

访问Cloudera Manager WEB界面开始配置

打开浏览器,访问地址:http://192.168.66.61:7180,默认账号和密码都为admin:

《离线搭建CDH6.X图解教程》

登录欢迎界面,点击继续

《离线搭建CDH6.X图解教程》

接受许可条款,点击继续

《离线搭建CDH6.X图解教程》

我选的是免费版,然后点击继续

《离线搭建CDH6.X图解教程》

群集安装

欢迎界面点击继续

《离线搭建CDH6.X图解教程》

输入主机名开始搜索,选择三个主机点击继续

《离线搭建CDH6.X图解教程》

选择自定义存储库,用我们配置的CDH仓库

《离线搭建CDH6.X图解教程》

JDK我们安装过了,此处不要勾选,不用再次安装

《离线搭建CDH6.X图解教程》

输入三台主机的root密码,统一一个密码

《离线搭建CDH6.X图解教程》

《离线搭建CDH6.X图解教程》

上面点击继续会自动安装 自动跳到parcel自用继续安装

《离线搭建CDH6.X图解教程》

《离线搭建CDH6.X图解教程》

检查主机正确性
根据提示修改没有配置准确的配置

《离线搭建CDH6.X图解教程》

更改linux swappiness
查看你的系统里面的swappiness cat /proc/sys/vm/swappiness
临时修改swappiness值为10  sysctl vm.swappiness=10
永久修改vim /etc/sysctl.conf  添加vm.swappiness=10

《离线搭建CDH6.X图解教程》

禁用透明界面大压缩
根据提示运行运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”
添加命令到rc.local vim /etc/rc.local

《离线搭建CDH6.X图解教程》

再次检查

《离线搭建CDH6.X图解教程》

群集设置

选择自定义服务,勾选自己需要的业务

《离线搭建CDH6.X图解教程》

分配服务的节点

《离线搭建CDH6.X图解教程》

验证数据库,点击继续

《离线搭建CDH6.X图解教程》

审核更改目录,这里我选择默认的了

《离线搭建CDH6.X图解教程》

创建/tmp目录报错

《离线搭建CDH6.X图解教程》

解决方法 su - hdfs

《离线搭建CDH6.X图解教程》

再次启动,没有问题,继续

《离线搭建CDH6.X图解教程》

完成

《离线搭建CDH6.X图解教程》

《离线搭建CDH6.X图解教程》

    原文作者:L_XL
    原文地址: https://segmentfault.com/a/1190000019962776
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞