CDH 5 安装教程,Kafka 安装,LZO 安装
目 录
主机列表
基础环境
集群主机基础配置
配置 NTP 服务
配置 MySQL 服务器
安装 Cloudera Manager Server 和 AgentServer
配置 Server 端
配置 Agent 端
安装 CDH
配置并分配 CDH5 parcel 包
安装 Hadoop 集群及相关组件
浏览 CDH Web 端相关布局
安装 Kafka 组件
配置并分配 Kafka parcel 包
集群内安装 Kafka 服务
配置 HDFS LZO 压缩
配置并分配 LZO parcel 包
HDFS 相关 LZO 配置
YARN 相关 LZO 配置
主机列表
|主机名 | IP |Memory| CPU | 角色及服务 | | :------- | ----: |:---: |:--- |:--- | | test1.lan | 192.168.22.11 |9G |4核 | cm-agent, Namenode, YARN | | test2.lan | 192.168.22.12 |9G |4核 | cm-agent, SecondNameode, HBase-Master | | test3.lan |192.168.22.13 |9G |4核 | cm-agent, Datanode, zk-server, kafka-broker, Regionserver | | test4.lan |192.168.22.14 |9G |4核 | cm-agent, Datanode, zk-server, kafka-broker, Regionserver | | test5.lan | 192.168.22.15 |9G |4核 | cm-agent, Datanode, zk-server, kafka-broker, Regionserver | | test6.lan |192.168.22.16 |9G |4核 | cm-server, MySQL-Server |
基础环境
CentOS 6 x86_64
jdk-8u101-linux-x64.rpm
MySQL-5.6.x
NTPd => On
CDH-5.12.0-1.cdh6.12.0.p0.29-el6.parcel(离线parcel)
cloudera-manager-el6-cm5.12.0x8664.tar.gz
KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel
集群主机基础配置
确保
/
目录至少100G以上SELinux 关闭
iPtables 关闭
禁用 Transparent Hugepage Compaction
设置 vm.swapiness 为 1
ntp 服务开启,时间同步(不推荐用ntpdate)
配置 NTP 服务
以下配置集群内每台主机均要做一次
```
vim /etc/sysconfig/ntpdate SYNC_HWCLOCK=yes // 打开硬件时钟同步保存 ntpdate time.windows.com
// 首次手动同步时钟,避免首次ntpd服务因时间偏差过大导致无法同步 vim /etc/ntp.conf server time.windows.com prefer // 添加时间同步服务器 service ntpd start && chkconfig ntpd on // 运行时间同步服务 ```
配置用于 cm-server 的 MySQL 服务器
该 MySQL 服务即可安装在 cm-server 服务器上,也可以与其他服务共用
> rpm -qa | grep -i -E "mysql-libs|mariadb-libs"> yum remove -y mysql-libs mariadb-libs && yum install -y -q crontabs postfix> tar xf MySQL-5.6.35-1.el6.x86_64.rpm-bundle.tar> rpm -ivh MySQL-client-5.6.35-1.el6.x86_64.rpm \MySQL-shared-* \MySQL-server-5.6.35-1.el6.x86_64.rpm \MySQL-devel-5.6.35-1.el6.x86_64.rpm
安装 MySQL-Server ```
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.44.tar.gz tar xf mysql-connector-java-5.1.44.zip ``` 下载 mysql-connector.jar (用于安装在 cm-server 服务器上)
> vim /etc/my.cnf [mysqld] character-set-server = utf8
// 初始密码在 ~/.mysql-secret
文件之中> mysql -p`default_secret` sql_cli > SET PASSWORD = PASSWORD("new_secret") sql_cli > exit
安装 Cloudera Manager Server 和 AgentServer
Cloudera Manager Server 安装在 test6.lan AgentServer 在集群内每台主机均需要单独安装 下载地址:http://archive-primary.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.12.0x8664.tar.gz
配置 Server 端
cloudera-manager 下载完成后上传到 test6.lan
即可 然后解压到 /opt
目录下(只能是该目录下),因为cdh6的源会默认在 /opt/cloudera/parcel-repo
寻找
> tar xf cloudera-manager-el6-cm5.12.0_x86_64.tar.gz -C /opt/
给集群内所有节点添加 cloudera-scm
用户 ```
useradd --system --home=/opt/cm-5.12.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm ```
在 cm-server 节点配置 mysql-connector-java
,并且为 Cloudera Manager 5 创建初始数据库> cp /path/to/mysql-connector-java-5.1.44-bin.jar /opt/cm-5.12.0/share/cmf/lib/
然后,创建初始数据库(-psecret 为数据库对应账户的密码) ```
/opt/cm-5.12.0/share/cmf/schema/scmpreparedatabase.sh mysql cm -hlocalhost -uroot -psecret --scm-host localhost scm scm scm ``` 见 Successfully connected to database. All done, you SCM database is configured correctly! 即库结构表结构配置成功。
运行 Cloudera Manager 5 的 Server 端:
> /opt/cm-5.12.0/etc/init.d/cloudera-scm-server start
注意:首次运行 Server 端,会有大概5-10分钟的数据初始化时间(服务端进程内存占用大概1.5G左右),初始化完成后会有 java 程序监听在 7180 7182 端口之上。
配置 Agent 端
在 Server 端修改 Agent 配置文件中 server_host 的主机地址
> vi /opt/cm-5.12.0/etc/cloudera-scm-agent/config.iniserver_host=test6.lan
在 Server 端复制 Agent 程序到集群内所有节点 /opt/ 目录下
> for i in {1..5}; do echo "--------- Start scp to test${i}.lan --------" scp -r -q /opt/cm-5.12.0/ test${i}.lan:/opt/ echo "######### Done ##########"done
等待复制成功,即可在 Agent 所有节点中启动 Agent 程序
> /opt/cm-5.12.0/etc/init.d/cloudera-scm-agent start
Agent 端程序为 Python 进程,会主动到配置文件中的 server_host 节点注册信息,该 Agent 也是用于后续接受 Server 端发送的相关指令,以及心跳信息监控。
安装 CDH
配置并分配 CDH5 parcel 包
需要单独回到 test6.lan shell终端,配置 CDH5 的 parcel
包(cloudera 采用预编译捆绑安装包的方式,以支持 Hadoop 离线安装)。 对应 CDH parcel
包下载地址为:http://archive-primary.cloudera.com/cdh6/parcels/5.12.0/ ```
cd /opt/cloudera/parcel-repo curl -O http://fileserver.lan/CDH5/CDH5-5.12.0-1.cdh6.12.0.p0.29-el6.parcel curl -O http://fileserver.lan/CDH5/CDH5-5.12.0-1.cdh6.12.0.p0.29-el6.parcel.sha1 mv CDH5-5.12.0-1.cdh6.12.0.p0.29-el6.parcel.sha1 \ CDH5-5.12.0-1.cdh6.12.0.p0.29-el6.parcel.sha ``` 此处需要把对应 parcel 包的 sha1 文件改名为 CDH5-5.12.0-1.cdh6.12.0.p0.29-el6.parcel.sha,不然 cm-server 识别不了该 parcel 包。
重启 cloudera-scm-server 服务端
> /opt/cm-5.12.0/etc/init.d/cloudera-scm-server restart
打开 http://test6.lan:7180/ 开始安装 CDH默认登陆用户名密码为 admin admin
同意相关条款
选择相关服务版本
该版本相关服务包及信息
添加集群主机 此处有当前管理的主机(5)
表示 Agent 端注册到 Server 端正常。 如果此处只有一个选项,即 新主机
,那么表示 Agent 注册不正常,请检查网络或服务是否正常。 你亦可以选择通过指定主机名或IP的方式连接远程节点。
选择主机
选择集群安装的相关配套组件 parcel 包。
开始集群内节点的 parcel 包部署
此图最后的部署告警提示 cloudera-scm 用户未创建,确实是节点忘记创建,用户创建完毕后重新验证即可。
部署信息概览
安装 Hadoop 集群及相关组件
CDH 官方有已经打包好的配套匹配方案,也可以自行搭配组件
此处暂且选择几个组件,包括 HBase、HDFS、YARN 和 Zookeeper (Kafka属于另外一个单独的parcel包提供,后面再单独安装)
相关组件的配置参数
部署中....
其中各相关服务组件在服务器文件系统中的安装路径如下
安装完成
浏览 CDH Web 端相关布局
修改 NameNode 关于 Heapsize 大小的初始默认配置(推荐设置为 1-4G 大小) 修改配置后,需要重启服务,重启服务后稍等片刻,等待服务的相关附属子进程启动完毕,告警即消失。 (修改 NameNode 的 Heapsize 大小,当然也需要修改 SecondaryNameNode 的 Heapsize)
安装 Kafka 组件
配置并分配 Kafka parcel 包
在 Web 页面中,主机 -> Parcel 里面会列出当前集群以配置和分配的 parcel 包,目前只配置了 CDH5,Kafka 单独存在于其他 parcel 包中,所以需要单独加载 parcel ,然后分配到集群内各节点。
Cloudera官方Kafka组件的parcel包下载地址为:http://archive.cloudera.com/kafka/parcels/latest/ 照旧下载 percel 文件,以及该文件的 sha1 串,然后重命名 ***.sha1
为 ***.sha
方可。
下载好以上两个文件后,放到 cm-server 节点的 /opt/cloudera/parcel-repo/
目录下 无需重启 server 守护进程,在页面即可在线刷新、分配、激活。
集群内安装 Kafka 服务
这里需要确认和修改 2 个默认配置
复制进程,默认为1,修改为 3(视业务量而定)
分区数,默认分区数为 50,这里暂且保留。
删除旧topic,默认打开,不做更改。
业务端口为 9092 。
配置 HDFS LZO 压缩
配置并分配 LZO parcel 包
LZO 功能也是封装在单独的 parcel 包中,选择对应平台的包。 下载地址为:http://archive-primary.cloudera.com/gplextras/parcels/latest/ 这里并没有直接的提供 sha 文件,所以需要查看 manifest.json
文件,找到对应 parcel 包的 hash 值,手动保存至本地文件即可。
下载 parcel 包及其 sha 文件,存放至 cm-server 的 /opt/cloudera/parcel-repo/
目录下。 同安装 Kafka 捆绑包一样,在页面上即可完成刷新,注册,分配,激活操作。
激活好 LZO 之后,有几个为之依赖的服务会提示重启载入新配置。 先别急重启,还有几个配置需要单独手动修改。
HDFS 相关 LZO 配置
将 io.compression.codecs
新增一行,填入 com.Hadoop.compression.lzo.LzopCodec
保存配置。
YARN 相关 LZO 配置
将 mapreduce.application.classpath
的属性值新增一行,填入 /opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*
将 mapreduce.admin.user.env
的属性值,后补入 /opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/native
保存,重启相关依赖的服务即可。