Centos7离线安装ClouderaManager5.14.1

首页 编程分享 LINUX丨SYSTEM 正文

quanke_ 转载 编程分享 2018-04-16 02:37:05

简介 严格按照步骤来做。当然还有其他安装方式,这里讲的方式比较适合测试使用。内容版本CentOS...


简介

如果是新手,请严格按照步骤来做。当然还有其他安装方式,这里讲的方式比较适合测试使用。

内容 版本
CentOS 7 64位
JDK 1.7
Cloudera Manager 5.14.1

本次安装一共使用3台服务器,主要用户测试。

服务名 内网IP 用途
master 192.168.254.130 主,按照CM
slave01 192.168.254.210
slave02 192.168.254.211

可以搭建三台虚拟机,其中master内存在8G以上,slave内存在4G以上,每个虚机的硬盘空间100G+

下载软件包和数据包

我这里提供两种下载方式:

在下载的时候可以先把服务器基础环境准备好

百度云盘下载

推荐百度云超级VIP账号的用户,里面包含所有的安装包和数据包

链接: https://pan.baidu.com/s/1JC-vpYH7SWBwju9C8DkVPw 密码: 26v8

官方下载

这是一个漫长的过程,试过才知道爽。

下载CM和jdk软件包

访问:http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/

把上面的所有rpm包都下载回来本地,下载速度慢可以使用axel多线程下载,如果没有装axel,也可以使用 wget -b后台下载

我的相关下载都放在 /data/soft下,我的Cloudera Manager 5.14.1的下载放在 /data/soft/cm5.14.1,所以新建目录并进入目录:

mkdir -p /data/soft/cm5.14.1/cm-and-jdk

cd /data/soft/cm5.14.1/cm-and-jdk
wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-agent-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b  http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-daemons-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-server-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-server-db-2-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/enterprise-debuginfo-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

下载cloudera-manager安装文件

访问:http://archive.cloudera.com/cm5/installer/5.14.1/

下载cloudera-manager-installer.bin

cd /data/soft/cm5.14.1/

wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

下载rpm仓库文件

wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

下载parcel

这个比较大,放下服务器慢慢下吧

mkdir -p /data/soft/cm5.14.1/parcel

cd /data/soft/cm5.14.1/parcel
wget -b http://archive.cloudera.com/cdh5/parcels/5.14.0.24/CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel

wget -b http://archive.cloudera.com/cdh5/parcels/5.14.0.24/CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1

服务器环境准备

修改hostname及hosts

针对所有节点操作

为了便于安装过程中对各个服务器的访问更易区分、更便捷,我们需要分别对各个服务器修改hostname及hosts

hostnamectl --static set-hostname master
hostnamectl --static set-hostname slave01
hostnamectl --static set-hostname slave02

修改hosts:

vim /etc/hosts

根据自己的3台服务器IP地址,在最后面增加:

192.168.254.130 master
192.168.254.210 slave01
192.168.254.211 slave02

重启机器

reboot

关闭防火墙和selinux

针对所有节点操作

关闭防火墙

systemctl stop firewalld.service Id停止firewall
systemctl disable firewalld.service Id禁止firewall开机启动
firewall-cmd --state Id查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

关闭selinux:

vim /etc/selinux/config

找到SELINUX改为:

SELINUX=disabled

ssh无密码登录

针对所有节点操作

先在master上执行:

ssh-keygen -t rsa   Id一路回车到完成

ssh-copy-id -i ~/.ssh/id_rsa.pub root@master   Id将公钥拷贝到本机的authorized_keys上

再在其他节点分别执行以下命令:

ssh-keygen -t rsa   Id一路回车到完成

ssh-copy-id -i ~/.ssh/id_rsa.pub root@master  

Id注意此处不变,将公钥拷贝到master的authorized_keys上

在master上,将authorized_keys分发到其他节点服务器:

scp ~/.ssh/authorized_keys root@slave01:~/.ssh/

scp ~/.ssh/authorized_keys root@slave02:~/.ssh/

安装ntp时间同步软件

所有节点时间一致非常重要,要不然启动Cloudera Manager服务后,后台会报错。

所有节点执行:

yum install ntp -y

安装完成后,阿里云的服务器会自动使用阿里云的ntp服务器进行同步,故可不再进行下面的配置,直接进入2.6节,若其他没有统一ntp服务器进行同步的,则还需要以下设置:

将master设置为主服务器(在master节点操作):

vim /etc/ntp.conf

内容如下:

driftfile /var/lib/ntp/ntp.drift Id草稿文件
Id 允许内网其他机器同步时间
restrict 192.168.137.0 mask 255.255.255.0 nomodify notrap
 
