最详细的CDH安装攻略

目录

·安装前的准备工作

·安装java

·安装CDH的准备

·建立CM数据库

·通过CM部署CDH

·启动各个节点的cloudra-scm-agent与主节点的CM

·安装各节点的CDH

·错误与问题汇总

·Yum安装错误

·28, 'Connection timed out after 3鈻[6nmilliseconds'

·初始化CM数据库失败

·scp同步到其他节点失败

·Agent启动错误

·分配Parcels时显示主机运行状态不良

·服务器检查警告

·启动Hive、Oozie、HDFS报错

·HDFS的NameNode路径无法初始化错误


·安装前的准备工作

·安装CM的准备

首先要选定集群主节点,主节点的配置内存应该尽可能的大,配置不够的话可能会十分卡。

我们会在主节点上安装CM以管理各个集群节点

CM的安装有两种方式:

1.             下载bin文件然后在线安装。这种方式要求环境尽量稳定且有较好的网络,一旦中途安装失败,CM安装程序会清除以前的数据重新开始安装。

2.             下载CM的tar包然后解压到/opt目录下。这种方式解压tar包即可。

考虑到环境稳定问题我们采用离线模式安装

CM下载地址:

http://archive.cloudera.com/cm5/

这里下载对应的CM版本,centOS系统的包名带el,例如:centOS6应该下载的包就是cloudera-manager-el6-cm5.12.1_x86_64.tar。这里除了考虑系统版本还要考虑mysql的版本因为有的版本是不支持MariaDB的。

·配置各节点

·网络配置

·修改各节点主机名

vim /etc/sysconfig/network

例:

         NETWORKING=yes

HOSTNAME=cdh1

NETWORKING_IPV6=no

PEERNTP=no

修改完成后重启网络服务service network restart

·修改ip与主机名的对应关系

vim /etc/hosts

例:

         192.168.1.101   cdh1

192.168.1.102   cdh2

192.168.1.103   cdh3

·安装java

CDH需要java版本在7.5以上,此步骤略去。

·安装MySql

这里注意root用户需要有远程访问权限,此步骤略去。

·关闭防火墙和SElinux

这里为了安装方面临时关闭防火墙,安装好后可以根据需求在开启防火墙。

SELinux是默认关闭的,这里检查一下状态。

·配置所有节点ntp同步(重要)

集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。这里我们也将主节点做为ntp服务器的节点,然后所有节点向主节点同步时间。

首先各个节点安装ntp服务yum install ntp

安装好后设置开机启动chkconfig ntpd on

检查是否设置成功:chkconfig --list ntpd其中2-5为on状态就代表成功。

主节点设置

在更改ntp配置前先手动与对诗中心同步一下时间,以免本机与对时中心时间差距太大,使得ntpd不能正常同步ntpdate -u ip

然后修改ntp配置文件vim /etc/ntp.conf

加入server ip prefer

之后启动服务service ntpd start

检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:

synchronised to NTP server () at stratum2time correct to within 74 mspolling server every 128 s

如果失败可以等待5-10分钟后再次查看。

节点配置

在ntp配置文件加入server 主节点名

请求服务器前,先使用ntpdate手动同步一下时间:ntpdate -u 主节点名

然后启动ntp服务。

·安装CDH的准备

CDH的安装也有两种方式:

1.      在线安装,在CM安装好后安装集群时可以在线下载安装。

2.      离线下载parcel包放在指定目录。

同样的我们也采用离线下载的方式

CDH下载地址:

http://archive.cloudera.com/cdh5/

·安装CDH的准备

·安装CM和agent

将之前下载的CM包放下/opt目录下直接解压,解压后有两个文件夹:cloudra和cm-版本号

·建立CM数据库

下载合适的jdbc版本http://dev.mysql.com/downloads/connector/j/

下载完成后将解压出的jar文件放到/opt/cm-版本号/share/cmf/lib/。然后执行初始化数据库命令

/opt/cm-版本号/share/cmf/schema/scm_prepare_database.shmysql cm -hlocalhost -uroot -pxxxx --scm-host localhost scm scm scm

·agentpeizhi

修改/opt/cm-5.3.3/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。然后将agent同步到其他节点

Scp -r /opt/cm-版本号 root@节点名(或者ip):/opt/

