大数据私房菜--漫漫长路之CDH6.2.0搭建

引言

如果有什么需要明天做的事,最好现在就开始。 --富兰克林
大数据泛指巨量的数据集,因可从中挖掘出有价值的信息而受到重视。步入大数据就要从部署大数据平台开始,所谓大数据平台其实就是一个很多台主机组成的一台新的"computer",这一台高性能"computer"足以让我们处理巨量的数据集。我们可以利用这一台"computer"对数据集进行处理和存储。

概述

CDH,全称Cloudera’s Distribution, including Apache Hadoop。是由Cloudera将Hadoop生态圈中最常使用的开源组件集成为一个Hadoop的发行版。

在安装CDH之前,我们先了解一下CDH的构成。CDH由Cloudera Manager(CM)管理平台和CDH parcel(parcel包含各种Hadoop生态圈组件的安装包)。

下面我们开始离线安装CDH6.2.0,首先要下载三个必要的组件:

  • CM的yum源包
  • parcel组件的下载
  • mysql

CM的官方下载地址为:https://archive.cloudera.com/cm6/6.2.0
parcel的官方下载地址为:https://archive.cloudera.com/cdh6/6.2.0/parcels
mysql的官方下载地址为:https://dev.mysql.com/downloads/mysql

CM:
在这里插入图片描述
parcel组件:
在这里插入图片描述
Mysql组件(mysql安装包+Mysql JDBC )
在这里插入图片描述

虚拟机准备

准备好Centos7的镜像:CentOS-7-x86_64-DVD-1908.iso

集群规划:

主机名IP角色系统版本
CDH00192.168.0.250CMCentos7
CDH01192.168.0.251数据节点Centos7
CDH02192.168.0.252数据节点Centos7
CDH03192.168.0.253数据节点Centos7

在Vbox中生成一台Other Linux(64-bit) 作为CDH00,其余数据节点通过克隆得到。

安装准备

1. 配置JDK

在CM的官方下载可以看到CDH6.2.0匹配的JDK版本为1.8以上的版本
若系统没有安装所支持的jdk版本,在启动cloudera-scm-server会出现出现JDK版本不兼容问题

+======================================================================+
|      Error: Unable to find a compatible version of Java on this host,|
|             either because JAVA_HOME has not been set or because a   |
|             compatible version of Java is not installed.             |
+----------------------------------------------------------------------+
| Please install either:                                               |
| - a supported version of the Oracle JDK from the Oracle Java web     |
|   site:                                                              |
|   > http://www.oracle.com/technetwork/java/javase/index.html <       |
| OR                                                                   |
| - a supported version of the OpenJDK from your OS vendor.  Help for  |
|   some OSes are available at:                                        |
|   > http://openjdk.java.net/install/ <                               |
|                                                                      |
| Cloudera Manager requires Oracle JDK or OpenJDK 1.8 or later.        |
| NOTE: Cloudera Manager will find the Oracle JDK when starting,       |
|       regardless of whether you installed the JDK using a binary     |
|       installer or the RPM-based installer.                          |
+======================================================================+
  • rpm -qa | grep java # 查询已安装的jdk
  • yum remove java* # 卸载已安装的jdk
  • #解压jdk压缩包
tar -xzvf jdk-8u212-linux-x64.tar.gz -C /data/app
  • 配置环境变量
    在/etc/profile文件末尾追加
export JAVA_HOME=/data/app/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

编辑保存之后,使用source /etc/profile生效

  • java -version# 校验java是否安装成功

由于CDH配置的JAVA_HOME路径为/usr/java,如果一开始jdk的安装路径为/usr/java后续安装CM的时候就不会有jdk版本不匹配的问题,但如果一开始jdk的路径不在这个路径下需要把本地安装jdk的路径通过软连接的方式指向/usr/java

# 建立/usr/java目录
mkdir -p /usr/java
# 通过ln命令将本地的jdk目录指向/usr/java下
ln -s /data/app/jdk1.8.0_212/ /usr/java/jdk1.8.0_212

2. 配置hosts

/etc/hosts文件末尾追加
192.168.0.250 CDH00
192.168.0.251 CDH01
192.168.0.252 CDH02
192.168.0.253 CDH03

3. 关闭防火墙

# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机自启
systemctl disable firewalld

4. 关闭SELinux

