前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >0753-6.3.3-如何在Redhat7.6安装CDH6.3.3

0753-6.3.3-如何在Redhat7.6安装CDH6.3.3

作者头像
Fayson
发布2020-02-24 11:08:12
发布2020-02-24 11:08:12
2.6K10
代码可运行
举报
文章被收录于专栏:Hadoop实操Hadoop实操
运行总次数:0
代码可运行

作者:段自强

文档编写目的

CDH6.3.3于2020年2月4日发布,从该版本开始,Cloudera将不再提供CDH免费版,用户只能通过试用或者购买正式许可证才能够下载CDH安装包及使用,参考《0743-Cloudera Enterprise 6.3.3发布》。这篇文档主要介绍了在Redhat7.6环境下安装CDH6.3.3集群的详细步骤。

  • 操作环境

1.操作系统:RedHat7.6

2.集群环境:CDH6.3.3

3.操作用户:root

前置准备

2.1 网络设置

修改网络IP,并设置为静态:

代码语言:javascript
代码运行次数:0
运行
复制
vim /etc/sysconfig/network-scripts/ifcfg-ens192

2.2 yum源配置

1.挂载系统镜像

准备系统镜像文件,注意:准备的系统镜像文件必须与当前系统版本一致

代码语言:javascript
代码运行次数:0
运行
复制
cat /etc/redhat-release

在/media目录下创建DVD文件夹,然后挂载,系统镜像到此目录

代码语言:javascript
代码运行次数:0
运行
复制
mkdir /media/DVD
mount -o loop /dev/cdrom /media/DVD/

查看镜像已经挂载成功

代码语言:javascript
代码运行次数:0
运行
复制
df -h

进入 /etc/yum.repos.d 文件夹,创建os.repo文件并编辑该文件,编辑内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
[osrepo]
name=RedHat7.6
baseurl=file:///media/DVD/
enabled=true
gpgcheck=false
代码语言:javascript
代码运行次数:0
运行
复制
cd /etc/yum.repos.d/
touch os.repo
vim os.repo

保存退出。然后执行命令 yum repolist:

在下面2.4节做好交互式脚本后,使用脚本进行同步到集群所有节点:

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_scp.sh node.list /etc/yum.repos.d/os.repo /etc/yum.repos.d/

执行yum repolist:

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_cmd.sh node.list "yum repolist"

2.3 安装httpd

1.下载安装httpd:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y httpd

2.修改配置文件

启动httpd,并设置开机自动启动,查看httpd状态:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl start httpd
systemctl enable httpd
systemctl status httpd

2.修改系统yum源配置

创建/var/www/html/iso目录,然后将/media/DVD目录下的所有内容拷贝到/var/www/html/iso目录

