欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CDH6.2.1安装步骤

程序员文章站 2022-03-08 14:27:03
...

1.CM部署准备

1.1 连接服务器

1.2 修改hosts文件

[aaa@qq.com ~]# vim /etc/hosts
127.0.0.1 localhost  localhost
::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6
172.17.138.24 hadoop102 hadoop102
172.17.138.25 hadoop103 hadoop103
172.17.138.23 hadoop104 hadoop104

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

1.3 SSH免密登录

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

[aaa@qq.com .ssh]$ ssh-****** -t rsa

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

[aaa@qq.com .ssh]$ ssh-copy-id hadoop102
[aaa@qq.com .ssh]$ ssh-copy-id hadoop103
[aaa@qq.com .ssh]$ ssh-copy-id hadoop104

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

1.4 集群同步脚本

linux集群同步脚本

1.5 集群整体操作脚本

linux集群整体操作脚本

1.6 关闭防火墙

阿里云的防火墙默认是关闭的,但是他有web防火墙,我们需要将7180,3306,8888,8889,9870等端口开放。

1.7 关闭SELINUX

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

[aaa@qq.com ~]# setenforce 0

但是这种方式只对当次启动有效,重启机器后会失效。
2)永久关闭(建议使用)
修改配置文件/etc/selinux/config

[aaa@qq.com ~]# vim /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled
SELINUX=disabled
3)同步/etc/selinux/config配置文件

[aaa@qq.com ~]# xsync /etc/selinux/config

4)重启hadoop102、hadoop103、hadoop104主机

[aaa@qq.com ~]# reboot
[aaa@qq.com ~]# reboot
[aaa@qq.com ~]# reboot

1.8 配置NTP时钟同步(阿里云环境可跳过)

1)NTP服务器配置

[aaa@qq.com ~]# vi /etc/ntp.conf
注释掉所有的restrict开头的配置
修改#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
为restrict 192.168.1.102 mask 255.255.255.0 nomodify notrap
将所有server配置进行注释
添加下面两行内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10

2)启动NTP服务 service ntpd start

[aaa@qq.com ~]# service ntpd start

3)NTP客户端配置(在agent主机上进行配置hadoop103,hadoop104)

[aaa@qq.com ~]# vi /etc/ntp.conf
注释所有restrict和server配置
添加server 192.168.1.102

4)手动测试

[aaa@qq.com~]# ntpdate 192.168.1.102

显示如下内容为成功:

17 Jun 15:34:38 ntpdate[9247]: step time server 192.168.1.102 offset 77556618.173854 sec

如果显示如下内容需要先关闭ntpd:

17 Jun 15:25:42 ntpdate[8885]: the NTP socket is in use, exiting

5)启动ntpd并设置为开机自启(每个节点hadoop102,hadoop103,hadoop104)

[aaa@qq.com ~]#  chkconfig ntpd on
[aaa@qq.com ~]#  service ntpd start

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

2.CM安装部署

2.1 安装JDK(三台)

1)在hadoop102创建/usr/java目录

[aaa@qq.com opt]# mkdir /usr/java

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

[aaa@qq.com ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/

3)配置JAVA_HOME环境变量
(1)打开/etc/profile文件

[aaa@qq.com software]$ vi /etc/profile

在profile文件末尾添加JDK路径

#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

(2)让修改后的文件生效
[aaa@qq.com jdk1.8.0_144]$ source /etc/profile
4)测试JDK是否安装成功

[aaa@qq.com jdk1.8.0_144]# java -version
java version "1.8.0_144"

5)将hadoop102中的JDK和环境变量分发到hadoop103、hadoop104两台主机

[aaa@qq.com opt]# xsync /usr/java/
[aaa@qq.com opt]# xsync /etc/profile

分别在hadoop103、hadoop104上source一下
[aaa@qq.com ~]$ source /etc/profile
[aaa@qq.com ~]# source /etc/profile

2.2 安装MySQL及其驱动

1)卸载mariadb

rpm -qa | grep mariadb | xargs rpm -e --nodeps

2)下载msql5.7 yum源

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

3)安装yum源

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

4)安装mysql

yum -y install mysql-server

5)启动mysql