vim /etc/selinux/config 
SELINUX=enforcing—> SELINUX=disabled 

5. 修改Linux swappiness参数

由于CM会要求用户对Linux进行一些系统层面上的优化,主要为修改交换分区设置和禁用透明页,详情可参考官方文档:
https://docs.cloudera.com/documentation/enterprise/latest/topics/cdh_admin_performance.html
通过以下命令查看交换分区参数

cat /proc/sys/vm/swappiness

临时改动:

echo 0 >  /proc/sys/vm/swappiness 

永久变更:

vim /etc/sysctl.conf 
末尾追加vm.swappiness=0

6. 禁用透明页

首先查看透明大页是否启用,[always] never表示已启用,always [never]表示已禁用

cat /sys/kernel/mm/transparent_hugepage/defrag

在/etc/rc.local增加下列两行

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 赋予权限
chmod +x /etc/rc.d/rc.local

7. 配置mysql的JDBC

# 创建/usr/share/java目录
mkdir -p /usr/share/java
# 解压缩jdbc
tar -xzvf mysql-connector-java-5.1.47.tar.gz
# 拷贝mysql jdbc jar包到/usr/share/java目录
cp mysql-connector-java-5.1.47.jar /usr/share/java/
# 将jar包的命名去掉版本号
mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar

8.克隆虚拟机

将配置好的CM虚拟机克隆成三台数据节点虚拟机,以下以vbox为例:

右键已经初步配置好的CDH00,选择复制(clone)
在这里插入图片描述
更改名称,MAC地址设定为所有网卡重新生成MAC地址
在这里插入图片描述
选择完全复制
在这里插入图片描述
等待片刻Vbox就可完成复制,依次分别生成CDH01、CDH02、CDH03。
在这里插入图片描述
复制好的虚拟机我们需要更好一下静态IP和hostname

# 通过修改配置文件/etc/hostname来修改hostnma
# 将CDH00更改为CDH01
vim /etc/hostname
# 通过修改配置文件
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 

修改IPADDR="x.x.x.x"为对应的IP地址
在这里插入图片描述

6. 配置免密登录

# 在CM节点CDH00上生成公钥文件id_rsa.pub
ssh-keygen -t rsa
# 将公钥追加到authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 修改权限,不加权限无法实现
chmod 600 ~/.ssh/authorized_keys 
# 将ssh文件分发到其余节点中
scp -r ~/.ssh/ root@CDH01:~/.ssh/

各个节点尝试相互SSH验证是否可免密登录

5. 配置NTP

安装ntp

yum -y install ntp

ntp主机配置

vim /etc/ntp.conf

CM节点:

#restrict default nomodify notrap nopeer noquery    #注释掉
restrict CDH00 nomodify notrap nopeer noquery
restrict 192.168.0.0 mask 255.255.252.0 nomodify notrap

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst 
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

在这里插入图片描述

其余数据节点:

#restrict default nomodify notrap nopeer noquery    #注释掉
restrict CDH01 nomodify notrap nopeer noquery
restrict 192.168.0.0 mask 255.255.252.0 nomodify notrap
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst 
server CDH00
Fudge CDH00 stratum 10

在这里插入图片描述

配置完成后重启ntp服务

重新启动 ntp 服务:service ntpd restart
设置开机自启:systemctl enable ntpd.service

校验ntp服务状态

ntpdc -c loopinfo #查看与时间同步服务器的时间偏差
ntpq -p #查看当前同步的时间服务器
ntpstat #查看状态

由于Centos7中有chronyd时间同步,开机自启会产生冲突这里将其禁止

systemctl disable chronyd

安装部署

经过上述的安装准备,已经将集群四台服务器基础配置完成了,接下来对CM节点(CDH00)安装部署CM,通过CM部署大数据平台

1. 安装Mysql

1.1 卸载源生mariadb

# 查看本地mariadb
rpm -qa|grep mariadb
# 卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

1.2 rpm安装mysql

# 解压mysql
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 

解压后的数据文件如下:
在这里插入图片描述
通过rpm安装mysql

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

1.3 mysql配置

# 初始化mysql,mysql的owner为mysql
mysqld --initialize --user=mysql 
# 查看初始后生成的随机密码
cat /var/log/mysqld.log

在log中生成的随机密码如下(不同主机生成的不一样):
在这里插入图片描述
修改mysql管理者密码

