基于阿里云安装CDH6.3.2

第一章Cloudera Manager(CM)简介

1.1 CM简介

  Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

基于阿里云安装CDH6.3.2

1.2 CM架构 

基于阿里云安装CDH6.3.2

第二章 阿里云服务器准备

  本次我们选择使用阿里云服务器进行项目部署,以便于以后更好的适应云开发环境。

2.1 注册并登录阿里云账户

  阿里云网址为:https://aliyun.com/,注册账号并登录。 

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

2.2 购买ECS云服务器

  1)点击右上角控制台

基于阿里云安装CDH6.3.2

  2)打开侧边栏,点击云服务器ECS 

基于阿里云安装CDH6.3.2

  3)点击左侧实例,然后点击右上角创建实例

基于阿里云安装CDH6.3.2

  4)选择付费模式和地域可用区

    包年包月一般是企业中会使用。学习阶段可以选择按量付费或者抢占式实例。按量付费稍微贵一些,按照使用时长进行计费。抢占式实例有被释放的风险,但一般情况下不会出现,且抢占式实例远远低于前两种的价格,建议选择,但抢占式实例不能更改或升级实力规格。(后两种模式在停机不收费的情况下,公网IP可能会被收回,下次启动可能会改变,这里需要注意。)

基于阿里云安装CDH6.3.2

  5)选择服务器配置和系统(如果提示余额不足,请先充值并保证阿里云账户余额大于100元。)

 基于阿里云安装CDH6.3.2

  6)网络和安全组配置

    带宽我们选择按用量付费,并把带宽设置为100Mbps。完成后点击下一步:系统设置。

基于阿里云安装CDH6.3.2

  7)系统配置 

基于阿里云安装CDH6.3.2

  8)分组设置,全部使用默认即可,或根据业务需求分组或者分配标签。 

基于阿里云安装CDH6.3.2

  9)确认订单,创建实例

基于阿里云安装CDH6.3.2

  10)创建成功之后,点击管理控制台进入控制台管理界面

基于阿里云安装CDH6.3.2

2.3 ECS升级配置及安全组修改

  1)停止实例,勾选hadoop102,点击停止按钮

基于阿里云安装CDH6.3.2

  2)更改实例规格,可点击右上方进行实例状态刷新,等到hadoop102状态变为已停止后,点击更改实例规格

基于阿里云安装CDH6.3.2

  3)重启升级后的hadoop102,并更改网络安全组配置 

基于阿里云安装CDH6.3.2

  4)点击配置规则

基于阿里云安装CDH6.3.2

    CDH中需要放行的端口如下:

端口号

组件

备注

7180

CDH web UI

 

9870

HDFS web UI

 

8088

Yarn web UI

 

19888

Historyserver web UI

 

8080

 

 

8888

Hue(未优化)

 

8889

Hue(优化)

 

3306

MySQL

 

6379

Redis

 

9092

kafka

 

2181

zk

 

4040

Spark

 

18088

Spark

 

10000

Hiveserve2

 

10002

Hive

 

11000

Oozie

 

51000

Sentry

 

8020

HDFS

 

  可点击手动添加进行配置,也可使用文件进行导入,可使用该json文件进行导入:https://cdh-sgg.oss-cn-shenzhen.aliyuncs.com/fileshare/ecs_cn-shenzhen.json 

基于阿里云安装CDH6.3.2

  点击左侧安全组内实例列表,确保三个实例都在安全组内。如果没有在同一个安全组内,通过点击右上角批量导入实例进行添加

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

第三章 CM部署环境准备

3.1 shell工具连接服务器

  打开远程连接工具(如XshellFinalshell等)并连接至三个实例。我们在访问公网资源时候需要使用实例的公网IP

基于阿里云安装CDH6.3.2

  点击公网IP旁的复制按钮进行复制,并复制到远程连接工具的主机名处进行连接

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

  如下图,已经成功连接三台实例

基于阿里云安装CDH6.3.2

3.2 修改实例中hosts文件 

vim /etc/hosts
172.17.84.61    hadoop102       hadoop102
172.17.84.62    hadoop103       hadoop103
172.17.84.63    hadoop104       hadoop104

  注意:三个实例都需要配置,这里每个人的IP不一样,填写的是内网IP,做完后ping一下看是否能ping通,如果能ping通表示配置成功。(如果想要在Windows环境中使用hostname访问阿里云主机,需要配置Windows本地hosts

3.3 SSH免密登录

  配置hadoop102、hadoop103、hadoop104三台服务器免密登录。CDH服务开启与关闭是通过server和agent来完成的,所以这里不需要配置SSH免密登录,但是为了我们分发文件方便,在这里我们也配置SSH。

3.3.1生成公钥和私钥

  执行ssh-keygen -t rsa并敲三次回车,会在我们的/root/.ssh目录下生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

ssh-keygen -t rsa

基于阿里云安装CDH6.3.2

  由于Linux系统中名称首位为.的文件和文件夹会被隐藏,因此使用ll -a命令才可显式地看到".ssh"文件夹

基于阿里云安装CDH6.3.2

3.3.2拷贝公钥

  将公钥拷贝到要免密登录的目标机器上(需要输入yes和对应实例的root密码一共输入9遍)

[root@hadoop102 .ssh]# ssh-copy-id hadoop102
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host ‘hadoop102 (172.17.84.61)‘ can‘t be established.
ECDSA key fingerprint is SHA256:SeLIbTWo16rK/9sFijEhRUmAvvJJV3XOOU5nJh5cGiA.
ECDSA key fingerprint is MD5:bc:fd:55:d1:38:95:26:03:47:b4:c8:d8:46:ba:e8:be.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@hadoop102‘s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh ‘hadoop102‘"
and check to make sure that only the key(s) you wanted were added.
[root@hadoop102 .ssh]# ssh-copy-id hadoop103
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host ‘hadoop103 (172.17.84.62)‘ can‘t be established.
ECDSA key fingerprint is SHA256:F2xQpv+atNNuES8eUhgnPkEDWltgWhPFOmNzkmIFwDY.
ECDSA key fingerprint is MD5:1a:8f:a1:51:00:3f:6b:92:3f:35:a0:16:28:d5:3b:f2.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@hadoop103‘s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh ‘hadoop103‘"
and check to make sure that only the key(s) you wanted were added.
[root@hadoop102 .ssh]# ssh-copy-id hadoop104
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host ‘hadoop104 (172.17.84.63)‘ can‘t be established.
ECDSA key fingerprint is SHA256:jHmx2MOSM11uh9H1miowKwdmpvVubYo6U0h5UugRjY4.
ECDSA key fingerprint is MD5:dd:87:aa:6f:19:33:81:40:2b:88:ef:c7:0d:4d:82:2b.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@hadoop104‘s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh ‘hadoop104‘"
and check to make sure that only the key(s) you wanted were added.

3.3.3配置所有免密登录

  重复12的操作,配置hadoop103和hadoop104hadoop102hadoop103hadoop104三台服务器免密登录。

3.4 集群同步脚本

  1)/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下:

