CDH安装教程

CDH安装教程

本篇是刚进入公司安装CDH的记录,远程服务器3台,用Xshell6 工具连接在这里插入图片描述

在这里插入图片描述
虚拟的环境准备

1、主机名设置(每一台服务器都设置:后面没有单独说明的每台都要进行配置):

hostnamectl set-hostname dsy0
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dsy0
cat /etc/sysconfig/network

在这里插入图片描述
2、网络配置:

vim /etc/hosts
cat /etc/hosts

在这里插入图片描述

3、禁用ipv6网络协议

没有安装 ipconfig模块,需要用户手动安装

yum -y install net-tools

禁用Ipv6(直接复制下方代码进行粘贴回车)

echo -e "
# 禁用整个系统所有接口的IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用某一个指定接口的IPv6(eth0,lo)
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
" >> /etc/sysctl.conf

在这里插入图片描述
重启sysctl:

sudo sysctl -p

4、关闭防火墙
查看防火墙的状态

systemctl status firewalld.service

在这里插入图片描述
安装iptables-services模块

yum -y install iptables-services

图片过长也没必要,就不截图了

关闭防火墙

service iptables stop

在这里插入图片描述
再次查看防火墙的状态

service iptables status

在这里插入图片描述
关闭防火墙,防止开机自启

systemctl stop firewalld.service
systemctl disable firewalld.service

在这里插入图片描述
5、同步时间
安装NTP模块

yum -y install ntp

设置开机自启

chkconfig ntpd on

在这里插入图片描述
查看ntp是否开机自启

systemctl is-enabled ntpd

在这里插入图片描述
设置 NTP 服务半个小时同步一次(时间自定)

echo '0,30 * * * * root ntpdate -u ntp.aliyun.com' >> /etc/crontab
cat /etc/crontab

在这里插入图片描述
查看时间是否准确

date

6、关闭SELINUX

setenforce 0

在这里插入图片描述
把 SELINUX=enforcing 改成 SELINUX=disable

vim /etc/selinux/config

在这里插入图片描述
重启服务器,虚拟机准备就结束了

reboot

准备Java环境

mkdir /usr/java
cd /usr/java/

下载 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
现在这种方式下载不了,推荐一个地址
https://blog.csdn.net/LinBilin_/article/details/50217541
这个是orcal的账号,下载的话
https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

解压 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

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

在这里插入图片描述
创建软连接

ln -s /usr/java/jdk1.8.0_181-cloudera /usr/java/jdk1.8

删除 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

rm -rf oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

产看软连接
在这里插入图片描述
配置环境变量

echo '
export JAVA_HOME=/usr/java/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=${JAVA_HOME}/bin:${PATH}:${CLASSPATH}
' >> /etc/profile

查看是否更改成功

tail -n 10 /etc/profile

在这里插入图片描述

重新加载文件

source /etc/profile

验证是否配置成功

java -version
which java

在这里插入图片描述
安装MySQL(一个节点上进行安装)
先检验服务器上有没有残留的Mysql
1.查看Mysql的安装情况

rpm -qa|grep -i mysql

在这里插入图片描述

2.依次删除上述文件

rpm -ev mysql-community-release-el7-5.noarch --nodeps
rpm -ev mysql-community-common-5.6.50-2.el7.x86_64 --nodeps
rpm -ev mysql-community-libs-5.6.50-2.el7.x86_64 --nodeps
rpm -ev mysql-community-client-5.6.50-2.el7.x86_64 --nodeps
rpm -ev mysql-community-server-5.6.50-2.el7.x86_64 --nodeps

3.再次确认Mysql安装情况

rpm -qa|grep -i mysql

4.find命令查看Mysql相关文件并全部删除

find / -name mysql

5.再次检查有无Mysql残留文件

find / -name mysql

yum 设置阿里源 (阿里镜像MySQL下载快)

# 1. 备份原先的镜像文件
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup

# 2. 下载阿里云的 CentOS-Base.repo 到 /etc/yum.repos.d/ 目录下
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo	