# 设置mysql服务自启
systemctl start mysqld.service 
# 重启mysqld
systemctl restart mysqld
# 登录mysql,修改管理者用户密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'toor';

其余配置
查看mysql的字符库,若server的字符库不是utf-8需要修改

SHOW VARIABLES like 'character%';

在这里插入图片描述
修改字符库

# 修改/etc/my.cnf配置文件
vim /etc/my.cnf
# 在 [mysqld] 下面加上这个配置
character-set-server=utf8
# 重启mysql
service mysqld restart

1.4 mysql数据库配置

在CDH当中,需要创建9个数据库和对应用户,具体如下:

ServiceDatabaseUserPassword
Cloudera Manager Serverscmscmscm
Activity Monitoramonamonamon
Reports Managerrmanrmanrman
Huehuehuehue
Hive Metastore Servermetastorehivehive
Sentry Serversentrysentrysentry
Cloudera Navigator Audit Servernavnavnav
Cloudera Navigator Metadata Servernavmsnavmsnavms
Oozieoozieoozieoozie

创建database语句为:

create database scm default character set utf8 default collate utf8_general_ci;
grant all on scm.* to 'scm'@'%' identified by 'scm';

create database amon default character set utf8 default collate utf8_general_ci;
grant all on amon.* to 'amon'@'%' identified by 'amon';

create database rman default character set utf8 default collate utf8_general_ci;
grant all on rman.* to 'rman'@'%' identified by 'rman';

create database hue default character set utf8 default collate utf8_general_ci;
grant all on hue.* to 'hue'@'%' identified by 'hue';

create database metastore default character set utf8 default collate utf8_general_ci;
grant all on metastore.* to 'hive'@'%' identified by 'hive';

create database sentry default character set utf8 default collate utf8_general_ci;
grant all on sentry.* to 'sentry'@'%' identified by 'sentry';

create database nav default character set utf8 default collate utf8_general_ci;
grant all on nav.* to 'nav'@'%' identified by 'nav';

create database navms default character set utf8 default collate utf8_general_ci;
grant all on navms.* to 'navms'@'%' identified by 'navms';

create database oozie default character set utf8 default collate utf8_general_ci;
grant all on oozie.* to 'oozie'@'%' identified by 'oozie';

通过show databases;验证数据库
在这里插入图片描述

2. Http服务安装

yum -y install httpd # 通过yum安装httpd
systemctl start httpd # 启动httpd服务
systemctl enable httpd.service 设置httpd服务开机自启

3. 配置CM安装本地Yum源

# 创建Cloudera Manager包yum源
mkdir -p /var/www/html/cloudera-repos/
# 将下载的cm包文件拷贝到目录下:
cp -r cm6.2.0 /var/www/html/cloudera-repos/
cd /var/www/html/cloudera-repos/cm6.2.0
# 安装createrepo
yum -y install deltarpm-*
yum -y install python-deltarpm-*
yum -y install createrepo-*
# 创建repodata:
createrepo ./
# 配置yum源
vim /etc/yum.repos.d/cloudera-manager.repo
# 键入以下
[cloudera-manager]
name=Cloudera Manager, Version yum
baseurl=http://CDH00/cloudera-repos/cm6.2.0
gpgcheck=0
enabled=1
# 重建yum
yum clean all
yum makecache
# 导入GPG key
rpm --import http://CDH00/cloudera-repos/cm6.2.0/RPM-GPG-KEY-cloudera

4. 安装Cloudera Manager(CM)

在CM节点上安装Cloudera Manager

 yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

安装完成后在/opt目录下会生成cloudera目录
将下载好的组件parcel包移动到指定的目录