mkdir bin
cd bin/
vim xsync
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4. 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

  2)修改脚本xsync具有执行权限

chmod u+x xsync

  3)分发脚本本身

xsync xsync

3.5 集群整体操作脚本

  1)/root/bin目录下创建脚本xcall.sh

vim xcall.sh

  2)在脚本中编写如下内容

#! /bin/bash

for i in hadoop102 hadoop103 hadoop104
do
        echo --------- $i ----------
        ssh $i "$*"
done

  3)修改脚本执行权限

chmod u+x xcall.sh

  4)将/etc/profile文件追加到~/.bashrc后面

    修改.bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了

    登陆 linux 启动 bash时首先会去读取 ~/.bash_profile文件,在.bash_profile文件中会显式调用.bashrc,这样 ~/.bashrc也就得到执行了。(这里请不要用xcall.sh 脚本去执行,分别手动进行执行,不然会出错

[root@hadoop102 ~]# cat /etc/profile >> ~/.bashrc
[root@hadoop103 ~]# cat /etc/profile >> ~/.bashrc
[root@hadoop104 ~]# cat /etc/profile >> ~/.bashrc

  5)分发xcall.sh

xsync /root/bin/xcall.sh

  6)测试

xcall.sh jps

基于阿里云安装CDH6.3.2

3.6 检查防火墙是否关闭

  6.3.x 官方部署文档(英文):https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/installation_reqts.html

  如果已经关闭,则进行下一步;如果未关闭,则先备份当前防火墙规则并关闭防火墙

[root@hadoop102 bin]# sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

  此处是防火墙未关闭的情况需要执行的命令

# 保存当前防火墙规则
sudo iptables-save > ~/firewall.rules
# 禁用防火墙
sudo systemctl disable firewalld
# 停止防火墙
sudo systemctl stop firewalld

3.7 检查hostname是否配置成功

  # 使用命令 hostname 或者 hostnamectl status进行查看

[root@hadoop102 bin]# hostname
hadoop102
[root@hadoop102 bin]# hostnamectl status
   Static hostname: hadoop102
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 20210623111207095151419199170789
           Boot ID: 0088c360a7414da9a73db12a3dcfb950
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1160.31.1.el7.x86_64
      Architecture: x86-64

3.8 禁用SELinux mode

  安全增强的Linux (SELinux)允许通过策略设置访问控制。如果在部署CDH时遇到困难,请在将CDH部署到集群之前,在每个主机上将SELinux设置为permissive模式。(关于什么是SELinux,不是课程重点,感兴趣的同学可以自行查询。这里只需要按照下面命令进行配置,即可在后面环境检查时候顺利通过。)

  # 使用命令getenforce检查当前SELinux mode状态

[root@hadoop102 bin]# getenforce
Disabled

  如果输出结果为Permissive Disabled,则可进行3.9中的操作。

  如果输出结果为enforcing,则需要:

  1)打开/etc/selinux/config文件

  2)将SELINUX= enforcing这一行改为SELINUX= permissive

  3)保存并关闭文件

  4)重新启动系统或运行setenforce 0命令来立即禁用SELinux

3.9 禁用透明大页配置

  Cloudera公司建议我们关闭透明大页。如果未关闭,则在后面的环境检测中会报如下错误。(关于什么是透明大页,不是课程重点,感兴趣的同学可以自行查询。这里只需要按照下面命令进行配置,即可在后面环境检查时候顺利通过。)

基于阿里云安装CDH6.3.2

  1)三台实例上分别执行以下四行代码

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/defrag‘ >> /etc/rc.local
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled‘ >> /etc/rc.local

  2)前两行代码只能暂时生效,当重启后配置会消失

[root@hadoop102 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@hadoop102 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

  3)永久生效需要把信息加到启动项中

[root@hadoop102 ~]# echo ‘echo never > /sys/kernel/mm/transparent_hugepage/defrag‘ >> /etc/rc.local
[root@hadoop102 ~]# echo ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled‘ >> /etc/rc.local

3.10 启用NTP服务可选

  CDH要求在集群中的每台机器上配置一个网络时间协议(NTP)服务。大多数操作系统使用时间同步的ntpd服务。(RHEL 7兼容的操作系统默认使用chronyd而不是ntpd。如果chronyd正在运行,Cloudera Manager将使用它来确定主机时钟是否同步。否则,Cloudera Manager使用ntpd。)

[root@hadoop102 bin]# ps -ef |grep chronyd
chrony     570     1  0 15:51 ?        00:00:00 /usr/sbin/chronyd
root      1744  1303  0 17:01 pts/0    00:00:00 grep --color=auto chronyd

  我们使用的阿里云实例,已经运行了chronyd。且阿里云自动会同步时间,所以如果在阿里云上部署的话,这一步同步时间操作可以跳过

3.11 hue安装python2.7服务

  CentOS 7版本可跳过,我们使用的是CentOS 7,使用命令可观察当前的python版本。

[root@hadoop102 bin]# python --version
Python 2.7.5

3.12 【了解】CDH平台权限与命令概览

任务

需要的权限

安装Cloudera Manager Server

安装CM Server的主机需要有root or sudo权限。

 

使用servicesystemctl工具启动、停止或重新启动Cloudera Manager服务器

 

 

Cloudera Manager Server 的主机需要有root or sudo权限 默认情况下服务运行在cloudera-scm用户下

 

使用CM安装CDH组件

Cloudera Manager初始安装时配置的如下之一:
有密码或者ssh秘钥的方式访问root用户的权限
为特定用户提供无密码的sudo访问.
对于此任务,不支持使用另一个提供rootsudo访问的系统(例如PowerBroker)

 

使用CM安装CM Agent

 Cloudera Manager初始安装时配置的如下之一:

