Centos7yum方式安装cloudera manager CDH

Centos7 环境下安装CDH 首先要安装cloudera manager 然后通过cm的图形界面来安装CDH 和一些相关组件 需要安装mysql来存储cloudera manager的一些数据 也可以使用其他数据库
通过yum安装优点是简单 少了一些操作 缺点就是慢 需要从远程服务器下载数据
集群使用vmware workstation 搭建模拟环境 网络配置使用NAT模式
集群主机设置 共三个服务器 cdh.master 设置为主服务器

ip地址hostnameCM管理软件
192.168.158.10cdh.masterCloudera Manager Server&Agent ,mysql
192.168.158.11cdh.slave1Cloudera Manager Agent
192.168.158.12cdh.slave2Cloudera Manager Agent

以下操作为所有节点都需要执行的操作和准备的工具

步骤一 :首先要准备java环境 安装jdk 设置JAVA_HOME环境变量

/usr/java/jdk1.8.0_221

注意 jdk要安装在/usr/java/ 里 否则Cloudera Manager找不到会报错
在这里插入图片描述

java环境变量如下:

export JAVA_HOME=/usr/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

步骤二:设置主机名 hostname

[root@localhost ~]# hostname                                      # 查看当前的hostnmae
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname cdh.master           # 使用这个命令会立即生效且重启也生效
[root@localhost ~]# hostname
cdh.master

步骤三: 设置hosts 修改/etc/hosts文件 改成如下内容:

192.168.158.10  cdh.master
192.168.158.11  cdh.slave1
192.168.158.12  cdh.slave2

注意:源文件内容需要删除 否则会出现错误 具体错误在本文最后常见问题里会说明

步骤三: 关闭防火墙

[root@localhost ~]# systemctl stop firewalld                           #关闭防火墙
[root@localhost ~]# systemctl disable firewalld                        #开机禁用防火墙
[root@localhost ~]# systemctl status firewalld                         #查看防火墙状态是否关闭

步骤四:关闭selinux