# 3. 清理 yum 软件源缓存
yum clean all

# 4. 生成新的 yum 元数据缓存
yum makecache

CDH官方安装文档:https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_ig_mysql.html#cmig_topic_5_5

在这里插入图片描述
在安装的过程中可以自己选择,如果不懂就一路 yes ,安装过程中它本身就会自己进行相关的配置,然后启用用户密码登陆进入MySQL,使用MySQL数据库

update user set password=password("root") where user="root";

在这里插入图片描述
给root用户赋权,添加远程访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

FLUSH PRIVILEGES;

在这里插入图片描述

创建大数据集群所需要的数据库
在这里插入图片描述

CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';
-- 创建 Cloudera Manager Server 用户和数据库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'scm'@'%' IDENTIFIED BY 'scm';
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';

-- 创建 Activity Monitor 用户和数据库
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'amon'@'%' IDENTIFIED BY 'amon';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';

-- 创建 Reports Manager 用户和数据库
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'rman'@'%' IDENTIFIED BY 'rman';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';

-- 创建 Hue 用户和数据库
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'hue'@'%' IDENTIFIED BY 'hue';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';

-- 创建 Hive 元数据 用户和数据库
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

-- 创建 Sentry Server 用户和数据库
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'sentry'@'%' IDENTIFIED BY 'sentry';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry';

-- 创建 Cloudera Navigator Audit Server 用户和数据库
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'nav'@'%' IDENTIFIED BY 'nav';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav';

-- 创建 Cloudera Navigator Metadata Server 用户和数据库
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'navms'@'%' IDENTIFIED BY 'navms';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms';

-- 创建 Oozie 用户和数据库
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';


flush privileges;

停止MySQL重新启动MySQL

sudo systemctl stop mysqld
sudo systemctl start mysqld

配置本地Parcel仓库(主节点上其实这一步可以省略,但是Httpd还是要装的)
1、安装Apache HTTP Server,并且启动开机自启服务

yum -y install httpd
chkconfig httpd on
service httpd start

查看是否开机自启

systemctl is-enabled httpd.service
systemctl is-active httpd

在这里插入图片描述
查看httpd状态

service httpd status

在这里插入图片描述
在电脑浏览器上访问主节点的ip,访问的目录默认是/var/www/html/下的文件也可以去改httpd.config 的文件存放路径,如果没有修改该路径,默认的路径是/var/www/html/,修改默认文件存放路径修改这个文件/etc/httpd/conf/httpd.conf 将这个文件里的DocumentRoot,<Directory “/var/www/html”> 这些地方的路径都改掉;我是没又改的,接下来就是在/var/www/html/目录下创建目录/var/www/html/Parcel/CDH/var/www/html/Parcel/CM通过http://+ip地址+/Parcel可以访问到,如果需要通过主机名访问需要在电脑的C:\Windows\System32\drivers\etc\hosts文件中配置!
在这里插入图片描述

mkdir /var/www/html/Parcel
mkdir /var/www/html/Parcel/CDH
mkdir /var/www/html/Parcel/CM

mkdir /var/www/html/Parcel/CDH目录下通过wget+下载地址来下载,我用的是公司的资源CDH和CM,所以你们需要自己去找下载地址进行下载,下载完成后

在这里插入图片描述
通过Ip+Parcel进行访问
在这里插入图片描述
能访问到就ok了

安装 cloudera-manager-daemons
(1)创建 /opt/cloudera-manager 目录,用于存放 cdh的安装文件

mkdir /opt/cloudera-manager

将CM下的文件复制一份到/opt/cloudera-manager
在这里插入图片描述
在这里插入图片描述
安装 cloudera-manager-daemons
如果直接安装不成功,则使用 --nodeps --force 命令安装

--nodeps:安装时不检查依赖关系                 --force:强制安装
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

安装完之后,会在 /opt 下生成目录cloudera目录
在这里插入图片描述
安装 cloudera-manager-agent

cd /opt/cloudera-manager
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps

在这里插入图片描述

配置agent的server节点