有密码或者ssh秘钥的方式访问root用户的权限
为特定用户提供无密码的sudo访问.
对于此任务,不支持使用另一个提供rootsudo访问的系统(例如PowerBroker)

自动启动CM Agent进程

在运行时访问root帐户,通过以下场景之一:
Cloudera ManagerCDH安装期间,如果安装成功,代理将自动启动。然后使用以下其中一种启动它,这与Cloudera Manager初始安装期间的配置相同:
有密码或者ssh秘钥的方式访问root用户的权限
为特定用户提供无密码的sudo访问.
对于此任务,不支持使用另一个提供rootsudo访问的系统(例如PowerBroker)
在系统启动过程中使用init自动启动。

手动启动、停止或重新启动Cloudera Manager Agent进程

root or sudo 权限。
这个权限要求确保Cloudera Manager代理管理的服务可以作为适当的用户运行(例如hdfs服务的hdfs用户)。在CDH服务的Cloudera Manager中运行命令不需要rootsudo访问,因为操作是由Cloudera Manager Agent处理的,它已经作为root在运行了。

  如果您想为Cloudera Manager用户配置特定的sudo访问(默认情况下是Cloudera -scm),您可以使用以下列表来完成,Cloudera Manager运行的sudo命令有:

yum (RHEL/CentOS/Oracle)
zypper (SLES)
apt-get (Ubuntu)
apt-key (Ubuntu)
sed
service
/sbin/chkconfig (RHEL/CentOS/Oracle)
/usr/sbin/update-rc.d (Ubuntu)
id
rm
mv
chown
install

 

3.13 【了解】CDH平台使用的端口概览

  1)Cloudera ManagerCloudera Navigator使用的端口

基于阿里云安装CDH6.3.2

  2)点对点包裹分发中使用的端口

基于阿里云安装CDH6.3.2

  3)外部端口

组件

服务

端口

配置

说明

Cloudera Manager Server

HTTP (Web UI)

7180

管理 > 设置 > 类别 > 端口和地址 > HTTP 端口的管理控制台

web 控制台使用的 HTTP 端口。

 

HTTPS (Web UI)

7183

管理 > 设置 > 类别 > 端口和地址 > HTTPS 管理控制台端口

如果启用了 HTTPS,则 web 控制台使用的端口。如果启用,端口 7180 将保持打开,但是将所有请求重定向到端口 7183 上的 HTTPS。

Cloudera Navigator Metadata Server

HTTP (Web UI)

7187

Cloudera Management Service > 配置 > 类别 > 端口和地址 > 导航器元数据服务器端口

Navigator 元数据服务器侦听请求的端口。

Backup and Disaster Recovery

HTTP (Web UI)

7180

管理 > 设置 > 类别 > 端口和地址 > Admin Console 的 HTTP 端口

用于与 Cloudera Manager 通信

 

HTTPS (Web UI)

7183

管理 > 设置 > 类别 > 端口和地址 > Admin Console 的 HTTPS 端口

在启用 https 时,用于与 Cloudera Manager 通信

 

HDFS NameNode

8020

HDFS 服务 > 配置 > 类 > 端口和地址 > NameNode 端口

HDFS 和 Hive/Impala 复制: 从目标 HDFS 和 MapReduce 主机到源 HDFS NameNode(s) 的通信。Hive/Impala 复制: 从源 Hive 主机到目标 HDFS NameNode(s) 的通信

 

HDFS DataNode

50010

HDFS 服务 > 配置 > 类 > 端口和地址 > DataNode 收发器端口

HDFS 和 Hive/Impala 复制: 从目标 HDFS 和 MapReduce 主机到源 HDFS DataNode(s) 的通信。Hive/Impala 复制: 从源 Hive 主机到目标 HDFS DataNode(s) 的通信。

Telemetry Publisher(??)

HTTP

10110

集群 > Cloudera Management Service > 类别 > 端口和地址 > Telemetry Publisher Server Port

遥测发布服务器侦听请求的端口

Telemetry Publisher

HTTP (Debug)

10111

集群 > Cloudera Management Service > 类别 > 端口和地址 > Telemetry Publisher Web UI Port

遥测发布者启动调试 web 服务器的端口。设置为 - 1 以禁用调试服务器

  4)内部端口

组件

服务

端口

配置

描述

Cloudera Manager Server

Avro (RPC)

7182

管理 > 设置 > 类 > 端口和地址 > 连接到服务器的代理端口

用于代理服务器心跳

 

嵌入式 PostgreSQL 数据库

7432

 

可选的嵌入式 PostgreSQL 数据库,用于存储 Cloudera Manager 服务器的配置信息。

 

点对点包裹分布

7190, 7191

主机 > 所有主机 > 配置 > P2P Parcel 分配端口

用于在安装和升级操作期间向集群主机分发包。

Cloudera Manager Agent
监听端口

Custom protocol

9000

/etc/cloudera-scm-agent/config.ini

用于检索日志和诊断信息,如结果摘要。已完成命令的 json 文件。还用于从代理请求即时心跳并查看代理状态,如心跳、主机和服务信息。

Event Server

Custom protocol

7184

Cloudera Management Service > 配置 > 类别 > 端口和地址 > 事件发布端口

事件服务器侦听事件发布的端口。

 

Custom protocol

7185

Cloudera Management Service > 配置 > 类别 > 端口和地址 > 事件查询端口

事件服务器侦听事件查询的端口。

 

HTTP (Debug)

8084

Cloudera Management Service > 配置 > 类别 > 端口和地址 > Event Server Web UI 端口

事件服务器调试页面的端口。设置为 - 1 以禁用调试服务器。

警报发布

Custom protocol

10101

Cloudera Management Service> 配置 > 类别 > 端口和地址 > 警报:侦听端口

警报发布者侦听内部 API 请求的端口。

服务监控

HTTP (Debug)

8086

Cloudera Management Service> 配置 > 类别 > 端口和地址 >Service Monitor Web UI 端口

服务监视器调试页面的端口。设置为 - 1 以禁用调试服务器。

 

HTTPS (Debug)

 

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Service Monitor Web UI HTTPS Port

服务监视器的 HTTPS 调试页面的端口。

 

Custom protocol

9997

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Service Monitor 侦听端口

服务监视器监听代理消息的端口。

 

Internal query API (Avro)

9996

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Service Monitor 喷嘴端口

服务监视器的查询 API 公开的端口。

Activity Monitor

HTTP (Debug)

8087

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Activity Monitor Web UI 端口