最后在所有节点创建cloudera-scm用户

useradd --system --home=/opt/cm-版本号/run/cloudera-scm-server/--no-create-home --shell=/bin/false --comment "Cloudera SCM User"cloudera-scm

·准备Parcels

将之前下载的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(若无parcel-repo需要手动创建)。文件如下:

         CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel

CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha1

manifest.json

最后将CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha1,重命名为CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha1文件。

·通过CM部署CDH

·启动各个节点的cloudra-scm-agent与主节点的CM

通过/opt/cm-版本号/etc/init.d/cloudera-scm-server start启动服务端。

通过/opt/cm-版本号/etc/init.d/cloudera-scm-agent start启动Agent服务。

这里在/etc/cm-版本号/logs/cloudra-scm-agent和/etc/cm-版本号/logs/cloudra-scm-server下可以查看日志文件。

这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),如下图所示:

出现如下页面说明CM已经启动了。

·安装各节点的CDH

通过admin管理用户进入系统(密码也是admin)后页面如下所示:

这里勾选接受条款继续安装。

选择要安装的CM的类型,这里选择了第一个,点击继续

下面需要注意,在图中所示,点击当前管理主机可以看到安装了agent的全部主机,如果有未看到的节点则agent启动未成功。

这里我们不要在搜索这里搜索主机进行安装,因为这样回去在线下载jdk和agent以及版本匹配的CDH包,因为我们采用离线方式所以选择另一种方式。

之后回看到自己已经下载好的parcels包,这里使用默认的选项就行了,点击继续

 

然后开始分配parcels包到各个节点,然后解压激活,全部节点完成后继续下面的安装。

选择要在集群上安装的CDH服务,根据需求选择

然后需要配置每个角色的服务器,这里HDFS和ZooKeeper会建议你配置3台以上的服务器

然后会要求你键入上图所示的信息检查msyql的连接,成功后继续。

之后是集群设置,根据需求填写

然后CM会发送启动命令启动各节点的服务,待服务全部启动完成后点击继续

最后就看到了CM管理集群的首页信息,出现此页面整个CDH集群的安装就算完成了。

 

·错误与问题汇总

 

·Yum安装错误

·28, 'Connection timed out after 3鈻[6nmilliseconds'

没有配置DNS,用vim打开/etc/resolv.conf添加

         searchsz.fonsview.com

nameserver172.16.200.251

nameserver172.16.203.253

nameserver8.8.8.8

 

·初始化CM数据库失败

检查mysql的jdbc版本是否兼容

·scp同步到其他节点失败

scp -r /opt/cm-5.3.3 root@n2:/opt/

检查目录名是否正确,scp默认的端口是22,如果用其他端口则加入-P端口。

·Agent启动错误

注意在scp同步之前不要启动agent否则会将uuid也带过来,这样会导致两个相同的uuid从而无法启动Agent。删除Agent的uuid,重启Agent重新分配uuid。

/etc/hosts文件一定要配置自己和其他节点否则会找不到节点。

·分配Parcels时显示主机运行状态不良

删除cm_guid:rm -f /opt/ cm版本号/lib/cloudera-scm-agent/cm_guid

如果是多节点,则需要删除每个agent节点的这个文件。

重启Agent进入到init.d目录,执行

./cloudera-scm-agent restart

·服务器检查警告

1.      Cloudera 建议将/proc/sys/vm/swappiness 设置为?。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。

使用echo ?> /proc/sys/vm/swappiness将swappiness设置为推荐的值即可。

2.      已启用透明大页面压缩,可能会导致重大性能问题。

此问题按照提示操作即可。

之后重新检查服务器状态

·启动Hive、Oozie、HDFS报错

Hive和Oozie都需要连接数据库,所以我们将jdbc文件拷贝到lib库下,cp /opt/cm-版本号/share/cmf/lib/mysql-connector-java-5.1.35-bin.jar/opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel/lib/hive/lib/(具体路径有版本号决定)

·HDFS的NameNode路径无法初始化错误

点击错误信息打开集群管理页面,选择HDFS角色

点击配置选项卡,选择NameNode选项,修改NameNode数据目录然后保存设置,重新启动HDFS。

 

 

 

 

 

代码交流 2021