修改 /etc/cloudera-scm-agent/config.ini 文件,将server_host=localhost 改成server_host=主机名(server节点的主机名我的就是dsy0,三台都一样)

vim /etc/cloudera-scm-agent/config.ini
head -n 20 /etc/cloudera-scm-agent/config.ini

在这里插入图片描述
主节点上安装 cloudera-manager-server

rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

安装完server之后,主节点的cdh安装算完成了
安装路径都在

/opt/cloudera/cm
/opt/cloudera/agent
/etc/cloudera-scm-agent
/etc/cloudera-scm-server

下载的离线安装包parcel系统已经创建好目录了,我们直接移动到 /opt/parcel-repo 就可以了
在这里插入图片描述

为CM使用,安装MySQL连接驱动

#没有这个目录自己创建一个当然也可以自己定义存储位置
cd /home/resources/mysql/jdbc

# 下载连接驱动
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

# 提取jar文件
tar zxvf mysql-connector-java-5.1.46.tar.gz

复制MySQL的驱动jar包到 /usr/share/java 目录下,若不存在 /usr/share/java 目录,则手动创建一个

cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

在这里插入图片描述
设置Cloudera Manager数据库
mysql跟主节点在一台服务器上使用下面,没在继续往下看

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm

在这里插入图片描述
期间遇到的问题
在这里插入图片描述
解决用root用户进入Mysql使用MySQL数据库

GRANT ALL ON scm.* TO 'scm'@'localhost' IDENTIFIED BY 'scm';

关于这个用户权限是%它是不包含localhost的%是远程访问,localhost是本地访问因为我的mysql是和server装在一个节点上的属于本地访问所以它就会报没有这个权限.

如果mysql 没有在主节点上

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h dsy1 --scm-host dsy0 scm scm scm

在这里插入图片描述

-h 安装了MySQL的服务器, --scm-host安装了server的服务器

然后就是启动CM
启动主节点上的server

systemctl start cloudera-scm-server

进入server log目录,查看日志,日志生产则代表服务已经正常启动成功

ll /var/log/cloudera-scm-server/

在这里插入图片描述
查看server状态

systemctl status cloudera-scm-server

查看 server 日志

tail -F /var/log/cloudera-scm-server/cloudera-scm-server.log

查看 agent 日志

tail -F /var/log/cloudera-scm-agent/cloudera-scm-agent.log

查看7182端口是否被占用

netstat -anp | grep 7180

所有节点启动agent

sudo systemctl start cloudera-scm-agent
sudo systemctl status cloudera-scm-agent

安装CDH服务
1、登录cdh安装界面
(1)浏览器访问 http://dsy0:7180
,进入cdh登录界面,默认账户密码 admin admin

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

一直就默认
在这里插入图片描述
全选,必须要三台服务都有,之前的步骤才正确,没有的去检查agent是否启动,主机名映射,agent的配置文件是否指向server节点。
在这里插入图片描述
这一步在有网的情况下默认就行了,没网的情况下就需要配置Parcel仓库,进行下面几步
在这里插入图片描述
在这里插入图片描述
我这是有网默认
在这里插入图片描述
等待安装CDH
在这里插入图片描述
点击这两处进行检查,检查完毕后,解决报告中的问题。若无法解决,直接选择第三项,“我理解风险,让我继续创建集群”,然后点击继续
在这里插入图片描述
选择要安装的服务,CDH安装基本上就结束了,后面服务的安装会出现很多的问题举几个特别的例子(由于是后面加上去的所以就没有图片了)
1.在测试数据库的时候出现

数据库拒绝访问,基本上是把服务安装到了有MySQL的服务器上会出现,所以需要加入本地访问的权限

