CDH6.2.1 环境搭建(云服务器)

环境准备

环境介绍

环境搭建规划

腾讯云服务器 3 台 + CDH 6.2.1 + 华为 Mysql 5.7 + JDK 1.8

应用node1node2node3
CM管理服务
NameNode
DataNode
SecondNameNode
ResourceManager
NodeManager
JobHistory Server
Zookeeper
Hive
Impala
Oozie
Hue
Sqoop

cloudera-manager-server 和 cloudera-manager-agent 安装规划

节点node1node2node3
服务cloudera-manager-server
cloudera-manager-agent
cloudera-manager-agentcloudera-manager-agent
服务器准备

大数据环境中的云服务器必须得通过内网互联,内网互联亲测数据传输可以达到 200M/s ,如果外网互联,访问速度很慢,会很卡。所以各位一定要注意。 我的 3 台服务器为了省钱,用 3 个账号买的,导致一个问题,各位需要留意了:

① 同一个账号的多台服务器腾讯云可以直接内网互连,但是服务器要在同一个地域

② 多账号的服务器内网互连,要使用腾讯云的产品 云联网 ,若是同一地域,宽带上限 5GB ,亲测最大传输速度 200MB/s ,主要是免费;如果不是同一地域,需要花钱

不管怎样,一定要内网互连啊!!!!血的教训!!!集群页面访问卡成翔!!!!

节点CPU内存带宽硬盘
node1(公网1.117.160.1 内网172.17.10.14)28G2M50
node2(公网1.117.160.2 内网172.17.20.18)24G2M50
node3(公网1.117.160.3 内网172.17.30.23)24G2M50
服务器安全组配置

node1 安全组配置

来源协议端口策略说明
133.142.6.0/24ALL允许只对我本机所在的网段开放,其他人不能访问
172.17.20.0/24ALL允许对 node2 整个网段开放
172.17.30.0/24ALL允许对 node3 整个网段开放
0.0.0.0/24ALL拒绝不然任何人都可以访问,服务器很容易被攻击

node2 安全组配置

来源协议端口策略说明
133.142.6.0/24ALL允许只对我本机所在的网段开放,其他人不能访问
172.17.10.0/24ALL允许对 node1 整个网段开放
172.17.30.0/24ALL允许对 node3 整个网段开放
0.0.0.0/24ALL拒绝不然任何人都可以访问,服务器很容易被攻击

node3 安全组配置

来源协议端口策略说明
133.142.6.0/24ALL允许只对我本机所在的网段开放,其他人不能访问
172.17.10.0/24ALL允许对 node1 整个网段开放
172.17.20.0/24ALL允许对 node2 整个网段开放
0.0.0.0/24ALL拒绝不然任何人都可以访问,服务器很容易被攻击

CM 部署准备

修改 hostname
# 注:修改是为了让操作更简单
# 只演示 node1 的,剩余两台依次为 node2、node3,同样操作做一遍

# node1
vim /etc/hostname
# 增加以下内容
node1
# 重启生效
shutdown -r now
修改 hosts 文件
# 3 台都这么做
vim /etc/hosts
# 追加如下内容
172.17.10.14 node1
172.17.20.18 node2
172.17.30.23 node3

# 在你的本地电脑上配置成这样,这样你就可以通过浏览器直接输入hostname访问,记住你通过你本地电脑访问的始终是公网
# 我的电脑是 Mac,Windows的对应自己的方式配置,此处不赘述
1.117.160.1 node1
1.117.160.2 node2
1.117.160.3 node3
SSH 免密登陆

参考这篇文章中的操作,翻到 SSH 免密登陆那一节

开发常用的Linux命令_半吊子Kyle的博客-CSDN博客

关闭防火墙(云服务器可忽略)

参考这篇文章中的操作,翻到关闭防火墙那一节

开发常用的Linux命令_半吊子Kyle的博客-CSDN博客

关闭 SELINUX(云服务器可忽略)

参考这篇文章中的操作,翻到 关闭SELINUX 那一节

开发常用的Linux命令_半吊子Kyle的博客-CSDN博客

配置 NTP 时钟同步(云服务器可忽略)