[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=disabled

重启才能生效
重启后检查

[root@localhost ~]# sestatus -v
SELinux status:                 disabled                                #已经关闭

步骤五:所有节点设置ssh无密码登陆
所有节点都需要执行 生成秘钥 然后发送到其他所有节点 实现ssh免密码登录 如下是主节点的操作 其他节点也如此操作

[root@cdh ~]# yum -y install openssh-clients                 #安装ssh
[root@cdh ~]# ssh-keygen -t rsa                              #一直按回车 生成秘钥
[root@cdh ~]# ssh-copy-id cdh.slave1                         #发送到cdh.slave1节点
[root@cdh ~]# ssh-copy-id cdh.slave2                         #发送到cdh.slave2节点

步骤六:NTP服务器设置(用于不同节点间实现时间同步)

[root@localhost ~]# yum -y install ntp                   #安装ntp
[root@localhost ~]# vim /etc/ntp.conf                    #修改配置 设置
#注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器  我使用的是阿里云的NTP服务器
server ntp1.aliyun.com iburst
#在其他节点上把ntp指向master服务器地址即可
server 192.168.158.10 iburst
#安装完成后设置ntp开机启动并启动ntp
systemctl enable ntpd
systemctl start ntpd
#查看状态
systemctl status ntpd

步骤7:设置 yum repo

$ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ curl -o /etc/yum.repos.d/cloudera-manager.repo https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

下边开始配置主节点安装 Cloudera Manager Server ,Cloudera ManagerAgent ,mysql (由于我本机自带mysql所以没在主节点安装mysql mysql安装请自行查找)

1,需要安装安装 MySQL JDBC Driver (mysql-connector-java-5.1.40.zip) 解压

$ mkdir -p /usr/share/java/                               #驱动许放在此目录 cm会在此文件夹查找
$ cp mysql-connector-java-5.1.40-bin.jar /usr/share/java/mysql-connector-java.jar    #复制并修改名称

2,安装mysql

#获取mysql rpm包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
#安装rpm 这个rpm是为了更新yum源地址的
rpm -ivh mysql-community-release-el7-5.noarch.rpm
#使用yum在线安装
yum install -y mysql-server
#启动mysql
systemctl start mysqld

登录后修改root密码

use mysql;
update user set password=password('root') where user='root' and host='localhost';
FLUSH PRIVILEGES    #刷新立即生效

安装完mysql后 需要创建CDH服务所需的数据库和用户 后边安装时需要用到

ServiceDatabaseDb-User
Cloudera manager serverscmscm
Activity monitoramonamon
Reports managerrmanrman
Huehuehue
Hive metastore servermetastorehive
Sentry serversentrysentry
Cloudera navigator audit servernavnav
Cloudera navigator audit servernavmsnavms
Oozieoozieoozie
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'root';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'root';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'root';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'root';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'root';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'root';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'root';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'root';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'root';

挑个账号测试一下本地能否登陆 防止后期安装cdh 链接数据库时报错
如果 新建的用户本地登录不了 远程可以登录
解决办法:我用的mysql版本是5.6 安装完数据库后 需要删除匿名用户
用root登录mysql后执行

use mysql;                                   #选择mysql库
delete from user where user='';   #删除匿名用户
FLUSH PRIVILEGES;               #刷新缓存

2,Cloudera Manager 安装(主节点)
Cloudera Manager可以说是Cloudera系列产品和组件的核心,它负责统一配置管理CDH集群,基本上本篇文章都是围绕CM的安装部署来展开的,然后再通过CM去安装CDH及其其它相关组件。
在master节点安装Cloudera Manager Server并启动 ,cloudera-manager-daemons 是运行server和agent所需要的

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

数据库与日志相关配置文件在目录:

/etc/cloudera-scm-server

日志目录

/var/log/cloudera-scm-server

3,初始化数据

#查找安装目录
[root@cdh schema]# whereis cmf
cmf: /usr/lib64/cmf /usr/share/cmf
cd /usr/share/cmf/schema                               #进入目录
#初始化数据
#scm_prepare_database.sh [-数据库类型] [-h主机名 [-u用户名] [-p密码]      [主机地址] [创建的数据库名] [用户] [密码]
./scm_prepare_database.sh mysql -hlocalhost -uroot -proot --scm-host localhost scm root root

启动cloudera-scm-server

systemctl start cloudera-scm-server       #启动
systemctl status cloudera-scm-server      #查看状态
systemctl stop cloudera-scm-server        #关闭

在master和node节点安装Cloudera Manager Agent

yum install -y cloudera-manager-agent cloudera-manager-daemons     #安装agent 
#修改 /etc/cloudera-scm-agent/config.ini 中的server_host为master的IP
vim /etc/cloudera-scm-agent/config.ini
# Hostname of the CM server.
server_host=cdh.master

systemctl start cloudera-scm-agent    #启动
systemctl status cloudera-scm-agent   #查看状态
systemctl stop cloudera-scm-agent     #停止服务

优化交换分区

echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p

禁用透明大页面压缩

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

并将上面的两条命令写入开机自启动/etc/rc.local

登录web界面 安装cdh
http://192.168.158.10:7180
账号:admin
密码:admin

1.登录web界面 配置集群安装CDH
在这里插入图片描述
2 .选择部署的版本
在这里插入图片描述
3.继续下一步,选择安装的CM的版本
在这里插入图片描述
4.选择需要部署的主机
在这里插入图片描述
5.选择需要安装的clouderamanager版本
在这里插入图片描述
6.percel文件下载并分发安装到集群所有节点上
在这里插入图片描述
注意: 此步骤需要下载parcel文件 此文件1G左右 下载十分慢 解决办法:
在 https://archive.cloudera.com/cdh5/parcels/5.16.2/ 找到文件对应的版本
在这里插入图片描述
使用迅雷下载红框内三个文件 然后上传到主机 目录:

[root@cdh parcel-repo]# pwd
/opt/cloudera/parcel-repo

上传完毕后修改目录文件权限属性

chown cloudera-scm:cloudera-scm -R parcel-repo/   #修改权限属性
#注意 一定要修改sha1名称为sha
mv CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha
#修改后parcel-repo文件夹如下
-rw-r--r-- 1 cloudera-scm cloudera-scm 2132782197 8月  20 14:28 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel
-rw-r--r-- 1 cloudera-scm cloudera-scm         41 8月  20 14:32 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha
-rw-r--r-- 1 cloudera-scm cloudera-scm      66804 6月  18 21:18 manifest.json

7.开始分发安装到各节点
在这里插入图片描述
8.检查集群中主机环境
在这里插入图片描述
出现两个问题:
优化交换分区

echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p

禁用透明大页面压缩

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

并将上面的两条命令写入开机自启动/etc/rc.local

9.群集设置 选择安装的服务组件
在这里插入图片描述
10.群集设置 自定义角色分配
(这里一般情况下默认即可,但是如果集群中某台电脑的配置严重不行的时候,建议少分配点任务)
在这里插入图片描述
11.数据库设置
注意:这个要与前面的mysql中建立hive,oozie,hue相对应,如果之前没有建立的话,会报错
强烈建议将各个数据库与相应角色实例置于同一主机上
在这里插入图片描述
12.审核更改,如果有特定目录的设定或者参数的设定,可以在这里进行更正
在这里插入图片描述
13.首次运行
14安装完毕 进入图形界面
在这里插入图片描述

常见问题:

在安装CDH时 查找不到节点如图所示:
在这里插入图片描述
查看日志:

cd /var/log/cloudera-scm-server
cat cloudera-scm-server.log

报如下错误
在这里插入图片描述
此错误 原因:/etc/hosts 如下设置

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 cdh.slave2
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 cdh.slave2
192.168.158.10  cdh.master
192.168.158.11  cdh.slave1
192.168.158.12  cdh.slave2

修改/etc/hosts 将 127.0.0.1 两行删掉, 保留内网IP和机器名的映射即可

192.168.158.10  cdh.master
192.168.158.11  cdh.slave1
192.168.158.12  cdh.slave2

然后主节点重启:systemctl status cloudera-scm-server
各节点重启:systemctl restart cloudera-scm-agent
问题解决

启动server log报错:

2019-08-21 09:02:12,762 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: The server storage directory [/var/lib/cloudera-scm-server] doesn't exist.
2019-08-21 09:02:12,966 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No read permission to the server storage directory [/var/lib/cloudera-scm-server]
2019-08-21 09:02:12,966 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No write permission to the server storage directory [/var/lib/cloudera-scm-server]

解决: sudo mkdir /var/lib/cloudera-scm-server
注意:在主机节点创建上面的目录,否则会出错,7180端口起不来。
mkdir -p /var/lib/cloudera-scm-server
mkdir -p /var/lib/cloudera-scm-agent
mkdir -p /var/lib/cloudera-scm-server-db/data

首次运行安装时报错:Failed to install Oozie ShareLib.
在这里插入图片描述
在日志里搜索找到hdfs-site.xml安装位置然后修改:

vim /opt/cm-5.16.2/run/cloudera-scm-agent/process/49-oozie-OOZIE-SERVER-upload-sharelib/yarn-conf/hdfs-site.xml
#添加如下两项
  <property>
    <name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
    <value>NEVER</value>
  </property>
#保存 然后返回安装界面 返回上一步 然后从新继续安装

问题原因:
无法写入;我的环境中有3个datanode,备份数量设置的是3。在写操作时,它会在pipeline中写3个机器。默认replace-datanode-on-failure.policy是DEFAULT,如果系统中的datanode大于等于3,它会找另外一个datanode来拷贝。目前机器只有3台,因此只要一台datanode出问题,就一直无法写入成功。
对于,dfs.client.block.write.replace-datanode-on-failure.policy,default在3个或以上备份的时候,是会尝试更换结点尝试写入datanode。而在两个备份的时候,不更换datanode,直接开始写。对于3个datanode的集群,只要一个节点没响应写入就会出问题,所以可以关掉

首次运行报错:Failed to create Oozie database tables.
在这里插入图片描述
解决办法:返回cloudera manager主页,查看已经有了oozie的服务,直接启动它!
在这里插入图片描述

安装数据库遇到的问题
注意: 在主机 我安装过mysql8 但是出现了一些问题 如下
在这里插入图片描述
我使用的是mysql-connector-java-8.0.17-1.el7.noarch.rpm驱动 换成低版本mysql-connector-java-5.1.40.zip就没有问题
数据库换成mysql5.7版本 就没有问题

安装参考:https://www.jianshu.com/p/1ebc95382d6e
https://blog.csdn.net/czk740960212/article/details/80484671
https://blog.51cto.com/wzlinux/2321433?source=dra

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值