活动监视器调试页的端口。设置为 - 1 以禁用调试服务器。

 

HTTPS (Debug)

 

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Activity Monitor Web UI HTTPS Port

活动监视器的 HTTPS 调试页面的端口。

 

Custom protocol

9999

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Activity Monitor 侦听端口

活动监视器侦听代理消息的端口。

 

Internal query API (Avro)

9998

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Activity Monitor 喷嘴端口

活动监视器的查询 API 公开的端口。

Host Monitor

HTTP (Debug)

8091

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Host Monitor Web UI 端口

主机监视器调试页的端口。设置为 - 1 以禁用调试服务器。

 

Custom protocol

9995

Cloudera Management Service> 配置 > 类别 > 端口和地址 >Host Monitor 侦听端口

主机监视器监听代理消息的端口。

 

Internal query API (Avro)

9994

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Host Monitor 喷嘴端口

主机监视器的查询 API 公开的端口。

Reports Manager

Queries (Thrift)

5678

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Reports Manager Server Port

报告管理器侦听请求的端口。

 

HTTP (Debug)

8083

Cloudera Management Service> 配置 > 类别 > 端口和地址 > Reports Manager Web UI Port

报告管理器启动调试 web 服务器的端口。设置为 - 1 以禁用调试服务器。

Cloudera Navigator 审计服务

HTTP

7186

Cloudera Management Service> 配置 > 类别 > 端口和地址 >Navigator Audit Server Port

导航器审计服务器侦听请求的端口。

 

HTTP (Debug)

8089

Cloudera Management Service> 配置 > 类别 > 端口和地址 >Navigator Audit Server Web UI Port

导航器审计服务器运行调试 web 服务器的端口。设置为 - 1 以禁用调试服务器。

  5)CDH 组件使用的外部端口

组件

服务

端口

配置

说明

Apache Hadoop HDFS

DataNode

9866

dfs.datanode.address

DataNode HTTP 服务器端口

 

 

1004

dfs.datanode.address

 

 

 

9864

dfs.datanode.http.address

 

 

 

9865

dfs.datanode.https.address

 

 

 

1006

dfs.datanode.http.address

 

 

 

9867

dfs.datanode.ipc.address

 

 

NameNode

8020

fs.default.name or fs.defaultFS

已不推荐使用fs.default.nameis(但仍然可以使用)

 

 

8022

dfs.namenode. servicerpc-address

HDFS 守护进程使用的可选端口,以避免共享客户端使用的 RPC 端口 (8020)。Cloudera 建议使用端口 8022。

 

 

9870

dfs.http.address or dfs.namenode.http-address

dfs.http.address 不推荐使用 (但仍然有效)

 

NFS gateway

2049

nfs3.server.port

nfs port

 

 

4242

nfs3.mountd.port

mountd port

 

 

111

 

端口映射(或 Rpcbind)端口

 

 

50079

nfs.http.port

NFS 网关守护进程使用这个端口来服务指标。该端口在版本 5.10 或更高版本上是可配置的。

 

 

50579

nfs.https.port

NFS 网关守护进程使用这个端口来服务指标。该端口在版本 5.10 或更高版本上是可配置的。

 

HttpFS

14000

 

 

 

 

14001

 

 

Apache Hadoop YARN (MRv2)

ResourceManager

8032

yarn. resourcemanager. address

 

 

 

8033

yarn. resourcemanager. admin.address

 

 

 

8088

yarn. resourcemanager. webapp.address

 

 

 

8090

yarn. resourcemanager. webapp.https.address

 

 

NodeManager

8042

yarn. nodemanager. webapp.address

 

 

 

8044

yarn. nodemanager. webapp.https.address

 

 

JobHistory Server

19888

mapreduce. jobhistory. webapp.address

 

 

 

19890

mapreduce. jobhistory. webapp.https.address

 

 

ApplicationMaster

 

 

ApplicationMaster 使用无法限制的临时端口提供 HTTP 服务。客户端永远不会从集群外部直接访问此端口。对 ApplicationMaster web 服务器的所有请求都使用 YARN ResourceManager(代理服务) 路由。锁定对集群网络内临时端口范围的访问可能会限制您对 ApplicationMaster UI 及其日志的访问,以及查看正在运行的应用程序的能力。

Apache Flume

Flume Agent

41414

 

 

Apache Hadoop KMS

Key Management Server

16000

kms_http_port

适用于 Java 密钥存储库 KMS 和密钥受信者 KMS。

Apache HBase

Master

16000

hbase.master. port

IPC

 

 

16010

hbase.master. info.port

HTTP

 

RegionServer

16020

hbase. regionserver. port

IPC

 

 

6030

hbase. regionserver. info.port

HTTP

 

REST

20550

hbase.rest.port

HBase 中的默认 REST 端口是 8080。因为这是一个常用的端口,Cloudera Manager 将默认值设置为 20550。

 

REST UI

8085

 

 

 

Thrift Server

9090

Pass -p on CLI

 

 

Thrift Server

9095

 

 

 

 

9090

Pass --port on CLI

 

 

Lily HBase Indexer

11060

 

 

Apache Hive

Metastore

9083

 

 

 

HiveServer2

10000

hive. server2. thrift.port

Beeline 命令解释器要求您在命令行上指定此端口。如果使用 Oracle 数据库,则必须手动保留此端口。有关更多信息,请参见HiveServer 2 的预留端口

 

HiveServer2 Web User Interface (UI)

10002

hive. server2. webui.port in hive-site.xml

 

 

WebHCat Server

50111

templeton.port

 

Apache Hue

Server

8888

 

 

 

Load Balancer

8889

 

 

Apache Impala

Impala Daemon

21000

 

用于通过impala-shell和 Cloudera ODBC 驱动程序的 1.2 版传输命令和接收结果。

 

 

21050

 

用于通过应用程序 (如商业智能工具) 传输命令和接收结果,使用 JDBC、Hue 中的 Beeswax 查询编辑器和 Cloudera ODBC 驱动程序的 2.0 或更高版本。

 

 

25000

 

用于管理员监视和故障排除的 Impala web 接口。

Apache Kafka

Broker

9092

port

生产者和消费者使用的主要通信端口; 也用于内部节点间通信。

 

 

9093

ssl_port

生产者和消费者使用的受保护的通信端口; 也用于节点间通信。

Apache Kudu

Master

7051

 

Kudu Master RPC port

 

 

8051

 

Kudu Master HTTP server port

 