GRANT ALL ON scm.* TO 'scm'@'localhost' IDENTIFIED BY 'scm';
GRANT ALL ON amon.* TO 'amon'@'localhost' IDENTIFIED BY 'amon';
GRANT ALL ON rman.* TO 'rman'@'localhost' IDENTIFIED BY 'rman';
GRANT ALL ON hue.* TO 'hue'@'localhost' IDENTIFIED BY 'hue';
GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL ON sentry.* TO 'sentry'@'localhost' IDENTIFIED BY 'sentry';
GRANT ALL ON nav.* TO 'nav'@'localhost' IDENTIFIED BY 'nav';
GRANT ALL ON navms.* TO 'navms'@'localhost' IDENTIFIED BY 'navms';
GRANT ALL ON oozie.* TO 'oozie'@'localhost' IDENTIFIED BY 'oozie';
flush privileges;

然后测试连接,我重装了好几遍,可能还在不行,但是有时候就可以了,于是我通过
mysql -uhive -phive

是可以访问到的但是通过
mysql -h172.18.25.241 -uhive -phive
or 
mysql -hdsy1 -uhive -phive

访问报错是和日志cloudera-scm-server.log中的错误是一样的所以我又加了dsy1的访问权限
GRANT ALL ON scm.* TO 'scm'@'dsy1' IDENTIFIED BY 'scm';
GRANT ALL ON amon.* TO 'amon'@'dsy1' IDENTIFIED BY 'amon';
GRANT ALL ON rman.* TO 'rman'@'dsy1' IDENTIFIED BY 'rman';
GRANT ALL ON hue.* TO 'hue'@'dsy1' IDENTIFIED BY 'hue';
GRANT ALL ON hive.* TO 'hive'@'dsy1' IDENTIFIED BY 'hive';
GRANT ALL ON sentry.* TO 'sentry'@'dsy1' IDENTIFIED BY 'sentry';
GRANT ALL ON nav.* TO 'nav'@'dsy1' IDENTIFIED BY 'nav';
GRANT ALL ON navms.* TO 'navms'@'dsy1' IDENTIFIED BY 'navms';
GRANT ALL ON oozie.* TO 'oozie'@'dsy1' IDENTIFIED BY 'oozie';
flush privileges;

再次测试发现就成功了,在这里localhost可能只是mysql里面的默认而去验证数据库是采用ip地址的方式去验证所以找不到

2.就是关于HUE这个服务它会报

无法验证连接
我去看了cloudera-scm-server.log,发现它一般会少几个依赖
日志中他报少了 一个什么我记不清了 和 MySQL-python
于是我就安装了
yum -y install MySQL-python

还有一个报错我记得的话是 .......so.18
是它在安装MySQL的时候缺少了文件详情如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210315153230490.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjcwMzky,size_16,color_FFFFFF,t_70#pic_center)
解决办法
原因:依赖Apache的安装包
解决办法:package-cleanup --cleandupes
package-cleanup : 用于清理本地安装的RPM软件包
然后再 yum install openssh
这里会报-bash: package-cleanup: 未找到命令
以后遇到可以这样去找需要安装什么
yum  provides */package-cleanup
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210315153607196.png)
yum install yum-utils -y


下面是启动的时候出现的错误,需要安装的依赖
yum -y install httpd (之前我是只在server服务器上安装)

在启动的时候如果是第一次安装不会有什么错误,如果是卸载又装会出现的错误(卸载的话别自己乱卸载,强烈建议去按照官方文档卸载)
https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_ig_uninstall_cm.html#cmig_topic_18_1_3

NameNode格式化失败,或者DataNode格式化失败,手动的去删除nn,dn,snn一般默认是在/dfs 下面,去把它里面的内容清空,每一台服务器都需要

kafka启动,卸载重装才会出现的错误,去kafka 的服务器上看他的id是多少

在这里插入图片描述
去对应的服务器上更改与其对应,配置文件一般是在
在这里插入图片描述
在这里插入图片描述
改为与之对应的,还有一个坑,就是当时我在安装HUE的时候出现很多的错于是我就后面去添加服务,启动的时候报了缺少HDFS依赖,瞎搞了半天,最后才发现问题所在的原因是添加服务的第一步,选择依赖没有选上,就报了这个错误,基本上我遇到的就这么多,如果你们安装遇到新的问题欢迎留言,但一定要把问题说清楚,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值