systemctl start mysqld

6)查看root用户密码

grep 'temporary password' /var/log/mysqld.log

7)执行mysql初始化脚本

mysql_secure_installation

8)输入新密码(至少12个字符,至少包含一个大写字母有,一个小写字母,一个数字,一个特殊字符)
CDH6.2.1安装步骤
9)配置root用户远程访问权限

mysql> grant all privileges on *.* to 'root' @'%' identified by 'Atguigu.123456';
mysql> flush privileges;

10)安装mysql驱动
(1)将mysql-connector-java-5.1.27-bin.jar拷贝到/usr/share/java路径下,并重命名

[aaa@qq.com java]# mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar

(2)分发驱动

xsync /usr/share/java

2.3 CM安装

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

节点 hadoop102 hadoop103 hadoop104
服务 cloudera-scm-server
cloudera-scm-agent
cloudera-scm-agent cloudera-scm-agent

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

cd /etc/yum.repos.d
wget https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/cloudera-manager.repo

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

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

4)搭建本地yum源(若网络环境畅通,此步可直接跳过)
(1)将压缩包cloudera-repos.tar.gz拷贝到集群中的一台节点,解压到/var/www/html路径下

[aaa@qq.com ~]# tar -zxvf cloudera-repos.tar.gz -C /var/www/html

(2)进入/var/www/html/路径,并开启http服务

[aaa@qq.com ~]# cd /var/www/html/
[aaa@qq.com html]# python -m SimpleHTTPServer 8900

(3)浏览器访问该节点的8900端口,查看http服务是否正常开启
(4)编辑本地yum源配置文件

vim /etc/yum.repos.d/cloudera-manager.repo
文件内容如下
[cloudera-manager]
name=cloudera-manager
baseurl=http://hadoop102:8900/cloudera-repos/cm6/6.2.1/redhat7/yum/
enabled=1
gpgcheck=0

(5)分发该配置文件

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

4)安装CM server及agent

[aaa@qq.com ~]# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
[aaa@qq.com ~]# yum install cloudera-manager-agent cloudera-manager-daemons
[aaa@qq.com ~]# yum install cloudera-manager-agent cloudera-manager-daemons

2.4 修改CM配置文件(三台)

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

CDH6.2.1安装步骤

2.5 在MySQL中建库

1)创建各组件需要的数据库

mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

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

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root Atguigu.123456

1.4.6 启动CM服务
1)启动服务节点:hadoop102

[aaa@qq.com ~]# systemctl start cloudera-scm-server

2)启动工作节点:hadoop102、hadoop103、hadoop104

[aaa@qq.com ~]# systemctl start cloudera-scm-agent
[aaa@qq.com ~]# systemctl start cloudera-scm-agent
[aaa@qq.com ~]# systemctl start cloudera-scm-agent

3)查看Server启动日志

[aaa@qq.com cm]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

出现Started Jetty server字样及表明启动成功。
4)访问http://hadoop102:7180(初始用户名、密码均为admin)

3.部署CDH集群

1)欢迎页面
2)集群命名
3)选定集群物理节点
4)添加本地parcel库(离线安装才有)
5)等待parcel的下载、分配、解压和**
6)检查集群网络环境
7)选择要安装的CDH组件,选择自定义安装
8)选择需要安装的组件
9)CDH各组件角色分布
10)数据库连接测试
11)各组件基本设置,使用默认即可
12)等待安装部署和启动
13)启动成功

3.1 配置Hadoop支持LZO

1)点击主机,在下拉菜单中点击Parcel
2)点击配置
3)加上gplextras parcel库的url
本地url: http://hadoop102:8900/cloudera-repos/gplextras6/6.2.1/parcels/
远程url: https://archive.cloudera.com/gplextras6/6.2.1/parcels/
4)静待片刻,Parcel列表中出现了GPLEXTERAS,依次点击下载、分配、**。
5)修改HDFS配置
在HDFS配置项中搜索“压缩编码解码器”,加入com.hadoop.compression.lzo.LzopCodec
6)修改Hive配置
在Hive配置项中搜索“Hive 辅助 JAR 目录”,加入/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib
关闭HDFS中的权限检查:dfs.permissions。
进入HDFS页面点击启用High Availability
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