cp /data/packages/cdh6.2.0/parcel-6.2.0/* /opt/cloudera/parcel-repo/
cd /opt/cloudera/parcel-repo/
# 在移动后的目录校验shm
sha1sum CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel | awk '{print $1}' > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
# 对比下载的校验和
# 复制后的校验和
[root@CDH00 parcel-repo]# cat CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
e9c8328d8c370517c958111a3db1a085ebace237
# 复制前的校验和
[root@CDH00 parcel-repo]# cat CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1
e9c8328d8c370517c958111a3db1a085ebace237

执行初始化脚本:

# Cloudera Manager Server服务的mysql的数据库为scm,用户名scm,密码scm
# 执行初始化脚本:命令说明:脚本名 数据库类型 数据库名 用户名 密码
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm
# 完成后显示如下
[root@CDH00 java]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm
JAVA_HOME=/data/app/jdk1.8.0_212
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /data/app/jdk1.8.0_212/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Tue Jun 23 12:02:10 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

做完以上步骤最好重启一次虚拟机使配置生效并且清楚一下内存。
在CDH00开启CM服务

service cloudera-scm-server start
# 可以通过查看scm服务器的log
tail  -f /var/log/cloudera-scm-server/cloudera-scm-server.log

经过一段时间,等待CM初始化完成后会出现:

2020-06-23 12:54:33,327 INFO WebServerImpl:org.eclipse.jetty.server.Server: Started @256805ms
2020-06-23 12:54:33,327 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

服务安装

输入http://192.168.0.250:7180(这里192.168.0.250是CM节点CDH00的ip地址)
输入用户名/密码:admin/admin进入配置页面
在这里插入图片描述
Accept License-点击接受
Select Edition-选择免费版本
在这里插入图片描述

1. 群集安装

1.1 Cluster Basics

给集群取一个名称

1.2 Specify Hosts

将四台虚拟机加入群集,这里直接搜索CDH0[0-3],点击搜索获取结果
在这里插入图片描述

1.3 选择存储库

配置Yum源地址:这里使用配置的本地地址即repo文件配置的地址:
http://CDH00/cloudera-repos/cm6.2.0
在这里插入图片描述
勾选下载的CDH版本:
在这里插入图片描述
本地下载的版本为cdh6.2.0.p0.967373所以这里选择cdh6.2.0.p0.967373
PS:如果不选择本地的版本包,他会通过在线方式下载,后续安装。。。自行理解
在这里插入图片描述

1.4 JDK 安装选项

由于我们在安装准备的时候就安装好了jdk,这里不勾选。
在这里插入图片描述

1.5 提供 SSH 登录凭据

输入各主机的ssh登录账户和密码,这里输入root和密码;
在同时安装的数量这里可以根据自己的主机的配置灵活选择,这里安装的是4台主机组成的群集,
CDH00已经安装成功了,我们这里配置同时安装2台避免宿主机卡死。
PS:博主的电脑12G内存跑四台虚拟机的内存就94%占用率,自行理解。。。。
在这里插入图片描述
PS:另外可以自行在其余节点安装agent这样这一步就很快可以完成。
具体步骤为:

1.配置Yum源,配置一个新的repo文件从CDH00获取即可
vim /etc/yum.repos.d/cloudera-manager.repo
键入以下
[cloudera-manager]
name=Cloudera Manager, Version yum
baseurl=http://CDH00/cloudera-repos/cloudera-repos-6.2.0
gpgcheck=0
enabled=1
2.重新加载yum
yum clean all
yum makecache
3.安装agent
yum install cloudera-manager-daemons cloudera-manager-agent

1.6 Install Agents

等待各主机Agents的安装,这里考验的是主机的带宽和性能了。。。
在这里插入图片描述

1.7 Install Parcels

由于我们已经配置好了Parcels从CDH00获取,这里就免去了在线下载的过程,等待完成即可。
在这里插入图片描述

1.8 Inspect Cluster

在这个过程会检查一下群集是否会满足CDH的要求,一般是交换区设置和禁用透明页的Linux底层优化没有做,自行返回上面步骤解决就行。
在这里插入图片描述
如果测试结果问题不大可以勾选"I understand the risks, let me continue with cluster creation."进入下一步。

2. 群集设置

2.1 Select Services

选择自定义安装,一般为了简单,选择HDFS、YARN、ZOOKEEPER后续服务再进行添加。

2.2 Select Services

自定义角色分配,一般NameNode和SecondaryNameNode分开部署,DataNode选择所有节点,Zookeeper选择奇数个部署于除了NN的节点上。

2.3 数据库设置

数据库设置即配置先前的9个CDH必要的数据库,将数据库名和对应的用户名/密码填入即可。
在这里插入图片描述

2.4 审核更改

按照默认即可

2.5 命令详细信息

等待各组件安装初始化,CDH的好处就是免去了源生态安装的各种配置的繁琐。
在这里插入图片描述

2.6 汇总

这样就是实现了CDH6.2.0平台的搭建。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值