代码语言:javascript
代码运行次数:0
运行
复制
mkdir /var/www/html/iso
cp -r /media/DVD/* /var/www/html/iso/

然后修改/etc/yum.repos.d/os.repo文件如下:

代码语言:javascript
代码运行次数:0
运行
复制
baseurl=http://192.168.0.193/iso/

然后执行yum repolist命令

使用Web访问iso目录测试如下目录

3.配置Cloudera Manager的repo源

将Cloudera Manager的所有rpm包放到 /var/www/html/目录的新建目录cm6.3.3下:

在/var/www/html/cm6.3.3目录下执行命令:createrepo . 生成rpm元数据:

在/etc/yum.repos.d/目录下新建cm.repo文件,并添加如下内容:

代码语言:javascript
代码运行次数:0
运行
复制
[cm_repo]
name = cm_repo
baseurl = http://192.168.0.193/cm6.3.3/
enable = true
gpgcheck = false

保存退出。

执行

代码语言:javascript
代码运行次数:0
运行
复制
yum clean all
yum repolist

验证安装JDK

代码语言:javascript
代码运行次数:0
运行
复制
yum -y install openjdk8-8.0+232_9-cloudera

2.4 准备交互式脚本

上传脚本到master节点,执行

代码语言:javascript
代码运行次数:0
运行
复制
yum -y install expect 

2.5 主机名设置

1.使用hostnamectl set-hostname 主机名 :(所有节点执行)

代码语言:javascript
代码运行次数:0
运行
复制
hostnamectl set-hostname cdp1.hadoop.com

2.配置 /etc/hosts

添加主机IP映射

主机IP hostname

代码语言:javascript
代码运行次数:0
运行
复制
192.168.0.193 cdp1.hadoop.com
192.168.0.194 cdp2.hadoop.com
192.168.0.196 cdp3.hadoop.com

保存退出。

使用脚本分发到所有节点:

重开窗口确认主机名生效

2.6 禁止Selinux

执行如下命令(所有节点):

代码语言:javascript
代码运行次数:0
运行
复制
./batch_cmd.sh node.list "setenforce 0"

修改配置文件

2.7 关闭防火墙

批量关闭防火墙(所有节点):

使用脚本命令:

代码语言:javascript
代码运行次数:0
运行
复制
./batch_cmd.sh node.list "systemctl stop firewalld"

设置开机不启动防火墙:

使用脚本命令:

代码语言:javascript
代码运行次数:0
运行
复制
./batch_cmd.sh node.list "systemctl disable firewalld"

查看防火墙状态:

使用脚本命令:

代码语言:javascript
代码运行次数:0
运行
复制
./batch_cmd.sh node.list "systemctl status firewalld"

2.8 关闭透明大页面

使用脚本命令批量执行如下操作(所有节点):

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_cmd.sh node.list "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
sh batch_cmd.sh node.list "echo never > /sys/kernel/mm/transparent_hugepage/enabled"

修改/etc/rc.d/rc.local文件,设置开机自动关闭透明大页面,添加内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
代码语言:javascript
代码运行次数:0
运行
复制
vim /etc/rc.d/rc.local 

将修改后的文件分发到所有节点,然后修改文件可执行权限

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_scp.sh node.list /etc/rc.d/rc.local /etc/rc.d/
sh batch_cmd.sh node.list "chmod +x /etc/rc.d/rc.local"
sh batch_cmd.sh node.list "ls -l /etc/rc.d/|grep rc.local"

2.9 设置swappiness

使用脚本批量执行(所有节点)

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_cmd.sh node.list "sysctl vm.swappiness=1"
sh batch_cmd.sh node.list "echo 1 > /proc/sys/vm/swappiness"

永久修改

代码语言:javascript
代码运行次数:0
运行
复制
vim /etc/sysctl.conf
vm.seappiness = 1

分发到所有节点

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_scp.sh node.list /etc/sysctl.conf /etc/

查看swappiness的值:

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_cmd.sh node.list "cat /proc/sys/vm/swappiness"

2.10安装ntp时间

1.卸载chrony

在Redhat7.x的操作系统上,已经默认的安装了chrony,我们这里先卸载chrony,然后安装ntp。使用ntp来配置各台机器的时钟同步。

所有节点卸载chrony

代码语言:javascript
代码运行次数:0
运行
复制
./batch_cmd.sh node.list "yum -y remove chrony"

2.所有节点下载安装ntp服务

使用脚本批量执行

代码语言:javascript
代码运行次数:0
运行
复制
./batch_cmd.sh node.list "yum -y install ntp"

Master节点修改 /etc/ntp.conf文件:

注释部分内容

添加以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
server 127.127.1.0 
fudge 127.127.1.0 stratum 10

集群其他节点修改/etc/ntp.conf文件如下:

启动ntpd服务并设置开机自启:

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_cmd.sh node.list "systemctl start ntpd"
sh batch_cmd.sh node.list "systemctl enable ntpd"
sh batch_cmd.sh node.list "systemctl status ntpd | grep Active"

查看同步状态:

代码语言:javascript
代码运行次数:0
运行
复制
sh batch_cmd.sh node.list "ntpq -p"

2.11安装数据库

1.安装外部数据库

代码语言:javascript
代码运行次数:0
运行
复制
yum -y install mariadb mariadb-server

启动MariaDB数据库服务,并设置未开机自启:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

配置mariadb,设置密码为password

代码语言:javascript
代码运行次数:0
运行
复制
/usr/bin/mysql_secure_installation

2.创建集群所需要的数据库

代码语言:javascript
代码运行次数:0
运行
复制
create database metastore default character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%';
FLUSH PRIVILEGES;
create database scm default character set utf8;
CREATE USER 'scm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';
FLUSH PRIVILEGES;
create database rm default character set utf8;
CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'%';
FLUSH PRIVILEGES;

create database am default character set utf8;
CREATE USER 'am'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON am.* TO 'am'@'%';
FLUSH PRIVILEGES;
create database hue default character set utf8;
CREATE USER 'hue'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'%';
FLUSH PRIVILEGES;
create database oozie default character set utf8;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
create database sentry default character set utf8;  
CREATE USER 'sentry'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';   
FLUSH PRIVILEGES;
create database nav_ms default character set utf8;  
CREATE USER 'nav_ms'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON nav_ms. * TO 'nav_ms'@'%';   
FLUSH PRIVILEGES;
create database nav_as default character set utf8;  
CREATE USER 'nav_as'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON nav_as. * TO 'nav_as'@'%';   
FLUSH PRIVILEGES;

3.安装jdbc驱动

创建/usr/share/java/文件夹,然后将MySQL的JDBC驱动包上传至该目录

注意:不是所有节点都需要MySQL驱动,只有节点上有服务需要数据库时,该节点才需要驱动jar包。

使用软链接的形式去掉驱动jar包的版本号

代码语言:javascript
代码运行次数:0
运行
复制
ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar

集群的部署安装

3.1 安装并启动Cloudera-Manager-Server

在master节点上安装Cloudera-Manager-Server:

代码语言:javascript
代码运行次数:0
运行
复制
yum -y install cloudera-manager-server

初始化数据库:

代码语言:javascript
代码运行次数:0
运行
复制
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password

启动cloudera-scm-server,并查看7180端口是否被监听。当出现如下所示7180端口被监听,则可以打开浏览器Web页面。

代码语言:javascript
代码运行次数:0
运行
复制
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password

3.2 集群安装向导

3.2.1 登录CM

通过网页访问192.168.193:7180

输入账户:admin

密码:admin登录CM

3.2.2 选择60天试用,点击继续

点击继续

继续,输入集群名称,可以使用默认的“Cluster 1”。

3.2.3 指定安装主机

指定集群主机机器

根据输入搜索到指定主机,点击继续

3.2.4 设置存储库

添加自定义的cm存储库URL

设置自定义的parcel存储库URL和cm存储库URL

添加自定义的Parcel存储卡URL

点击继续

3.2.5 安装JDK

选择JDK,点击继续

3.2.6 ssh登录

选择用户,并输入密码

安装…

安装成功

安装选定parcel…

安装成功,继续

3.2.7 主机正确性检查

主机正确性检查,确保全部通过后点完成

3.2.8 组件安装

群集设置,

选择自己要安装的组件

3.2.9 数据库连接测试

测试数据库连接

审核更改

首次运行命令,启动集群服务

集群设置配置成功,点击完成

集群安装完成,进入Cloudera Manager主页

总结

1.从安装方式上来看,CDH6与CDH5变化不大,这也方便了CDH5的用户可以较为快速的迁移到CDH6,以及适应CDH6的安装与使用。

2.安装条件前置没有任何变化,包括防火墙,Selinux关闭,ntp同步等等

3.在配置Cloudera Manager连接到数据库时的脚本有所变化。以前是/usr/share/cmf/schema/scm_prepare_database.sh,现在是/opt/cloudera/cm/schema/scm_prepare_database.sh

4.在JDK方面,CDH自带JDK1.8.0_181,将不再支持JDK1.7。

5.从CDH6.3.3开始已经不再提供免费版,安装界面只有2个选择,一个是试用60天,另一个是上传许可证后继续安装。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档