TabletServer

7050

 

Kudu TabletServer RPC port

 

 

8050

 

Kudu TabletServer HTTP server port

Apache Oozie

Oozie Server

11000

OOZIE_HTTP_PORT in oozie-env.sh

HTTP

 

 

11443

 

HTTPS

Apache Sentry

Sentry Server

8038

sentry.service. server.rpc-port

 

 

 

51000

sentry.service. web.port

 

Apache Solr

Solr Server

8983

 

HTTP 端口的所有 solr 具体的行动,更新 / 查询。

 

 

8985

 

用于所有特定于 solr 的操作、更新 / 查询的 HTTPS 端口。

Apache Spark

Default Master RPC port

7077

 

 

 

Default Worker RPC port

7078

 

 

 

Default Master web UI port

18080

 

 

 

Default Worker web UI port

18081

 

 

 

History Server

18088

history.port

 

Apache Sqoop

Metastore

16000

sqoop. metastore. server.port

 

Apache ZooKeeper

Server (with CDH or Cloudera Manager)

2181

clientPort

Client port

  6)CDH组件使用的内部端口

组件

服务

端口

配置

说明

Apache Hadoop HDFS

Secondary NameNode

9868

dfs.secondary.http.address or dfs.namenode. secondary. http-address

dfs.secondary.http.address 不推荐使用 (但是依然有效)

 

 

9869

dfs.secondary.https.address

 

 

JournalNode

8485

dfs.namenode. shared.edits.dir

 

 

 

8480

dfs.journalnode. http-address

 

 

 

8481

dfs.journalnode. https-address

 

 

Failover Controller

8019

 

用于 NameNode HA

Apache Hadoop YARN (MRv2)

ResourceManager

8030

yarn.resourcemanager.scheduler.address

 

 

 

8031

yarn. resourcemanager. resource-tracker. address

 

 

NodeManager

8040

yarn. nodemanager. localizer. address

 

 

 

8041

yarn. nodemanager. address

 

 

JobHistory Server

10020

mapreduce. jobhistory. address

 

 

 

10033

mapreduce. jobhistory.admin. address

 

 

Shuffle HTTP

13562

mapreduce.shuffle.port

 

Apache Hadoop KMS

Key Management Server

16001

kms_admin_port

适用于 Java 密钥存储库 KMS 和密钥受信者 KMS。

Apache HBase

HQuorumPeer

2181

hbase. zookeeper. property. clientPort

HBase-managed 管理员模式

 

 

2888

hbase. zookeeper. peerport

HBase-managed 管理员模式

 

 

3888

hbase. zookeeper. leaderport

HBase-managed 管理员模式

Apache Impala

Impala Daemon

22000

 

内部使用。Impala 守护进程使用这个端口互相通信。

 

 

23000

 

内部使用。Impala 守护进程在这个端口上侦听来自 statestore 守护进程的更新。

 

StateStore Daemon

24000

 

内部使用。statestore 守护进程在这个端口上侦听注册 / 取消注册请求。

 

Catalog Daemon

23020

 

内部使用。目录守护进程在此端口上侦听来自 statestore 守护进程的更新。

 

 

26000

 

内部使用。目录服务使用这个端口与 Impala 守护进程通信。

Apache Kafka

Broker

9092

port

生产者和消费者使用的主要通信端口; 也用于代理间通信。ion.

 

 

9093

ssl_port

生产者和消费者使用的受保护的通信端口; 也用于代理间通信。

 

 

9393

jmx_port

内部使用。用于通过 JMX 进行管理。

 

 

9394

kafka.http.metrics.port

内部使用。这是 HTTP 度量报告器侦听的端口。它用于通过 HTTP 而不是 JMX 检索指标。

 

MirrorMaker

24042

jmx_port

内部使用。用于管理镜子制造商的生产者和消费者。

Apache Spark

Shuffle service

7337

 

 

Apache ZooKeeper

Server (with CDH only)

2888

X in server.N =host:X:Y

Peer

 

Server (with CDH only)

3888

X in server.N =host:X:Y

Peer

 

Server (with CDH and Cloudera Manager)

3181

X in server.N =host:X:Y

Peer

 

Server (with CDH and Cloudera Manager)

4181

X in server.N =host:X:Y

Peer

 

ZooKeeper JMX port

9010

 

ZooKeeper 还将为 RMI 使用另一个随机选择的端口。要允许 Cloudera 管理员监视 ZooKeeper,您必须执行以下操作之一:

  7)DistCp 使用的端口

 

组件

服务

Qualifier

端口

外 / 内部

配置

说明

Hadoop HDFS

NameNode

 

8020

External

fs.default. nameorfs.defaultFS

fs.default. name被弃用了(但还是有作用)

 

DataNode

Secure

1004

External

dfs.datanode. address

 

 

DataNode

 

50010

External

dfs.datanode. address

 

WebHDFS

NameNode

 

50070

External

dfs.http. addressordfs.namenode. http-address

dfs.http. address被弃用了(但还是有作用)

 

DataNode

Secure

1006

External

dfs.datanode.http. address

 

HttpFS

web

 

14000

 

 

 

  8)第三方组件使用的端口

组件

服务

Qualifier

端口

协议

外 / 内部

配置

说明

Ganglia

ganglia-gmond

 

8649

UDP/TCP

Internal

 

 

 

ganglia-web

 

80

TCP

External

Via Apachehttpd

 

Kerberos

KRB5 KDC Server

Secure

88

UDP/TCP

External

kdc_portsandkdc_tcp_portsin either the[kdcdefaults]or[realms]sections ofkdc.conf

By default only UDP

 

KRB5 Admin Server

Secure

749

TCP

External

kadmind_portin the[realms]section ofkdc.conf

 

 

kpasswd

 

464

UDP/TCP

External

 

 

SSH

ssh

 

22

TCP

External

 

 

PostgreSQL

 

 

5432

TCP

Internal

 

 

MariaDB

 

 

3306

TCP

Internal

 

 

MySQL

 

 

3306

TCP

Internal

 

 

LDAP

LDAP Server

 

389

TCP

External

 

 

 

LDAP Server over TLS/SSL

TLS/SSL

636

TCP

External

 

 

 

Global Catalog

 

3268

TCP

External

 

 

 

Global Catalog over TLS/SSL

TLS/SSL

3269

TCP

External

 

 

3.14 创建本地yum