参考这篇文章中的操作,翻到时钟同步那一节

开发常用的Linux命令_半吊子Kyle的博客-CSDN博客

CM安装部署

安装 JDK(3台)

① 别有太多疑问,也别乱配,这里只能这么配置,不然会报错

# jdk 的安装目录:只能装在这里,否则会报错
cd /usr
mkdir java

# 将 jdk 压缩包放在这个文件夹下
/usr/java

# 解压
tar -zxvf jdk-8u172-linux-x64.tar.gz

② 配置环境变量

# 进入到该目录下
cd /etc/profile.d/

# 创建环境变量文件
vim java.sh

# 增加以下内容
export JAVA_HOME=/usr/java/jdk1.8.0_172
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export  PATH=${JAVA_HOME}/bin:$PATH

# 刷新环境变量
source java.sh

# 验证
java -version
本地yum源搭建及配置

① CDH 离线镜像包下载

为什么要用离线的,而且还要自己搭建镜像源:因为在线的 yum 源开始有权限校验了,你搞不定的

百度云CDH6.2.1下载 密码:7456

② 搭建本地 yum 源

我把 node1 当作镜像源服务器了,所以在 node1 上搭建

# 1.node1上操作
mkdir -p /var/www/html

# 2.上传离线镜像包到  /var/www/html 目录下

# 3.解压压缩包 cloudera-repos.tar.gz 到 /var/www.html 路径下
tar -zxvf cloudera-repos.tar.gz -C /var/www/html

# 4.进入 /var/www/html 路径,开启 http 服务
# 启动后,新开个窗口继续操作
python -m SimpleHTTPServer 8900

# 3.浏览器访问,这就是你本地做域名映射的好处
node1:8900

在这里插入图片描述
在这里插入图片描述

③ 修改节点的 yum 源配置文件

# 1.node1 操作
vim /etc/yum.repos.d/cloudera-manager.repo

# 2.增加以下内容
[cloudera-manager]
name=cloudera-manager
baseurl=http://node1:8900/cloudera-repos/cm6/6.2.1/redhat7/yum/
gpgcheck=0
enabled=1

# 3.在 node1 上将修改后的配置文件分发到另外两台机器上
scp /etc/yum.repos.d/cloudera-manager.repo node2:/etc/yum.repos.d/cloudera-manager.repo
scp /etc/yum.repos.d/cloudera-manager.repo node3:/etc/yum.repos.d/cloudera-manager.repo
CM安装

① 安装

# node1 上执行
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

# node2、node3 上执行
yum install cloudera-manager-daemons cloudera-manager-agent

② 修改CM配置文件

# 分别修改 3 台机器的Agent配置信息
vim /etc/cloudera-scm-agent/config.ini

# 修改以下内容
server_host=node1
server_port=7182

在这里插入图片描述

Mysql 及驱动安装

① mysql 安装

忽略,我用的是云 mysql,没有的话就本地装一个

② 驱动安装

# 1.只需要node1操作:上传 mysql 的驱动到该目录下,cloudera-manager-server初始化数据使用
/opt/cloudera/cm/lib

# 2.集群中的3台都操作
cd /usr/share
mkdir java

# 3.上传驱动到该文件夹下,并且重命名,必须要修改
mv /usr/share/java/mysql-connector-java-8.0.20.jar /usr/share/java/mysql-connector-java.jar

③ mysql 用户权限设置

-- 赋权
grant all PRIVILEGES on *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
grant all PRIVILEGES on *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
grant all PRIVILEGES on *.* TO 'root'@'hadoop01' IDENTIFIED BY '123456' WITH GRANT OPTION;

-- 刷新权限
flush privileges;

④ 创建数据库

-- cloudera-manager 用到的数据库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- 监控服务用到的数据库
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- hue 用到的数据库
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- hive 用到的数据库
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;


CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- oozie 用到的数据库
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CM初始化数据
-- 本地数据库:设置元数据库为mysql--前提是安装ClouderaManager Server服务
/opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql scm root 123456

-- 远程数据库:依次为主机名 数据库类型 数据库名称 用户名称 密码
/opt/cloudera/cm/schema/scm_prepare_database.sh -h 133.245.23.23 mysql scm root 123456

