4

前言

最近大数据井喷式爆发,很多公司都是从零开始,需要搭建大数据平台,很多公司选择了用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 (重启后永久生效)  

clipboard.png

手动时钟同步

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

clipboard.png

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

clipboard.png

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文件放在了哪里)

clipboard.png

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

clipboard.png

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

clipboard.png

然后配置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

clipboard.png

环境配置成功

配置Cloudera Manager yum库

安装httpd和createrepo
yum -y install httpd createrepo

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

接着在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

clipboard.png

安装Cloudera Manager Server

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

clipboard.png

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

clipboard.png

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目录内容如下:

clipboard.png

配置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

clipboard.png

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

clipboard.png

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

clipboard.png

解压后的目录如下图所示

clipboard.png

开始安装

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

clipboard.png

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

clipboard.png

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

clipboard.png

④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]# 

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

创建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)

clipboard.png

然后为数据库授权设置密码并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)

clipboard.png

查看授权是否正确
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)

clipboard.png

设置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

clipboard.png

安装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:

clipboard.png

登录欢迎界面,点击继续

clipboard.png

接受许可条款,点击继续

clipboard.png

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

clipboard.png

群集安装

欢迎界面点击继续

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

clipboard.png

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

clipboard.png

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

再次检查

clipboard.png

群集设置

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

clipboard.png

分配服务的节点

clipboard.png

验证数据库,点击继续

clipboard.png

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

clipboard.png

创建/tmp目录报错

clipboard.png

解决方法 su - hdfs

clipboard.png

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

clipboard.png

完成

clipboard.png

clipboard.png


L_XL
13 声望1 粉丝

Take me hand