3.14.1 httpd服务安装

  1)创建本地yum源需要指定一台主机提供http服务,所以我们在hadoop102上安装httpd

yum -y install httpd

  2)安装完成后,检查httpd服务状态

systemctl status httpd

基于阿里云安装CDH6.3.2

  3)通过systemctl start httpdhttpd服务

systemctl start httpd
systemctl status httpd

基于阿里云安装CDH6.3.2

  4)设置开机自启

systemctl enable httpd.service

3.14.2 yum源工具安装

  需要使用yum-utilscreaterepo来创建yum

yum -y install yum-utils createrepo

3.14.3导入cm资源包

  1)创建/var/www/html/cm文件夹

[root@hadoop102 ~]# cd /var/www/html/
[root@hadoop102 html]# mkdir cm

  2)将资料包中cm文件夹下的文件放入/var/www/html/cm文件夹中资料包较大,如果是购买了深圳地区服务器的同学可通过以下命令进行文件的导入,该方法使用内网传输,速度较快且不耗费外部流量如果非深圳区域的服务器,请手动上传cm文件夹下的全部文件到/var/www/html/cm目录下

mkdir /root/shells
cd /root/shells
yum install -y wget && wget -P /root/shells/ -v https://cdh-sgg.oss-cn-shenzhen.aliyuncs.com/script/get_cm_from_shenzhenoss_internal.sh
bash /root/shells/get_cm_from_shenzhenoss_internal.sh

3.14.4创建repo

  1)使用createrepo命令创建本地yum

createrepo /var/www/html/cm/

  2)/etc/yum.repos.d/文件夹下创建新的yum repo文件这是为了告诉Linux我们自己添加的yum源的位置信息),配置了hosts文件的情况下我们可以直接使用hadoop102作为域名访问

vim /etc/yum.repos.d/cloudera-manager.repo
#把下面五行代码写入repo文件中
[cloudera-manager]
name=Cloudera Manager, Version yum
baseurl=http://hadoop102/cm
gpgcheck=0
enabled=1

3.14.5清除缓存并建立新的元数据缓存

  1)清理缓存

yum clean all

  2)建立元数据缓存

yum makecache

  3)验证源是否配置生效

yum list | grep cloudera-manager

基于阿里云安装CDH6.3.2

  4)或者浏览器输入以下网址进行访问:http://47.107.113.119/cm

基于阿里云安装CDH6.3.2

  5)如果能够访问到web页面(如上图),表示本地yum源创建成功。在其他两个节点同样执行建立元数据缓存的命令,并验证是否配置成功。

#先在Hadoop102上分发配置
xsync /etc/yum.repos.d/cloudera-manager.repo
yum clean all
yum makecache

  6)验证源是否配置生效

yum list | grep cloudera-manager

第四章 CM及依赖组件安装

4.1 安装java

  1)在三台节点上执行java的安装,可以使用yum的方式进行安装

xcall.sh yum -y install oracle-j2sdk1.8.x86_64

  2)配置java的环境变量,因为我们在上面已经把/etc/profile中的内容追加到/root/.bashrc中,所以我们现在只需要配置/root/.bashrc文件即可。

vim /root/bin/setjavahome.sh
sed -i ‘$a\# JAVA_HOME‘ /root/.bashrc
sed -i ‘$a\export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera‘ /root/.bashrc
sed -i ‘$a\export PATH=$JAVA_HOME/bin:$PATH‘ /root/.bashrc
sed -i ‘$a\export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar‘ /root/.bashrc
xsync /root/bin/setjavahome.sh

  3)在三台上同时执行添加环境变量的和同步环境变量的操作

xcall.sh  bash /root/bin/setjavahome.sh && source /root/.bashrc

  4)验证java是否安装成功

xcall.sh java -version

基于阿里云安装CDH6.3.2

4.2 安装MySQL(使用官方方法安装)

4.2.1使用rpm的方式进行安装

wget -v http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum -y update
sudo yum -y install mysql-server
sudo systemctl start mysqld
sudo systemctl stop mysqld 

4.2.2InnoDB log files做备份

mkdir /root/backup/
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile1 /root/backup/

4.2.3修改/etc/my.cnf文件

  下面的配置是cloudera公司推荐的配置,可根据自己的生产实际情况进行调整。(注意:如果使用vim编辑器粘贴,则会出现#号问题,建议使用外部编辑器进行编辑!也可以使用:set paste编辑

vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# To prevent deadlocks, set the isolation level to READ-COMMITTED.
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0

key_buffer_size = 32M
max_allowed_packet = 16M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

#Allow 100 maximum connections for each database and then add 50 extra connections. For example, for two databases, set the maximum connections to 250. If you store five databases on one host (the databases for Cloudera Manager Server, Activity Monitor, Reports Manager, Cloudera Navigator, and Hive metastore), set the maximum connections to 550.
max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace ‘/var/lib/mysql/mysql_binary_log‘ with an appropriate path for your
#system and chown the specified folder to the mysql user.
#如果需要替换mysql的log文件存放位置,需要此处拥有足够的空间并且把文件夹的属主改为mysql用户
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
#The default settings in the MySQL installations in most distributions use conservative buffer sizes and memory usage. Cloudera Management Service roles need high write throughput because they might insert many records in the database. Cloudera recommends that you set the innodb_flush_method property to O_DIRECT.
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES

4.2.4初始化MySQL

  1)配置my.cnf完成后,启动MySQL

  需要注意:

    (1)因为当前无密码,所以启动时候直接回车。

    (2)Disallow root login remotely?选项需要输入N,这样root用户才能远程访问。

sudo systemctl enable mysqld
sudo systemctl start mysqld
sudo /usr/bin/mysql_secure_installation

  2)这里需要配置密码,密码可以为简单密码,例如123456

Enter current password for root (enter for none):(这里需要直接回车)
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:(这里输入自定义的密码)
Re-enter new password:(这里输入自定义的密码)
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
All done!

  3)将JDBC的jar包放入/usr/share/java/文件夹中

mkdir -p /usr/share/java/
cd /usr/share/java/
wget https://cdh-sgg.oss-cn-shenzhen.aliyuncs.com/fileshare/mysql-connector-java-5.1.46-bin.jar
mv mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar

  4)创建各用户数据库(注意hive的数据库叫metastore)

Service

Database

User

Cloudera Manager Server

scm

scm

Activity Monitor

amon

amon

Reports Manager

rman

rman

Hue

hue

hue

Hive Metastore Server