-- 旧版本CM
/usr/share/cmf/schema/scm_prepare_database.sh -h localhost mysql scm root 123456

在这里插入图片描述

CM启动

① 启动 cloudera-manager-server

# node1 执行
systemctl start cloudera-scm-server

② 启动 cloudera-manager-agent

# 3 台全部启动 Agent 节点
systemctl start cloudera-scm-agent

③ Pacels 重命名

# 进入目录
cd /var/www/html/cloudera-repos/cdh6/6.2.1/parcels/
# 文件重命名
mv ./CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 ./CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha

④ 其它操作命令(可选用,查看启动状态及日志,排查错误)

# server 启动状态查看
systemctl status cloudera-scm-server

# agent 启动状态查看
systemctl status cloudera-scm-agent

# server 启动日志查看
/var/log/cloudera-scm-server/cloudera-scm-server.log

# agent 启动日志查看
/var/log/cloudera-scm-agent/cloudera-scm-agent.log

# 日志配置
/etc/cloudera-scm-server/log4j.properties

# server 进程查看
netstat -an | grep 7180

在这里插入图片描述

CDH 应用部署

创建集群

① 登陆页面,访问地址:http://node1:7180/cmf/login,用户名密码都是 admin

在这里插入图片描述
② 第一次登陆后的主页面

在这里插入图片描述
③ 选择 CDH 版本

在这里插入图片描述
在这里插入图片描述
④ 跳转到了集群创建页面

在这里插入图片描述
在这里插入图片描述
⑤ 选择指定的主机

这里需要注意,之所以能显示出来 3 台服务器,是因为我们在这 3 台服务器手动安装了 cloudera-manager-agent 并且启动了 agent
这么做就是为了方便,省的每一台都要在页面添加一遍,后续添加服务器可以直接通过 add host 进行操作

在这里插入图片描述
⑥ 设置存储库

在这里插入图片描述

# 注意,别输错了,否则的话不能显示 CDH 版本,不能继续下一步
http://node1:8900/cloudera-repos/cdh6/6.2.1/parcels

在这里插入图片描述
⑦ 集群检查

在这里插入图片描述
在这里插入图片描述
将以上步骤做完后,跳转到应用服务页面,如下

服务部署

① 服务部署界面

在这里插入图片描述
② 选择的服务:可以根据自己的需求选择

在这里插入图片描述
③ 角色分配页面:即哪个服务器装哪几个应用

在这里插入图片描述
在这里插入图片描述
④ 设置数据库

注意:如果 mysql 驱动器没有按照指定的要求放置的话,这里测试是会报错的

如果你的 mysql 装在了本地,比如 node1 ,那 Database Hostname 就填 node1 ;我的 mysql 是华为的产品,所以我填的是 ip
在这里插入图片描述
⑤ 安装

安装的时候问题可能会有点多,出了问题可以重试一下或者退回去几步,重新来一下。如果还是不能解决,可以看一下安装常见的问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装常见的问题

CM初始化数据错误

① 无法连接

错误详情:
[ main] DbCommandExecutor ERROR Error when connecting to database.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
在这里插入图片描述
解决方法:
检查初始化命令中的 ip 数据库名称 用户名、密码 是否正确,通过连接工具能否成功连接

② 驱动找不到

错误详情:
ERROR JDBC Driver com.mysql.jdbc.Driver not found

解决方法:

上传 mysql 的驱动到 /opt/cloudera/cm/lib 目录下

Server启动失败

错误详情:

systemctl status cloudera-scm-server
● cloudera-scm-server.service - Cloudera CM Server Service
Loaded: loaded (/usr/lib/systemd/system/cloudera-scm-server.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Tue 2021-07-06 18:26:32 CST; 2min 21s ago
Process: 13734 ExecStart=/opt/cloudera/cm/bin/cm-server (code=exited, status=1/FAILURE)
Main PID: 13734 (code=exited, status=1/FAILURE)
在这里插入图片描述
解决办法:

jdk 没有安装在指定的目录,参考这篇文档中的 jdk 安装,如果 jdk 路径没问题,多看下日志,对应问题对应解决

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值