8)重启相关组件

3.2 修改yarn配置参数

1)在yarn配置项中搜索“yarn.nodemanager.resource.memory-mb”,修改成4G。
2)在yarn配置项中搜索“yarn.scheduler.maximum-allocation-mb”,修改成2G。

4.升级之Spark升级

在CDH5.12.1集群中,默认安装的Spark是1.6版本,这里需要将其升级为Spark2.1版本。经查阅官方文档,发现Spark1.6和2.x是可以并行安装的,也就是说可以不用删除默认的1.6版本,可以直接安装2.x版本,它们各自用的端口也是不一样的。
Cloudera发布Apache Spark 2概述(可以在这里面找到安装方法和parcel包的仓库)
cloudera的官网可以下载相关的parcel 的离线安装包:
https://www.cloudera.com/documentation/spark2/latest/topics/spark2_installing.html
Cloudera Manager及5.12.0版本的介绍:
https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_parcels.html#cmug_topic_7_11_5__section

4.1 升级过程

4.1.1 离线包下载

1)所需软件:http://archive.cloudera.com/spark2/csd/
2)Parcels 包的下载地址:http://archive.cloudera.com/spark2/parcels/2.4.0.cloudera2/

4.1.2 离线包上传

1)上传文件SPARK2_ON_YARN-2.1.0.cloudera1.jar到/opt/cloudera/csd/下面
2)上传文件SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel和SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha1 到/opt/cloudera/parcel-repo/
3)将SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha1重命名为SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha

[aaa@qq.com parcel-repo]# mv /opt/cloudera/parcel-repo/SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha1 /opt/cloudera/parcel-repo/SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.120904-el6.parcel.sha

4.2 页面操作

1) 更新Parcel
在cm首页点击Parcel,再点击检查新Parcel
2)点击分配
3)点击**
4)回到首页点击添加服务
5)点击Spark2继续
如果没有Spark2,则重启server:

[aaa@qq.com ~]# /opt/module/cm/cm-5.16.2/etc/init.d/cloudera-scm-server restart

6)选择一组依赖关系
7)角色分配(需要选择Gateway(客户端) 可以都选)
8)部署并启动
注意:这里我报了一个错:客户端配置 (id=12) 已使用 1 退出,而预期值为 0
1.问题原因:最后找到原因是因为CM安装Spark不会去环境变量去找Java,需要将Java路径添加到CM配置文件
2.解决办法:
找到hadoop102、hadoop103、hadoop104三台机器的配置,配置java主目录

5.其它配置

5.1 HDFS配置域名访问

在阿里云环境下 Hadoop集群必须用域名访问,不能用IP访问,开启如下配置dfs.client.use.datanode.hostname

6.2 设置物理核和虚拟核占比

当前购买的阿里云配置物理核一共为6核,为演示效果将虚拟核扩大1倍,一般真实场景下物理核和虚拟核对比值为1:1或1:2
修改配置,每台机器物理核2核虚拟成4核

6.3修改单个容器下最大cpu申请资源

修改yarn.scheduler.maximum-allocation-vcores参数调整4核

6.4 设置每个任务容器内存大小和单节点大小

将每个任务容器默认大小从1G调大至4G,当前集群环境下每个节点的物理内存为8G,设置每个yarn可用每个节点内存为7G
修改yarn.scheduler.maximum-allocation-mb 每个任务容器内存所需大小
修改yarn.nodemanager.resource.memory-mb每个节点内存所需大小

6.5 关闭Spark动态分配资源参数

关闭spark.dynamicAllocation.enabled 参数否则分配的资源不受控制

6.6 修改HDFS副本数

修改副本数为2或者3

6.7 设置容量调度器

CDH默认公平调度器,修改为容量调度器
CDH6.2.1安装步骤
默认root队列,可以进行修改
CDH6.2.1安装步骤
添加两个队列spark与hive,spark资源设置占yarn集群80%,hive设置占yarn集群20%
CDH6.2.1安装步骤
配置完毕后重启服务,到yarn界面查看调度器,已经发生变化有hive队列和spark队列
CDH6.2.1安装步骤

相关标签: 大数据