metastore

hive

Sentry Server

sentry

sentry

Cloudera Navigator Audit Server

nav

nav

Cloudera Navigator Metadata Server

navms

navms

Oozie

oozie

oozie

  5)进入MySQL客户端

mysql -u root -p
# 建表及修改权限的格式:
CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON <database>.* TO ‘<user>‘@‘%‘ IDENTIFIED BY ‘<password>‘;

  6)以下是需要执行的SQL语句,替换之后需要执行的SQL为

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO ‘scm‘@‘%‘ IDENTIFIED BY ‘scm‘;
GRANT ALL ON amon.* TO ‘amon‘@‘%‘ IDENTIFIED BY ‘amon‘;
GRANT ALL ON rman.* TO ‘rman‘@‘%‘ IDENTIFIED BY ‘rman‘;
GRANT ALL ON hue.* TO ‘hue‘@‘%‘ IDENTIFIED BY ‘hue‘;
GRANT ALL ON metastore.* TO ‘hive‘@‘%‘ IDENTIFIED BY ‘hive‘;
GRANT ALL ON sentry.* TO ‘sentry‘@‘%‘ IDENTIFIED BY ‘sentry‘;
GRANT ALL ON nav.* TO ‘nav‘@‘%‘ IDENTIFIED BY ‘nav‘;
GRANT ALL ON navms.* TO ‘navms‘@‘%‘ IDENTIFIED BY ‘navms‘;
GRANT ALL ON oozie.* TO ‘oozie‘@‘%‘ IDENTIFIED BY ‘oozie‘;

  7)注意此处再授权一个本主机名地址,不然web页面配置很容易出错,注意修改本地主机名hostname

GRANT ALL ON amon.* TO ‘amon‘@‘hadoop102‘ IDENTIFIED BY ‘amon‘;
FLUSH PRIVILEGES;
show grants for ‘amon‘@‘%‘;  
show grants for ‘rman‘@‘%‘;  
show grants for ‘hive‘@‘%‘;
show grants for ‘hue‘@‘%‘;
show grants for ‘oozie‘@‘%‘;

  8)退出

quit

  9)重启

systemctl restart mysql.service

4.3 通过yum安装daemonsagentserver

  hadoop102需要安装daemons,agent,serverhadoop103和hadoop104仅需要安装daemonsagent

  1)主节点hadoop102

yum list | grep cloudera-manager
yum -y  install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

  2)从节点hadoop103 hadoop104

yum list | grep cloudera-manager
yum -y  install cloudera-manager-daemons cloudera-manager-agent

  3)为scm数据库创建表,密码为scm(当我们看到All done,表示目前scm数据库已经被正确配置)

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

基于阿里云安装CDH6.3.2

4.4 配置本地Parcel存储库

  1)服务器购买在深圳的同学可通过以下代码进行文件读取。服务器未在深圳的同学则需要手动上传4个文件到/opt/cloudera/parcel-repo/之中这个文件夹是刚才安装cm之后自动生成的

基于阿里云安装CDH6.3.2

  2)服务器在深圳的同学可以执行此wget命令