Id Use public servers from the pool.ntp.org project.
Id 中国这边最活跃的时间服务器 : [http://www.pool.ntp.org/zone/cn](http://www.pool.ntp.org/zone/cn)
server 210.72.145.44 perfer   Id 中国国家受时中心
server 202.112.10.36             Id 1.cn.pool.ntp.org
server 59.124.196.83             Id 0.asia.pool.ntp.org
 
Id allow update time by the upper server 
Id 允许上层时间服务器主动修改本机时间
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
 
Id 外部时间服务器不可用时,以本地时间作为时间服务
server  127.127.1.0     Id local clock
fudge   127.127.1.0 stratum 10

重启ntpd服务:

systemctl ntpd restart

查看同步状态:

netstat -tlunp | grep ntp

所有子节点ntp加入开机启动:

systemctl enable ntpd

设置slave到master 的同步(在slave节点操作):

vim /etc/ntp.conf

内容如下:

driftfile /var/lib/ntp/ntp.drift Id 草稿文件

statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

Id 让NTP Server为内网的ntp服务器
server 192.168.137.110
fudge 192.168.137.110 stratum 5

Id 不允许来自公网上ipv4和ipv6客户端的访问
restrict -4 default kod notrap nomodify nopeer noquery 
restrict -6 default kod notrap nomodify nopeer noquery

Id Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

重启ntpd服务:

systemctl ntpd restart

手动同步:

ntpdate -u master

所有节点重启服务器:

reboot

分配安装文件

主节点和子节点分别需要的文件整理如下:

主节点master,所需文件:

cloudera-manager-agent-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-daemons-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-server-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-server-db-2-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
enterprise-debuginfo-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-installer.bin
cloudera-manager.repo
CDH-5.14.1-1.cdh5.14.1.p0.2-el7.parcel
CDH-5.14.1-1.cdh5.14.1.p0.2-el7.parcel.sha1

从节点slave01、slave02,所需文件:

cloudera-manager-agent-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-daemons-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager.repo

使用scp命令分配所需要的安装文件

安装Cloudera Manager

至此,所有设置完成。开始Cloudera Manager安装吧!

安装 cm-and-jdk

针对所有节点操作

修改仓库文件cloudera-manager.repo,把版本号加上

[cloudera-manager]
name = Cloudera Manager
baseurl = https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/  Id主要改这里的版本号
gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1

验证repo文件是否起效

yum list | grep cloudera Id如果列出的不是待安装的版本,执行下面命令重试

yum clean allyum list | grep cloudera

切换到cm-and-jdk目录下,执行

yum localinstall --nogpgcheck *.rpm

设置java路径:

vi /etc/profile

在该文件末尾添加以下行

JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

检查安装:

java -version

下面针对master节点操作

进入cloudera-manager-installer.bin文件目录,给bin文件赋予可执行权限:

chmod +x ./cloudera-manager-installer.bin

运行:

./cloudera-manager-installer.bin --skip_repo_package=1

如果提示需要删除配置文件,则删除该文件

rm -rf /etc/cloudera-scm-server/db.properties

相同配置下顺利安装时间在1分钟内即可完成。 然后我们在web浏览器访问 http://192.168.254.130:7180/,看是否能打开页面即可,先不要进行登录操作。

注意:chd server服务器启动需要一些时间,等1分钟左右。

如果能访问,那证明 cloudera manager安装正常。

安装CDH

制作本地parcel

前面完成cloudera manager安装之后master会在/opt目录下生成cloudera文件夹,将之前下载好的CDH-*文件移动到parcel-repo文件夹中

cp CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel /opt/cloudera/parcel-repo/
cp CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha  Id注意这里有重命名

将cloudera manager的用户授权给/opt和日志目录:

chown -R cloudera-scm.cloudera-scm /var/lib/cloudera-scm-server
chown cloudera-scm.cloudera-scm  /opt  -R
chown cloudera-scm.cloudera-scm  /var/log/cloudera-scm-agent -R

重启cloudera-scm-server(重要)

/etc/init.d/cloudera-scm-server restart

重启速度较慢,约1分钟后访问 http://192.168.254.130:7180/ 登陆,账号密码 admin 选择免费版本,一路next开始安装。

基本默认就行

在为CDH集群安装指定主机的时候写

master
slave01
slave02

这里需要填写我们集群定义的ip或者服务器名称(包括安装CM的主机本身),点击搜索,即可加载出所有主机。全选所有主机,并继续。

这里会出现我们之前cp过去的CDH版本,选择并继续。

如果之前的操作没有问题,这里将会很快完成

在选择安装的服务组合的时候,选择自己需要的,如果不知道,全部安装就行

这里是最激动人心的时候

随便找台机器测试一下spark:

spark-shell

激动的敲了一个:

CDH启动与关闭

CM Portal 地址:

http://master:7180/cmf/home

关闭步骤:

在CM portal上关闭 cluster

在所有节点关闭CM agent:

service cloudera-scm-agent stop

在master节点关闭CM server:

service cloudera-scm-server stop

启动步骤:

在所有节点启动CM agent:

service cloudera-scm-agent start

在master节点启动CM server:

service cloudera-scm-server start

在CM portal上启动 cluster

查看启动日志:

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

如果是3台机器一般会出现错误:

在CM console中将副本设为2:

dfs.replication=2

在所有的节点命令行执行:

hadoop fs -setrep 2 /

安装要点:

  • 仔细,认真,严格按照步骤
  • 常见问题:网络,防火墙等主机设置
  • 碰到问题:查看日志&官网&百度
cloudera JDBC Driver com.mysql.jdbc.Driver not found.

将oracle的mysql的jar包放置到/usr/share/java/mysql-connector-java.jar路径下即可,注意修改jar包名称;

切记除了要下载parcel文件之外,还有manifest.json文件,否则在选择安装版本界面,cloudera无法识别parcel的版本。

还有需要对于sha1文件进行改名:*.parcel.sha1 -> *.parcel.sha

为什么CDH的安装页面显示无法发现CDH ?

之前一直怀疑是流程步骤有问题,其实流程本身没有问题,问题发生在流程的实施节点上:cdh文件损坏了;本来1.5G的大小,当时只有50M,我不记得原因了,但是太坑了。

我想到了权限问题;但是忽略了文件损坏问题:sha就是干这个用的,当时应该考虑到使用sha来校验一下文件。

如果cloudera发现能够正常发现parcel,在server启动后将会打出一条日志:

SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: Finished constructing repo:2017-09-27T16:19:00.763Z

安装CDH在拷贝parcel的时候发生异常:Exhausted available authentication methods

后来发现原来是因为ssh的root用户被我设置为禁止远程登录;而CDH页面向导中我还配置的用root用户登录

之后发现拷贝异常,总是联网去下载agent包,但是agent都已经在各个节点了;后来发现agent的启动是失败的(在开始的步骤中能够被自动发现的都不需要装agent,需要通过手动输入IP来进行发现的需要装agent,怎么装?联网),报错显示:ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>;在网上搜索了一下,如下处理:

sudo ps -ef | grep supervisord

kill -9 PID

sudo ./cloudera-scm-agent restart

未完,重启后发现:

Error, CM server guid updated, expected d6c22714-0175-4a40-ace6-db92b7417a40, received 613b2c09-88f6-41fe-9424-41601be40310

原来还需要将cm/lib/cloudera-scm-agent/下面的cm_guid进行清除;这一点让我想到了cloudera数据迁移的时候需要做的事情,需要将同目录下的uuid进行删除;

在安装的过程中还有一个问题一直困扰我,就是僵尸agent,在agent经历如上的问题后,在自动发现的列表中有一些僵尸agent,会看到同hostname的多台机器,有一个是正常通信,有的则是Unkonwn,无法删掉,因为不勾选,那么正常通信的也不会勾选上。反正后来我改了一下hosts文件,莫名其妙的在勾选列表中消失了,但是遗憾的是正常通信的也没了。安装成功后,在Hosts页面才看到这些僵尸agent,此时再delete可以正常删除。


Skipping start command because all roles are started or decommissioned or on decommissioned host.

cloudera的server停止后要稍等一会在启动,因为释放内存需要一段时间;如果停止后立即就启动将会发生一种情况,内存没有释放完,JVM的内存大量释放和JVM的大量使用将会导致JVM频繁的进行回收和释放,导致JVM Pause以及World Stop

JAVA_HOME is not set and Java could not be found

具体原因不太清楚,最小化安装了一个centos7,发现没有jdk,不解。

在clouderea中添加了一个host,然后添加了一个spark nodemanager的角色,然后就悲剧了,总是抱JAVA_HOME is not set and Java could not be found的异常;即使手动拷贝了一个jdk1.8到上面,profile也配置了,仍然不好用。不解。

再看日志的时候,发现安装程序(cloudera的安装程序)将会到几个固定的地方查找,选一个,然后将jdk拷贝到该目录下,问题解决

欢迎关注公众号《全栈架构》

参考:

转载链接:https://my.oschina.net/quanke/blog/1925515


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云