目 录

主机列表

|主机名 | 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 |

基础环境

  1. CentOS 6 x86_64

  2. jdk-8u101-linux-x64.rpm

  3. MySQL-5.6.x

  4. NTPd => On

  5. CDH-5.12.0-1.cdh5.12.0.p0.29-el6.parcel(离线parcel)

  6. cloudera-manager-el6-cm5.12.0x8664.tar.gz

  7. KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel

集群主机基础配置

  1. 确保 / 目录至少100G以上

  2. SELinux 关闭

  3. iPtables 关闭

  4. 禁用 Transparent Hugepage Compaction

  5. 设置 vm.swapiness 为 1

  6. 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 目录下(只能是该目录下),因为cdh5的源会默认在 /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.ini
server_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/cdh5/parcels/5.12.0/ ```

cd /opt/cloudera/parcel-repo curl -O http://fileserver.lan/CDH5/CDH5-5.12.0-1.cdh5.12.0.p0.29-el6.parcel curl -O http://fileserver.lan/CDH5/CDH5-5.12.0-1.cdh5.12.0.p0.29-el6.parcel.sha1 mv CDH5-5.12.0-1.cdh5.12.0.p0.29-el6.parcel.sha1 \ CDH5-5.12.0-1.cdh5.12.0.p0.29-el6.parcel.sha ``` 此处需要把对应 parcel 包的 sha1 文件改名为 CDH5-5.12.0-1.cdh5.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

同意相关条款 安装条款

选择相关服务版本 服务版本

该版本相关服务包及信息 software list

添加集群主机 select cluster node 此处有当前管理的主机(5) 表示 Agent 端注册到 Server 端正常。 如果此处只有一个选项,即 新主机 ,那么表示 Agent 注册不正常,请检查网络或服务是否正常。 None 你亦可以选择通过指定主机名或IP的方式连接远程节点。

选择主机 node list

选择集群安装的相关配套组件 parcel 包。 parcel info

开始集群内节点的 parcel 包部署 gif

此图最后的部署告警提示 cloudera-scm 用户未创建,确实是节点忘记创建,用户创建完毕后重新验证即可。

部署信息概览 parcel deploy infomation

安装 Hadoop 集群及相关组件

hadoop clusterCDH 官方有已经打包好的配套匹配方案,也可以自行搭配组件

此处暂且选择几个组件,包括 HBase、HDFS、YARN 和 Zookeeper (Kafka属于另外一个单独的parcel包提供,后面再单独安装) 60a4fcefgy1fj5tojt0saj20wl0man97.jpg

相关组件的配置参数 configure value

部署中....60a4fcefgy1fj5u2rdaadj20xp0jiwju.jpg

其中各相关服务组件在服务器文件系统中的安装路径如下 path

安装完成 installed

浏览 CDH Web 端相关布局

修改 NameNode 关于 Heapsize 大小的初始默认配置(推荐设置为 1-4G 大小) web interface修改配置后,需要重启服务,重启服务后稍等片刻,等待服务的相关附属子进程启动完毕,告警即消失。 (修改 NameNode 的 Heapsize 大小,当然也需要修改 SecondaryNameNode 的 Heapsize)

安装 Kafka 组件

配置并分配 Kafka parcel 包

在 Web 页面中,主机 -> Parcel 里面会列出当前集群以配置和分配的 parcel 包,目前只配置了 CDH5,Kafka 单独存在于其他 parcel 包中,所以需要单独加载 parcel ,然后分配到集群内各节点。 enter p_w_picpath description here

Cloudera官方Kafka组件的parcel包下载地址为:http://archive.cloudera.com/kafka/parcels/latest/ 照旧下载 percel 文件,以及该文件的 sha1 串,然后重命名 ***.sha1 为 ***.sha 方可。

下载好以上两个文件后,放到 cm-server 节点的 /opt/cloudera/parcel-repo/ 目录下 60a4fcefgy1fj5umj4pybj210h0jadlz.jpg无需重启 server 守护进程,在页面即可在线刷新、分配、激活。

集群内安装 Kafka 服务

install kafka service这里需要确认和修改 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 parcel

激活好 LZO 之后,有几个为之依赖的服务会提示重启载入新配置。 先别急重启,还有几个配置需要单独手动修改。

HDFS 相关 LZO 配置

hdfs lzo configure 将 io.compression.codecs 新增一行,填入 com.Hadoop.compression.lzo.LzopCodec 保存配置。

YARN 相关 LZO 配置

MapReduce1将 mapreduce.application.classpath 的属性值新增一行,填入 /opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*

mapreduce2 将 mapreduce.admin.user.env 的属性值,后补入 /opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/native

保存,重启相关依赖的服务即可。

相关服务最后预览

enter p_w_picpath description here