wget -P /opt/cloudera/parcel-repo/ -v https://cdh-sgg.oss-cn-shenzhen.aliyuncs.com/cdh6.3.2/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
wget -P /opt/cloudera/parcel-repo/ -v https://cdh-sgg.oss-cn-shenzhen.aliyuncs.com/cdh6.3.2/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
wget -P /opt/cloudera/parcel-repo/ -v https://cdh-sgg.oss-cn-shenzhen.aliyuncs.com/cdh6.3.2/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
wget -P /opt/cloudera/parcel-repo/ -v https://cdh-sgg.oss-cn-shenzhen.aliyuncs.com/cdh6.3.2/manifest.json
cp /opt/cloudera/parcel-repo/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1  /opt/cloudera/parcel-repo/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
sudo chmod u+x /opt/cloudera/parcel-repo/*

4.5 启动cloudera-scm-server

#启动
systemctl start cloudera-scm-server
#重启命令为:
systemctl restart cloudera-scm-server
#可以用下面命令查看server的信息
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
#另开启一个窗口,监控日志中是否提示启动成功
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log|grep "Started Jetty server"
# 也可以用下面命令查看端口号占用情况
netstat -tunlp | grep 7180
# 当你看到以下信息时候 证明启动成功
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

  下面可能会出现报错信息,这个是因为2021CDH,此时登录网页:http://你的hadoop102IP地址:7180,就能访问CDH集群;默认的用户名:admin;默认的密码为:admin

  访问:http://47.107.113.119:7180

基于阿里云安装CDH6.3.2

第五章 CM集群部署

5.1 进入CM欢迎界面

  点击继续

基于阿里云安装CDH6.3.2

5.2 勾选条款协议

  点击继续

基于阿里云安装CDH6.3.2

5.3 选择免费版本进行部署

基于阿里云安装CDH6.3.2

5.4 进入cluster部署欢迎界面

  点击继续

基于阿里云安装CDH6.3.2

5.5 为集群命名 

基于阿里云安装CDH6.3.2

5.6 指定集群中的主机 

基于阿里云安装CDH6.3.2

5.7 填写cm库地址及选择CDH parcel

基于阿里云安装CDH6.3.2

5.8 JDK安装

  我们之前安装过了可以跳过

基于阿里云安装CDH6.3.2

5.9 输入root用户的密码 

基于阿里云安装CDH6.3.2

5.10 显示正在部署安装,页面暂时不可点击

基于阿里云安装CDH6.3.2

5.11 分发parcel并进入节点自动化部署

基于阿里云安装CDH6.3.2

5.12 进入环境检查页面

  点击两个检查按钮,CM会对整个集群的环境做最后的检测。第一个检查是检测集群之间的通信是否正常,如果为绿色,则为通过检查。第二个检查是检测集群的环境是否配置正常,如果为绿色,证明通过检查。(注:只要把第三章中的配置做完,这里的环境检查应该不会出现问题);下方的表格可以告诉我们当前CDH6.3.2中各个组件的版本号。(标注为红色的组件版本号建议同学们牢记)

All Hosts

 

hadoop[102-104]

 

---

---

Component

Version

---

---

Supervisord

3.0

Cloudera Manager Agent

6.3.1

Cloudera Manager Management Daemons

6.3.1

Flume NG

1.9.0+cdh6.3.2

Hadoop

3.0.0+cdh6.3.2

HDFS

3.0.0+cdh6.3.2

HttpFS

3.0.0+cdh6.3.2

hadoop-kms

3.0.0+cdh6.3.2

MapReduce 2

3.0.0+cdh6.3.2

YARN

3.0.0+cdh6.3.2

HBase

2.1.0+cdh6.3.2

Lily HBase Indexer

1.5+cdh6.3.2

Hive

2.1.1+cdh6.3.2

HCatalog

2.1.1+cdh6.3.2

Hue

4.2.0+cdh6.3.2

Impala

3.2.0+cdh6.3.2

Java 8

1.8.0_181

Kafka

2.2.1+cdh6.3.2

Kite

1.0.0+cdh6.3.2

kudu

1.10.0+cdh6.3.2

Oozie

5.1.0+cdh6.3.2

Parquet

1.9.0+cdh6.3.2

Pig

0.17.0+cdh6.3.2

sentry

2.1.0+cdh6.3.2

Solr

7.4.0+cdh6.3.2

spark

2.4.0+cdh6.3.2

Sqoop

5.7+cdh6.3.2

Zookeeper

3.4.5+cdh6.3.2

基于阿里云安装CDH6.3.2

5.13 组件选择页面

  继续安装,进入选择组件页面,点击最后一个“Custom Services” 

基于阿里云安装CDH6.3.2

  我们选择一些常用的组件进行安装,推荐安装以下组件: 

基于阿里云安装CDH6.3.2

5.14 选择需要安装的服务及Host

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

5.15 配置数据库密码

基于阿里云安装CDH6.3.2

5.16 初始参数配置

  建议一:将kafkazk中的根路径改为/kafka

基于阿里云安装CDH6.3.2

  建议二:将kafka的堆内存调大

基于阿里云安装CDH6.3.2

  其他选择默认即可

5.17 集群进入自动部署

  完成的选项将会显示绿色

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

5.18 安装部署完成

  提示安装完成并在运行中,点击完成

基于阿里云安装CDH6.3.2

5.19 修改界面语言

  进入集群界面发现为英文,我们可以改为中文界面

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

5.20 对集群配置做优化和修改

  我们可以观察到及群众有一些警示信息 

基于阿里云安装CDH6.3.2

  其中HDFS中的信息点击进去查看发现,是提示我们当前的节点少于9个不满足某种规定。但是我们现在只有三个节点,所以我们选择忽视这条警告。

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

  点击“Suppress”抑制警告

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

  再来看一些提示优化的信息:HDFS建议最小的堆内存为4G,因为每百万块数据会占用1G的内存。但是现在我们只是练习阶段,且内存较少较为珍贵,所以忽视这条优化。在生产中可以根据数据块的总量适当调整HDFS的内存。

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

  hue提示信息为需要我们安装HBaseThrift Server在同一节点中。我们可以添加一下。

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

基于阿里云安装CDH6.3.2

  处理之后我们就完成了对集群的配置和优化。

基于阿里云安装CDH6.3.2

第六章 参数配置

6.1 HDFS配置域名访问

  在阿里云环境下Hadoop集群必须用域名访问,不能用IP访问。进入HDFSconfiguration界面,开启如下配置dfs.client.use.datanode.hostname

基于阿里云安装CDH6.3.2

6.2 设置物理核和虚拟核占比

  当前购买的阿里云配置物理核一共为6核,为演示效果将虚拟核扩大1倍,一般真实场景下物理核和虚拟核对比值为1:11:2

  进入yarn配置,搜索yarn.nodemanager.resource.cpu-vcores修改配置,每台机器物理核2核虚拟成4

基于阿里云安装CDH6.3.2

6.3 修改单个容器下最大cpu申请资源

  修改yarn.scheduler.maximum-allocation-vcores参数调整4

基于阿里云安装CDH6.3.2

6.4 设置每个任务容器内存大小和单节点大小

  将每个任务容器默认大小从1G调大至4G,修改yarn.scheduler.maximum-allocation-mb调整每个任务容器内存所需大小

基于阿里云安装CDH6.3.2

  当前集群环境下每个节点的物理内存为8G,设置每个yarn可用每个节点内存为7G,修改yarn.nodemanager.resource.memory-mb调整每个节点内存所需大小

基于阿里云安装CDH6.3.2

6.5 关闭Spark动态分配资源参数

  关闭spark.dynamicAllocation.enabled参数,否则分配的资源不受控制

基于阿里云安装CDH6.3.2

6.6 修改HDFS副本数和权限检查配置

  修改dfs.replication副本数为1(可选,根据业务场景进行修改)

基于阿里云安装CDH6.3.2

  关闭HDFS权限检查dfs.permissions

基于阿里云安装CDH6.3.2

6.7 设置容量调度器

  CDH默认公平调度器,修改为容量调度器进入yarn,搜索scheduler,找到项,修改为CapacityScheduler

基于阿里云安装CDH6.3.2

  CDH默认为root队列,可以配置多队列,添加两个队列spark与hive,spark资源设置占yarn集群80%,hive设置占yarn集群20%;(请注意这四个配置项的顺序不能出错,且一定要写清楚)

yarn.scheduler.capacity.root.queues
yarn.scheduler.capacity.root.capacity
#添加如下队列 yarn.scheduler.capacity.root.spark.capacity yarn.scheduler.capacity.root.hive.capacity

基于阿里云安装CDH6.3.2

  配置完毕后重启服务,到yarn界面查看调度器,已经发生变化,hive队列和spark队列

6.8 修改hive-site.xml的配置

  因为我们删除了yarndefault队列,但是hive里面执行sql默认走的还是default,如果不做设置的话,在hive里面执行sql会报错,所以我们需要在hive里面设置三个参数。

set mapreduce.job.queuename=hive;

set mapred.job.queue.name=hive;

set mapred.queue.names=hive;

  如果想要临时生效,只需要在hive中执行这几个配置项即可。如果想要永久生效,进入hive,选择配置选项,然后搜索hive-site.xml

  在hive-site.xmlHive服务高级配置代码段(安全阀)添加如图所示三个参数

基于阿里云安装CDH6.3.2

  在hive-site.xml Hive 客户端高级配置代码段(安全阀)再次添加

基于阿里云安装CDH6.3.2

  重启过时服务,重新部署过期客户端配置,再次进入hive,就可以正常使用hivesql了。

基于阿里云安装CDH6.3.2

上一篇:strings包用法


下一篇:vue源码解析之响应式原理