CDH6.2.1CM6.2.1版本部署操作文档

   

1简介

1.1Cloudera Data Hub介绍

  1. CDH是最完整、测试最全面和最流行的Apache Hadoop及相关项目发布版本。
  2. CDH包含Hadoop核心元素:可扩展存储和分布式计算引擎,同时提供了Web接口和企业级功能。
  3. CDH基于Apache许可证开源协议,提供了包括批处理、交互式SQL、交互式查询和基于角色的访问控制一站式Hadoop大数据解决方案。
 

CDH优势:

  1. 灵活 — 存储任意类型数据,同时可以利用多种计算框架(批处理、交互式SQL、文本检索、机器学习和数理统计等)发掘数据价值
  2. 易于集成 — 可以在商用硬件快速部署Hadoop集群,同时容易与其他许多软件集成
  3. 安全—处理和控制敏感数据
  4. 易于扩展 — 提供了许多基础软件,在此基础上可以根据您的需求进行扩展
  5. 高可用性 — 无需担心重要任务处理的失败
  6. 兼容性 — 兼顾您现有的IT基础设施和未来投资
 

1.2集群结构

创建一个集群前,首先必须对整个集群进行规划,规划包括集群节点、网络、软件模块分布等部分。
运维人员必须保证将用于构造集群的服务器满足Cloudera Data Hub系统的基本要求。
这些要求包括 硬件要求、软件要求、内存要求、网络要求等。第二章将对这些要求进行详细介绍。
Cloudera Data Hub通过网络连接所有服务器并实现整个集群的服务,因此架构师需要仔细计算应用服务对网络带宽和延迟的需求并规划整个网络拓扑,如您需要规划帮助可以咨询逸迅信息科技的售前人员和架构师。
在应用规划中您需要根据应用的特点决定哪些软件模块和组件需要安装。
我们将列出安装前的硬件和软件要求,在满足这些要求的基础上,您才可以开始进行系统安装。
 
因为系统为centos7.8,所以下载如下截图中的CDH版本
 

系统安装包括以下步骤:

  1. 在集群中所有的节点上安装所需要的操作系统。
  2. 在管理节点上安装Cloudera Manager。
  3.  通过Cloudera Manager来把所有的节点加到集群中、对这些节点部署相关软件和配置,并运行服务。

2安装准备

2.1硬件环境要求

Cloudera Data Hub(CDH)提供集群服务来保证服务的高可用性,因此集群系统必须是3台以上物理服务器组成,每台服务器必须具备以下最低配置:
• 2颗6核心或以上带超线程x86指令集CPU的服务器
• 64GB以上内存
• 2个300G以上的硬盘做RAID1,作为系统盘
• 4个以上的300GB容量以上的 硬盘作为数据存放硬盘
• 2个千兆以上网卡
为实现较好的性能并实现最高的性价比,CDH针对集群内不同的模块有不同的推荐配置,Namenode和Cloudera Manager推荐使用以下配置:
• 2颗6核带超线程的x86指令集CPU服务器(比如Intel(r) Xeon(r) E5-2620 v2 CPU)
• 128GB以上内存
• 6个600G以上的硬盘做RAID1作为系统盘和管理数据
• 2个千兆以上网口的网卡
数据节点(Datanode)的硬件配置应该根据不同应用的特点进行选配,对于需要比较高计算能力的服务器,其数据节点的推荐配置如下:
• 2颗8核心或以上带超线程x86指令集CPU的服务器(比如Intel® Xeon® E5-2650 v2)
• 128GB以上内存
• 2个300G以上的硬盘做RAID1,作为系统盘
• 10个以上的2TB容量以上的硬盘作为数据存放硬盘
• 2个千兆以上网卡

2.2操作系统

hostname IP  内存 CPU
manager 172.30.81.203 64G  
node1 172.30.81.204 64G  
node2 172.30.81.205 64G  
node3 172.30.81.206 32G  
 
 

2.3Java环境要求

JDK下载地址:下载地址:https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/

JDK版本:oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 

vim /etc/profile
#文件最后添加:
#java home
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#执行
source /etc/profile

2.4支持的浏览器

Cloudera Manager管理界面用来安装、配置、管理和监控服务,支持以下浏览器最新版本:   
  1. Mozilla Firefox——火狐
  2. Google Chrome——谷歌
  3. Internet Explorer——IE
  4. Safari.——苹果计算机的操作系统Mac OS中的浏览器,使用了KDE的KHTML作为浏览器的运算核心
 

3安装前的检查

3.1系统磁盘分区要求

3.2内存容量要求

每个节点必须至少有64GB的RAM。根据节点所安装的Cloudera Data Hub服务,节点可能需要超过64GB的RAM。下表列出在节点上运行不同服务时,该节点所需的额外内存。
服务 要求

Management Server

8GB

HDFS NameNode

32GB

HDFS NameNode

32GB

HDFS Secondary NameNode

64GB

HDFS Standby NameNode

32GB

HDFS DataNode

4GB

YARN ResourceManager

4GB

YARN NodeManager

4GB

YARN NodeManager

用户指定

ZooKeeper

4GB

HBase Master Server

4GB
具体节点需要内存的计算步骤如下所示:
  1. 确认所有会在节点上运行的CDH服务。
  2. 确认每个服务要求的内存容量。
  3. 将所有内存要求相加。
  4. 如果相加后内存要求小于64B,则最低内存要求为64GB。如果相加后内存要求大于64GB,则最低内存要求为相加后的和。
    1. 比如,如果节点上运行以下服务:
      1. • HDFS DataNode
      2. • YARN ResourceManager
      3. • HBase Region Server
则节点的内存容量要求如下(生产环境实际使用内存要结合具体的应用场景)4GB+4GB+32GB = 40GB < 64G,取64G

3.3、网络设置

安装Cloudera Data Hub需要最低的网络为千兆以太网。当一台机器上有多个网络适配器时,用户可以在安装Cloudera Data Hub之前对其进行绑定配置

3.4、安全设置

禁掉SELinux和iptables
1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

2、关闭SE Linux

查看selinux状态:
/usr/sbin/sestatus -v | grep SELinux

临时关闭:(#setenforce 1 设置SELinux 成为enforcing模式)
setenforce 0 

永久关闭:
vi /etc/selinux/config,然后设置
SELINUX=disabled

3.5、配置免密码登录

在Manager(dipc2)节点 ssh-keygen -t rsa 执行生成密钥,一路回车,直到生成秘钥如下所示:

[root@dipc2 ~]# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:a9ptxPrlBF75F7Xg2wMsq1GRYTEEmy1rYZP0PWtCzjQ root@dipc2
The key's randomart image is:
+---[RSA 2048]----+
|         oo*.    |
|        . B =    |
|         O E +  .|
|        . X =.+ o|
|        S+.*o* o |
|        .o+o=.+ .|
|        o+..o..o.|
|       +..++   ..|
|      . .+o .    |
+----[SHA256]-----+

在/root/.ssh/下面会生成一个公钥文件id_rsa.pub , 将公钥追加到authorized_keys

#将公钥追加到私钥中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#修改秘钥文件权限
chmod 600 ~/.ssh/authorized_keys 

将~/.ssh从当前节点分发到其他各个节点。如:scp -r ~/.ssh/ root@node1:~/.ssh/

[root@dipc2 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@dipc2 ~]# chmod 600 ~/.ssh/authorized_keys 
[root@dipc2 ~]# scp -r ~/.ssh/ root@dipc3:~/.ssh/
The authenticity of host 'dipc3 (172.30.81.204)' can't be established.
ECDSA key fingerprint is SHA256:+T6sFqPQwYg4ybLBlvHRzjRtljkfRpMYqG4ZJLne4d8.
ECDSA key fingerprint is MD5:99:61:89:61:ee:d7:82:c4:a0:52:0c:eb:ef:81:6a:a6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dipc3,172.30.81.204' (ECDSA) to the list of known hosts.
root@dipc3's password: 
id_rsa                                               100% 1675   950.4KB/s   00:00    
id_rsa.pub                                           100%  392   280.7KB/s   00:00    
authorized_keys                                      100%  392   230.8KB/s   00:00    
known_hosts                                          100%  181   135.8KB/s   00:00    
[root@dipc2 ~]# scp -r ~/.ssh/ root@dipc4:~/.ssh/
The authenticity of host 'dipc4 (172.30.81.205)' can't be established.
ECDSA key fingerprint is SHA256:eISTahaFjLQp1Zoua1/MnzEd4BVUky+yW98dNlNhgDQ.
ECDSA key fingerprint is MD5:33:07:75:a1:8d:f9:f3:63:ca:ce:fa:08:9f:c6:55:94.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dipc4,172.30.81.205' (ECDSA) to the list of known hosts.
root@dipc4's password: 
id_rsa                                               100% 1675   650.1KB/s   00:00    
id_rsa.pub                                           100%  392   174.1KB/s   00:00    
authorized_keys                                      100%  392   200.1KB/s   00:00    
known_hosts                                          100%  362   172.6KB/s   00:00    

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥

  id_rsa : 生成的私钥文件

  id_rsa.pub : 生成的公钥文件

  know_hosts : 已知的主机公钥清单

    如果希望ssh公钥生效需满足至少下面两个条件:

      1) .ssh目录的权限必须是700

     2) .ssh/authorized_keys文件权限必须是600

3.6、NTP服务设置

决定如何进行时间同步。 管理节点将负责所有服务器上的时间的同步,但您需要决定是否使用外部的NTP服务。
问题:
如果不使用外部NTP服务,集群中所有服务器的时间是相同的,但这个时间有可能不是标准时间,这有 可能导致集群与外部连接时产生错误。
1、修改时区(改为中国标准时区):
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、安装NTP并设置开机启动:
#安装
yum -y install ntp
#设置开机启动
chkconfig ntpd on
[root@dipc2 ~]# chkconfig ntpd on
Note: Forwarding request to 'systemctl enable ntpd.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
#或者使用新命令设置开机启动
systemctl enable ntpd.service
[root@dipc4 ~]# systemctl enable ntpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

3、ntp主机配置 vi /etc/ntp.conf

manager节点(dipc3)

其余节点(dipc4、dipc5),注释掉原来的,添加指向manager节点的ntp配置

重新启动 ntp 服务:service ntpd restart

ntpdc -c loopinfo #查看与时间同步服务器的时间偏差

ntpq -p #查看当前同步的时间服务器

ntpstat #查看状态

配置成功状态(服务开启后前面出现*说明成功):

可以使用:watch ntpq -p 查看同步的状态

注意:同步ntp的时间大约需要5~10分钟,耐心等待一下

3.7修改Linux swappiness参数(所有节点)

为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)

echo 0 > /proc/sys/vm/swappiness 
这样配置之后,服务器重启之后,会还原原本的设置
另一种方法是修改配置文件
vim /etc/sysctl.conf
在文件最后面添加
vm.swappiness=0
重启开机之后会自动配置这个参数

上述方法rhel6有效,rhel7.2中:tuned服务会动态调整系统参数

查找tuned中配置,直接修改配置

cd /usr/lib/tuned/

grep “vm.swappiness” * -R 查询出后依次修改

修改完确认:

参考:sysctl修改内核参数 重启不生效 https://blog.csdn.net/ygtlovezf/article/details/79014299

3.8.、禁用透明页(所有节点)

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效 在/etc/rc.local 添加上面命令

给与可执行权限:chmod +x /etc/rc.d/rc.local

3.9、安装MySQL

yum安装msyql:

rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

[root@dipc2 tuned]# rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
Retrieving http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
warning: /var/tmp/rpm-tmp.d6d7vA: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-10 ################################# [100%]
yum -y install mysql-community-server

启动、配置mysql

[root@dipc2 tuned]# systemctl start  mysqld.service
[root@dipc2 tuned]# systemctl enable mysqld.service
[root@dipc2 tuned]# systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-05-21 16:36:39 CST; 110ms ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 21291 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─21291 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

May 21 16:36:34 dipc2 systemd[1]: Starting MySQL Server...
May 21 16:36:39 dipc2 systemd[1]: Started MySQL Server.

查看初始密码:

[root@dipc2 tuned]# grep "password" /var/log/mysqld.log
2020-05-21T08:36:36.113172Z 1 [Note] A temporary password is generated for root@localhost: rApbdN#hw5gD

使用初始密码登录
mysql -u root -p
#输入初始密码
 

[root@dipc2 tuned]# grep "password" /var/log/mysqld.log
2020-05-21T08:36:36.113172Z 1 [Note] A temporary password is generated for root@localhost: rApbdN#hw5gD
[root@dipc2 tuned]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.01 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql>  ALTER USER 'root'@'localhost' IDENTIFIED BY '*********'; #修改密码
Query OK, 0 rows affected (0.01 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>  update user set host = '%' where user = 'root'; #远程可访问
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>  flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

创建库,后续安装服务等使用​​​​​​

CREATE DATABASE cmserver DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

GRANT ALL ON cmserver.* TO 'cmserveruser'@'%' IDENTIFIED BY 'Yyf5211314!';

CREATE DATABASE metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

GRANT ALL ON metastore.* TO 'hiveuser'@'%' IDENTIFIED BY 'Yyf5211314!';

CREATE DATABASE amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

GRANT ALL ON amon.* TO 'amonuser'@'%' IDENTIFIED BY 'Yyf5211314!';

CREATE DATABASE rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

GRANT ALL ON rman.* TO 'rmanuser'@'%' IDENTIFIED BY 'Yyf5211314!';

CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

GRANT ALL ON oozie.* TO 'oozieuser'@'%' IDENTIFIED BY 'Yyf5211314!';

CREATE DATABASE hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

GRANT ALL ON hue.* TO 'hueuser'@'%' IDENTIFIED BY 'Yyf5211314!';

FLUSH PRIVILEGES;

同步mysql-connector-java.jar

创建路径mkdir /usr/share/java ,将mysql-jdbc jar包放置在此路径下(每个节点):

mysql-connector-java-5.1.43.jar

必须要把上传的jar文件名称改为:mv mysql-connector-java-5.1.43.jar mysql-connector-java.jar

 安装Httpd服务(manager节点安装)

yum install -y  httpd #安装

service httpd start #启动

systemctl enable httpd.service #设置httpd服务开机自启

3.8集群和网络拓扑要求

  1. • 决定集群中的节点数目。
  2. • 决定集群中的机柜数目及每个机柜的名称。
  3. • 决定每个机柜中的节点数目。
  4. • 决定每个节点所在的子网(或多个子网)。
  5. • 决定每个节点的主机名和IP地址。
  6. • 决定哪个机器是管理节点。
  7. • 决定哪些机器是NameNode。
  8. • 决定哪些机器是客户端,哪些机器运行CDH服务,或二者兼是。
  9. • 一旦主机名分配给NameNode,主机名则不能再更改。
  10. • 确定你知道要加入到CDH集群中的每个节点的root密码。
  11. • 管理节点必须和集群中的其他节点属于同一子网。
  12. • 决定在集群中使用哪些组件。
  13. • 决定网络带宽和交换机背板带宽;决定交换机型号。
  14. • 决定如何连接到交换机;必须知道需要用到哪些以太网端口和是否需要绑定。
  15. • 确定每台机器的IP地址和主机名。决定如何分配IP(使用DHCP或静态分配)。决定如何解析主机名(使用DNS或/etc/hosts)。如果使用/etc/hosts,管理节点将负责更新集群中每台机器的/etc/hosts

 

 

3.8系统的推荐设置

  1. • 节点的主机名解析。注意,主机名只能由英文、数字和“-”组成,否则之后的安装会出现问题。
  2. • 要同时添加一组节点到集群中。
  3. • 要减少网络延迟,集群中的所有节点都必须属于同一子网。
  4. • 每个节点应配置一块10GE的网卡,用于节点间的通信和执行集群中需要网络连接的任务。
  5. • 如果节点没有使用10GE的网卡,则可使用网卡绑定以便将多个网卡组合在一起以提升网络流量。
    1. 绑定的网卡必须使用工作模式6。
  6. • 每个节点推荐最小的系统分区,至少有300GB的磁盘空间。
  7. • 每个节点应至少有6T的可用磁盘空间用于HDFS。
  8. • 集群中应至少有5个DataNode。
  9. • 如果可能,避免将物理磁盘分为多个逻辑分区。除了系统分区外,每个物理磁盘应当仅有一个分区,且该分区包含整个物理磁盘。
  10. • 仅使用物理机器,不要使用虚拟机器。虚拟机可能会明显导致HDFS I/O的缓慢。
  11. • 节点所在的单个或多个子网不允许有其他机器。
  12. • 集群中不能同时有物理机器和虚拟机器。
  13. • 要确保集群中的机器不成为性能和I/O的瓶颈,所有机器必须有相似的硬件和软件配置,包括RAM、CPU和磁盘空间。
  14. • 每个节点应至少有64GB的内存。
  15. • 在管理节点上,由于集群中节点执行的系统监控,大量数据可被写入/var。推荐分配200GB(鉴于ganglia非常消耗硬盘,建议根据节点数目调整该值)的磁盘空间给/var所在分区。
  16. • 由于服务可能生成大量日志,推荐将/var/log放置在其他逻辑分区。这可保证日志不会占满根分区的空间。
  17. • 要加快对本地文件系统的读取,可使用noatime选项挂载磁盘,这表示文件访问次数不会被写回。

3.9配置sud权限

vim /etc/sudoers

## Next comes the main part: which users can run what
software on
## which machines (the sudoers file can be shared between
multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
##添加内容为:
sudo ALL=(ALL) NOPASSWD: ALL

4CM安装

rpm --import https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPM-GPG-KEY-cloudera
wget https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/cloudera-manager.repo -p /etc/yum.repos.d/
#安装CM,在manager节点
yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
#安装CM,在node节点
yum install -y cloudera-manager-daemons cloudera-manager-agent

可能需要安装的依赖:

yum install -y bind-utils 
yum install -y psmisc 
yum install -y cyrus-sasl-plain 
yum install -y cyrus-sasl-gssapi 
yum install -y portmap 
yum install -y /lib/lsb/init-functions 
yum install -y mod_ssl 
yum install -y openssl-devel 
yum install -y python-psycopg2 
yum install -y MySQL-python 
yum install -y libpq.so.5

复制CDH的parcel文件到/opt/cloudera/parcel-repo

-rw-r--r-- 1 root root 2082186246 May 21 17:59 CDH-6.2.1-1.cdh6.2.1.p0.1605554-el7.parcel
-rw-r--r-- 1 root root         47 May 21 17:59 CDH-6.2.1-1.cdh6.2.1.p0.1605554-el7.parcel.sha1.txt
-rw-r--r-- 1 root root         64 May 21 17:59 CDH-6.2.1-1.cdh6.2.1.p0.1605554-el7.parcel.sha256

在/opt/cloudera/parcel-repo执行以下命令:

sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1605554-el7.parcel  | awk ‘{ print $1 }’ > CDH-6.2.1-1.cdh6.2.1.p0.1605554-el7.parcel.sha


##执行初始化脚本:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver cmserveruser Yyf5211314!

##启动server服务
service cloudera-scm-server start

##查看server状态:
service cloudera-scm-server status

访问:CM web界面
http://主机ip:7180
用户名admin
密码admin

登录之后:

根据需要选择版本,我这里选择的是免费版本

后面的就按照步骤一步一步来,选择CDH版本6.2.1,选择需要的服务或者全部安装

5CDH服务的角色

要在 集群中运行服务,需要 指定集群中的一个或多个节点执行该服务的特定功能。这些功能被归类为功能性的角色,角色用于定义节点能为集群中的服务提供哪些功能。角色分配是必须的,没有角色集群将无法正常工作。
在分配角色前,需要了解这些角色的含义,以及对应于服务节点需要哪些角色。

4.1Zookeeper角色

角色 描述
Zookeeper
  • 一个或多个运行ZooKeeper服务的节点。
  • ZooKeeper服务是指包含一个或多个节点的集群提供服务框架用于集群管理。
  • 对于集群,Zookeeper服务提供的功能包括维护配置信息、命名、提供HBase的分布式同步,以及当HMaster停止时触发master选择。
  • HBase需要有一个ZooKeeper集群才能工作。
  • 推荐在ZooKeeper集群中至少有3个节点。

4.2HDFS角色

角色 描述
NameNode
  • HDFS系统中的节点用于维护文件系统中所有文件的目录结构并跟踪文件数据存储于哪些数据节点
  • 当客户端需要从HDFS文件系统中获得文件时,它通过和NameNode通讯来知道客户端哪个数据节点上有客户端需要的文件。
  • 一个集群中只能有一个NameNode。
  • NameNode不能被赋予其他角色
DataNode
  • 在HDFS中,DataNode是用来存储数据块的节点。

Secondary NameNode

  • 为NameNode上的数据创建周期性检查点的节点。
  • 节点将周期性地下载当前NameNode镜像(fsimage)和(edit.log)日志文件,将日志和镜像文件合并为一个新的镜像文件然后上传到NameNode。
  •  被分配了NameNode角色的机器不应再被分配Secondary NameNode 角色。

Standby NameNode

  • Standby模式的NameNode元数据(Namespcae information 和 Block locationsmap)都是和ActiveNameNode中的元数据是同步的,一旦切换成Active模式,马上就可以提供NameNode服务。

JournalNode

  • Standby NameName和Active NameNode通过JournalNode通信,保持信息同步。
 

4.3YARN角色

角色 描述
ResourceManager
  • ResourceManager负责将各个资源部分(计算、内存、带宽等)安排给基础NodeManager,并与NodeManager一起启动和监视它们的基础应用程序。

Timeline Server

  • 提供对YARN的作业历史日志信息的展现服务。

4.4Hbase角色

角色 描述
HMaster
  • 节点实现HyperBase数据库以下功能: 配区域给RegionServers,平衡整个集群。
  • 1.确认RegionServer在运行中。 
  • 2.如果没找到参考值,删除parents。
  • 3.管理数据库表。 
  • 4.在RegionServers中分发消息。
  • 5.监控RegionServers以决定是否有必要执行恢复,如果是,则执行恢复。可以分配HMaster角色给一个或多个节点以进行备份切换。如果你分配角色给多个节点,这将创建一个activestandby状态的HMaster节点的集群,即一个节点处于active状态而集群中的另一个节点处于standby状态。如果active状态的HMaster停止,ZooKeeper集群将选出一个inactive状态的HMaster来作为active状态的HMaster。
HRegion Server
  • 负责服务和管理HBase区域的节点。
HBase Thrift
  • Thrift Client API开放的节点,客户端可通过Thrift和HBase通讯。
HBase-rest
  • HBase的restAPI。

4.5Hive 角色

角色 描述
Hive MetaStore
  • 存储表结构及其元数据信息
Hive Server
  • Hive运行的节点,帮助查询和管理HDFS的大型数据集。
  • Hive Server提供工具从文件系统中提取、转换和装载数据,实施数据格式结构,以及提供HDFS或HBase的直接文件访问。

4.6Streaming 角色

角色 描述
Job server
  • Stream的任务管理工具

4.7Sqoop 角色

角色 描述
Sqoop
  • Sqoop是一款用于在(Hive、HBase)与传统的数据库(mysql、postgresql等)间进行数据的传递的工具。
 

4.8Kafka 角色

 
角色 描述
Kafka Server
  • Kafka的任务管理工具。

4.9Oozie 角色

角色 描述
Oozie server
  • Oozie的任务管理工具。

4.10HUE 角色

 
角色 描述
HUE server
  • HUE是一组可与您的集群交互的网络应用程序。
  • HUE应用能让您浏览HDFS和工作,管理Hive metastore,运行Hive,浏览HBase,Sqoop出口数据,提交MapReduce程序,构建自定义的搜索引擎与Solr,与Oozie一起调度重复性的工作流

4.11Impala角色

 
角色 描述
impalad
  • impalad是impala的核心进程,与Datanode在同一个节点上,接受客户端的查询请求(接受查询请求的impalad为Coordinator,Coordinator通过JNI调用Java前端解释SQL查询语句,生成查询计划树,再通过调度器吧执行计划分发给具有相应数据的其他impalad执行),读写数据,并行执行查询,并把结果通过网络流式传给Coordinator,有Coordinator返回给客户端。
  • 同时impalad也与statestore保持连接,用于确定哪些impalad的健康的是可以执行新任务的。
state store
  • state store跟踪集群中的impalad的健康状态及位置信息,并不断把健康状况发送给所有的impalad进程节点。
  • 一旦某个impala节点不可用,statestore确保将这一信息及时传达到所有的impalad进程节点,当有新的查询请求时,impalad进程节点不会把查询请求发送到不可用的节点上。
  • statestore通过创建多个线程来处理impalad的注册订阅和与各个impalad保持心态连接。
  • 值得注意的是,statestore并非关键进程,即使不可用,impalad进程节点间仍然可以相互协调正常对外提供分布式查询。
CLI
  • CLI:用户查询的命令行共组,还提供了Hue、JDBC、ODBC等接口。

4.12Cloudera Search角色

 
角色 描述
Cloudera Search
  • Cloudera Search是集成与CDH的Apache Solr,包括Apache Lucene、Apache SolrCloud、Apache Flume、Apache MapReduce & HDFS和Apache Tika
  • 它也包含了一些组件为更多的用户提供了轻松利用存储在Hadoop里面的海量数据来获取信息和价值的利器。
  • 性能方面,一个服务器可以支持多达几亿个文档和接近TB的索引,搜索结果通常会在1至2秒之间返回。

4.13Cloudera Navigator

角色 描述
Cloudera Navigator
  • Cloudera Navigator是首个一站式Hadoop大数据管理应用,为企业管理人员、数据处理人员和数据分析师提供了安全的管理、分类和探索搭建于Hadoop的大数据功能。 
 

5操作系统安装

在安装Cloudera Data Hub之前, 集群中的所有节点必须满足安装准备和安装前检查中所列举的所有要求
可以使用两种方式来安装集群中的服务器的操作系统
  1. 单独安装方式。
    1. 单独安装方式是使用Red Hat Enterprise Linux for Servers、CentOS系列或SUSE Linux Enterprise Server的安装光盘在每台服务器上独立安装操作系统。
  2. PXE安装方式。
 
注意:
对于Red Hat Enterprise Linux for Servers、CentOS 系列的操作系统,需要使用visudo
命令打开/etc/sudoers配置文件:
 
 
 
 
 
 
 
 
 
vi /etc/sudoers /etc/sudoers
 
 
# visudo
将该文件中的“Defaults requiretty”注释掉 如要使用非root用户安装产品,使用的用户
必须拥有sudo权限。所以,管理员需要向/etc/sudoers文件中添加sudo用户。方法为在该文
件以下部分最后一行的内容:
 
## Next comes the main part: which users can run what
software on
## which machines (the sudoers file can be shared between
multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
sudo ALL=(ALL) NOPASSWD: ALL
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

6Cloudera Manager的安装

6.1Manager资源需求

Cloudera Manager安装需要以下资源:
  1. RAM – 4 GB(推荐) 
  2. Python - Cloudera Manager支持Python 2.4及更高版本,不支持Python 3.0及更高版本。Hue和CDH 5安装需要Python 2.6或2.7.CDH支持的操作系统均包含了Python 2.4或者更高版本。
  3. Perl - Cloudera Manager 需要安装Perl
  4. python-psycopg2 package - Cloudera Manager 5.8 及其高版本依赖于包python-psycopg2. 运行Cloudera Manager agent节点需要安装该包。该包未包含在SLES 11和SLES 12仓库中。您需要添加包含该包的仓库或者是手动安装该包。
    1. 包含该包的仓库地址如下: 
      1. SLES 11 SP4: http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP4/devel:languages:python.repo
      2. SLES 12 SP2: http://download.opensuse.org/repositories/devel:/languages:/python/SLE_12_SP2/devel:languages:python.repo
    2. 或者从如下URL中下载包,手动安装: 
      1. SLES 11 SP4: http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP4/x86_64/python-psycopg2-2.6.2-1.3.x86_64.rpm
      2. SLES 12 SP2: http://download.opensuse.org/repositories/devel:/languages:/python/SLE_12_SP2/x86_64/python-psycopg2-2.6.2-1.4.x86_64.rpm

6.2安装介质

如客户服务代表或技术支持提供的是压缩包cdh5.tar.gz,请将Cloudera压缩文件导入服务器中,解压后自动生成cdh5文件夹,如下图
$ cd cdh5/进入解压后的cdh5目录
 

6.3安装前准备

6.3.1 网络配置【所有节点】

修改hostname
在每个节点上执行hostname [主机名]
配置网络
 
vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=yeexun-1     注意【每个节点改成相应的hostname】
NETWORKING_IPV6=no
PEERNTP=no

保存退出:wq

重启网络服务
 
service network restart
 
配置hosts(不要用浮动ip,用内网ip,可用ifconfig查看ip)
vi /etc/hosts

10.21.1.10        yeexun-1
10.21.1.18        yeexun-2
10.21.1.5         yeexun-3
 
 
 
 
 

6.3.2 设置ssh免密登陆【所有节点】

生成无密码的密钥对
 
 
 
 
 
 
 
 
 
ssh-keygen -t rsa
 
 
一路回车、选择y
 
将公钥添加到本地认证文件中(>>追加命令——可理解为将生成的公钥复制到本地认证文件中)
 
 
 
 
 
 
 
 
 
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
 
 
设置authorized_keys的访问权限
 
 
 
 
 
 
 
 
 
chmod 600 /root/.ssh/authorized_keys 600 /root/.ssh/authorized_keys
 
 
**以上步骤先在每个节点上先执行一遍,然后执行下面操作
将每个节点上生成的id_rsa.pub复制到其他所有节点并添加到它们的认证文件中(scp一般用于跨服务器复制)
比如:yeexun-1上生成的id_rsa.pub,复制到yeexun-2和yeexun-3上
 
 
 
 
 
 
 
 
 
 
scp /root/.ssh/id_rsa.pub yeexun-2:/root/(yeexun-1上执行) /root/.ssh/id_rsa.pub yeexun-2:/root/(yeexun-1上执行)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys(在yeexun-2上执行) ~/id_rsa.pub >> ~/.ssh/authorized_keys(在yeexun-2上执行)
scp /root/.ssh/id_rsa.pub yeexun-3:/root/(yeexun-1上执行) /root/.ssh/id_rsa.pub yeexun-3:/root/(yeexun-1上执行)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys(在yeexun-3上执行) ~/id_rsa.pub >> ~/.ssh/authorized_keys(在yeexun-3上执行)
 
 
其余节点类似操作
验证是否配置免密登录成功:ssh root@yeexun-2看是否需要输入密码
 
 
 
 
 
 
 
 
 
ssh yeexun-ceshi-4  yeexun-ceshi-4 
 
 

6.3.3 安装Oracle的JDK【所有节点】

如果CentOS装有OpenJDK,卸载之,CDH5需要使用Oracle的JDK,需要Java 7的支持。
卸载自带的OpenJDK
使用rpm -qa  |  grep java查询java相关的包
 
 
 
 
 
 
 
 
 
rpm -qa  |  grep java -qa  |  grep java
 
 
使用rpm -qa  |  grep openjdk  |  xargs rpm -e --nodeps卸载之
 
 
 
 
 
 
 
 
 
rpm -qa  |  grep openjdk  |  xargs rpm -e --nodeps -qa  |  grep openjdk  |  xargs rpm -e --nodeps
 
 
安装oracle jdk
采用的tar.gz包安装,解压压缩包jdk1.7.0_67.tar.gz,并且将解压的到的文件夹jdk1.7.0_67复制到/usr/java/jdk1.7(该目录是Cloudera Manager查找JAVA_HOME的一个路径)
 
 
 
 
 
 
 
 
 
 
tar zxvf jdk1.7.0_67.tar.gz   解压安装jdk zxvf jdk1.7.0_67.tar.gz   解压安装jdk
mkdir -p /usr/java/jdk1.7       创建多级目录 -p /usr/java/jdk1.7       创建多级目录
mv jdk1.7.0_67/* /usr/java/jdk1.7      将解压文件剪切到相应目录中国 jdk1.7.0_67/* /usr/java/jdk1.7      将解压文件剪切到相应目录中国
rmdir jdk1.7.0_67   
 
 
 
 
 
 
 
 
 
 
 
另一种配置jdk  安装完毕为他建立一个链接以节省目录长度  安装完毕为他建立一个链接以节省目录长度
  ln -s /usr/java/jdk1.8.0_60/ /usr/jdkln -s /usr/java/jdk1.8.0_60/ /usr/jdk
    (ln -s jdk1.7.0_67/ latest)(ln -s jdk1.7.0_67/ latest)
 
 
配置环境变量
 
 
 
 
 
 
 
 
 
vi /etc/profile /etc/profile
 
 
将以下内容添加到profile
 
 
 
 
 
 
 
 
 
 
export JAVA_HOME=/usr/java/jdk1.7 JAVA_HOME=/usr/java/jdk1.7
export PATH=$JAVA_HOME/bin:$PATH PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 
 
然后刷新
 
 
 
 
 
 
 
 
 
source /etc/profile /etc/profile
 
 

6.3.4 安装配置MySQL5.7【主节点】

安装perl和numactl
思华xos虚拟机系统为centos6.5-leo,没有perl和numactl
为了yum顺利进行,配置/etc/resolv.conf,删除原来的nameserver,添加
 
 
 
 
 
 
 
 
 
vi /etc/resolv.conf /etc/resolv.conf
 
 
 
 
 
 
 
 
 
 
 
 
nameserver 192.168.1.1 192.168.1.1
nameserver 114.114.114.114 114.114.114.114
 
 
安装perl和numactl
 
 
 
 
 
 
 
 
 
 
yum install -y perl install -y perl
yum install -y numactl  install -y numactl 
 
 
卸载已有的mysql-libs
 
 
 
 
 
 
 
 
 
 
rpm -qa | grep mysql-libs -qa | grep mysql-libs
rpm -e --nodeps 【包名】 -e --nodeps 【包名】
 
 
rpm安装mysql     (rm -rf /var/log/mysql*     rm -rf /var/lib/mysql*)删除时候需要删除
 
 
 
 
 
 
 
 
 
 
 
 
 
rpm -ivh mysql-community-common-5.7.15-1.el6.x86_64.rpm -ivh mysql-community-common-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.15-1.el6.x86_64.rpm -ivh mysql-community-libs-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.15-1.el6.x86_64.rpm -ivh mysql-community-client-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.15-1.el6.x86_64.rpm -ivh mysql-community-server-5.7.15-1.el6.x86_64.rpm
 
 
设置开机启动
 
 
 
 
 
 
 
 
 
chkconfig mysqld on mysqld on
 
 
启动mysql服务
 
 
 
 
 
 
 
 
 
service mysqld start mysqld start
 
 
关闭密码校验
 
 
 
 
 
 
 
 
 
echo "validate_password=off" >> /etc/my.cnf "validate_password=off" >> /etc/my.cnf
 
 
重启mysql服务
 
 
 
 
 
 
 
 
 
service mysqld restart mysqld restart
 
 
查看root的初始密码
 
 
 
 
 
 
 
 
 
cat /var/log/mysqld.log | more | grep password /var/log/mysqld.log | more | grep password
 
 
会看到
 
 
修改 mysql root密码
 
 
 
 
 
 
 
 
 
mysql -uroot -p[查看得到的密码] -uroot -p[查看得到的密码]
 
 
 
 有时候直接输入密码登录会报错
 
 
 
 
 
 
 
 
 
 
 
[root@localhost ~]# mysql -uroot -proot@localhost ~]# mysql -uroot -p
Enter password:  password: 
Welcome to the MySQL monitor.  Commands end with ; or \g. to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 MySQL connection id is 4
Server version: 5.7.12 version: 5.7.12
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective. Other names may be trademarks of their respective
owners..
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 #设置数据库新密码#设置数据库新密码
mysql> set password=’123qwe’;> set password=’123qwe’;
Query OK, 0 rows affected (0.00 sec) OK, 0 rows affected (0.00 sec)
mysql> exit> exit
Bye
 
 
 
 
 
mysql创建数据库hive、amon,且给root@[主节点] 赋权限
 
 
 
 
 
 
 
 
 
 
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;    创建数据库hive database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;    创建数据库hive
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;    创建数据库amon database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;    创建数据库amon
grant all privileges on *.* to 'root'@'yeexun-ceshi-4' identified by '123qwe';     赋予权限 all privileges on *.* to 'root'@'yeexun-ceshi-4' identified by '123qwe';     赋予权限
flush privileges;        刷新权限 privileges;        刷新权限
 
 

创建数据库用做测试

10.21.1.10换成主节点hostname
 
 
 
 
 
 
 
 
 
 
create database hive; database hive;
grant all privileges on hive.* to hive@'localhost' identified by 'hive';  all privileges on hive.* to hive@'localhost' identified by 'hive'; 
grant all privileges on hive.* to hive@' yeexun-ceshi-5' identified by 'hive';  all privileges on hive.* to hive@' yeexun-ceshi-5' identified by 'hive'; 
 
 
 
 
 
 
 
 
 
 
 
 
 
create database hue; database hue;
grant all privileges on hue.* to hue@'localhost' identified by 'hue';  all privileges on hue.* to hue@'localhost' identified by 'hue'; 
grant all privileges on hue.* to hue@' yeexun-ceshi-5' identified by 'hue';  all privileges on hue.* to hue@' yeexun-ceshi-5' identified by 'hue'; 
 
 
 
 
 
 
 
 
 
 
 
 
 
create database monitor; database monitor;
grant all privileges on monitor.* to monitor@'localhost' identified by 'monitor';  all privileges on monitor.* to monitor@'localhost' identified by 'monitor'; 
grant all privileges on monitor.* to monitor@' yeexun-ceshi-5' identified by 'monitor';  all privileges on monitor.* to monitor@' yeexun-ceshi-5' identified by 'monitor'; 
 
 
 
 
 
 
 
 
 
 
 
 
 
create database reports; database reports;
grant all privileges on reports.* to reports@'localhost' identified by 'reports';  all privileges on reports.* to reports@'localhost' identified by 'reports'; 
grant all privileges on reports.* to reports@' yeexun-ceshi-5' identified by 'reports';  all privileges on reports.* to reports@' yeexun-ceshi-5' identified by 'reports'; 
 
 
 
 
 
 
 
 
 
 
 
 
 
create database oozie; database oozie;
grant all privileges on oozie.* to oozie@'localhost' identified by 'oozie';  all privileges on oozie.* to oozie@'localhost' identified by 'oozie'; 
grant all privileges on oozie.* to oozie@'yeexun-ceshi-5' identified by 'oozie'; all privileges on oozie.* to oozie@'yeexun-ceshi-5' identified by 'oozie';
flush privileges; privileges;
 
 
 
 
 
 
 
 
 
 
 
 
create database navigatoraudit; database navigatoraudit;
grant all privileges on navigatoraudit.* to navigatoraudit@'localhost' identified by 'navigatoraudit';  all privileges on navigatoraudit.* to navigatoraudit@'localhost' identified by 'navigatoraudit'; 
grant all privileges on navigatoraudit.* to navigatoraudit@'yeexun-ceshi-5' identified by 'navigatoraudit'; all privileges on navigatoraudit.* to navigatoraudit@'yeexun-ceshi-5' identified by 'navigatoraudit';
flush privileges; privileges;
 
 
 
 
 
 
 
 
 
 
 
 
 
create database navigatormetadata; database navigatormetadata;
grant all privileges on navigatormetadata.* to navigatormetadata@'localhost' identified by 'navigatormetadata';  all privileges on navigatormetadata.* to navigatormetadata@'localhost' identified by 'navigatormetadata'; 
grant all privileges on navigatormetadata.* to navigatormetadata@'yeexun-ceshi-5' identified by 'navigatormetadata'; all privileges on navigatormetadata.* to navigatormetadata@'yeexun-ceshi-5' identified by 'navigatormetadata';
flush privileges; privileges;
 
 

6.3.5 关闭防火墙和SELinux 【所有节点】

注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
 
 
关闭防火墙
 
 
 
 
 
 
 
 
 
 
service iptables stop (临时关闭)   iptables stop (临时关闭)  
chkconfig iptables off (重启后生效) iptables off (重启后生效)
 
 
关闭SELINUX
 
 
 
 
 
 
 
 
 
setenforce 0 (临时生效)   0 (临时生效)  
 
 
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
 
 
 
 
 
 
 
 
 
 
 
vi  /etc/selinux/config  /etc/selinux/config
 
 
 
 

6.3.6 配置NTP(Network Time Protocol)服务【所有节点】

  1. 集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 
  2. 具体思路如下: master节点作为ntp服务器与外界对时中心同步时间,随后对所有slave节点提供时间同步服务。
  3. 所有slave节点以master节点为基础同步时间。
所有节点安装相关组件
 
 
 
 
 
 
 
 
 
yum install -y ntp install -y ntp
 
 
开机启动:
 
 
 
 
 
 
 
 
 
chkconfig ntpd on ntpd on
 
 
检查是否设置成功:
 
 
 
 
 
 
 
 
 
chkconfig --list ntpd --list ntpd
 
 
其中2-5为on状态就代表成功。
 
 
 
【主节点ntpserver配置】
在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步,这里选用202.120.2.101(上海交通大学网络中心NTP服务器地址)作为对时中心:
 
 
 
 
 
 
 
 
 
ntpdate -u 202.120.2.101 -u 202.120.2.101
 
 
ntp服务只有一个配置文件,配置好了就OK。 这里只给出有用的配置,不需要的配置都用#注掉,这里就再在给出:
 
 
 
 
 
 
 
 
 
vi /var/lib/ntp/drift /var/lib/ntp/drift
 
 
 
 
 
 
 
 
 
 
 
 
restrict 127.0.0.1 127.0.0.1
restrict -6 ::1 -6 ::1
restrict default nomodify notrap  default nomodify notrap 
server 202.120.2.101 prefer 202.120.2.101 prefer
includefile /etc/ntp/crypto/pw /etc/ntp/crypto/pw
keys /etc/ntp/keys /etc/ntp/keys
 
 
配置文件完成,保存退出
启动服务
 
 
 
 
 
 
 
 
 
 
service ntpd start ntpd start
 
 
检查是否成功
 
 
 
 
 
 
 
 
 
 
ntpstat
 
 
命令查看同步状态,出现以下状态代表启动成功:
 
 
 
 
 
 
 
 
 
synchronised to NTP server () at stratum 2time correct to within 74 mspolling server every 128 s to NTP server () at stratum 2time correct to within 74 mspolling server every 128 s
 
 
*如果出现异常请等待几分钟,一般等待5-10分钟才能同步。
【slave节点ntp客户端配置】
 
 
 
 
 
 
 
 
 
vi /var/lib/ntp/drift /var/lib/ntp/drift
 
 
 
 
 
 
 
 
 
 
 
 
restrict 127.0.0.1 127.0.0.1
restrict -6 ::1 -6 ::1
restrict default kod nomodify notrap nopeer noquery default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery -6 default kod nomodify notrap nopeer noquery
#这里是主节点的主机名或者ip
server yeexun-1 yeexun-1
includefile /etc/ntp/crypto/pw /etc/ntp/crypto/pw
keys /etc/ntp/keys /etc/ntp/keys
 
 
保存退出
请求服务器前,请先使用ntpdate手动同步一下时间
ntpdate -u yeexun01 (主节点ntp服务器)
*这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步。
启动服务:
service ntpd start
安装perl【所有节点】
由于虚拟机系统为centos6.5-leo,无perl,需要先安装
为了yum顺利进行,配置/etc/resolv.conf,删除原来的nameserver,添加
 
 
 
 
 
 
 
 
 
vi  /etc/resolv.conf  /etc/resolv.conf
 
 
 
 
 
 
 
 
 
 
 
 
nameserver 192.168.1.1 192.168.1.1
nameserver 114.114.114.114 114.114.114.114
 
 
安装perl和numactl
 
 
 
 
 
 
 
 
 
 
yum install -y perl install -y perl
yum install -y numactl install -y numactl
 
 

6.4安装Cloudera Manager

6.4.1解压cloudera manager

 
 
 
 
 
 
 
 
 
tar zxvf cloudera-manager-el6-cm5.8.1_x86_64.tar.gz zxvf cloudera-manager-el6-cm5.8.1_x86_64.tar.gz
 
 

cloudera manager的目录默认位置在/opt下,将解压后的cm-5.8.1和cloudera目录放到/opt目录下

 

 
 
 
 
 
 
 
 
 
cp -r cm-5.8.1 /opt -r cm-5.8.1 /opt
cp -r cloudera /opt -r cloudera /opt
 
 

6.4.2 为Cloudera Manager 5建立数据库

添加mysql-connector到/opt/cm-5.8.1/share/cmf/lib目录下(mysql 驱动包)
 
 
 
 
 
 
 
 
 
cp mysql-connector-java-5.1.26-bin.jar /opt/cm-5.8.1/share/cmf/lib/ mysql-connector-java-5.1.26-bin.jar /opt/cm-5.8.1/share/cmf/lib/
 
 
在mysql中创建CDH MANAGER对应的database和user及password
 
 
 
 
 
 
 
 
 
 
CREATE USER 'cm'@'localhost' IDENTIFIED BY '123qwe'; USER 'cm'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON *.* TO 'cm'@'localhost' ; ALL PRIVILEGES ON *.* TO 'cm'@'localhost' ;
CREATE USER cm IDENTIFIED BY '123qwe'; USER cm IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON *.* TO cm ; ALL PRIVILEGES ON *.* TO cm ;
flush privileges; privileges;
 
 
在主节点初始化CM5的数据库
 
 
 
 
 
 
 
 
 
/opt/cm-5.8.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123qwe --scm-host localhost scm scm scmcm-5.8.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123qwe --scm-host localhost scm scm scm
 
 
6.4.3 Agent配置
修改/opt/cm-5.8.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名【yeexun-1】
 
 
 
 
 
 
 
 
 
vi /opt/cm-5.8.1/etc/cloudera-scm-agent/config.ini /opt/cm-5.8.1/etc/cloudera-scm-agent/config.ini
 
 
 
 
同步Agent到其他节点
 
 
 
 
 
 
 
 
 
 
scp -r /opt/cm-* root@yeexun-2:/opt -r /opt/cm-* root@yeexun-2:/opt
scp -r /opt/cm-* root@yeexun-3:/opt -r /opt/cm-* root@yeexun-3:/opt
 
 
在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.8.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

6.4.4 准备Parcels,用以安装CDH5

将CDH5相关的Parcel包放到主节点的
 
 
 
 
 
 
 
 
 
/opt/cloudera/parcel-repo/cloudera/parcel-repo/
 
 
目录中(如果没有该目录,则手动创建)
相关的文件如下:
 
 
 
 
 
 
 
 
 
 
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel             cp CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel /opt/cloudera/parcel-repo/-5.8.0-1.cdh5.8.0.p0.42-el6.parcel             cp CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel /opt/cloudera/parcel-repo/
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1        cp CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha /opt/cloudera/parcel-repo/-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1        cp CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha /opt/cloudera/parcel-repo/
manifest.json                                     cp manifest.json /opt/cloudera/parcel-repo/.json                                     cp manifest.json /opt/cloudera/parcel-repo/
 
 
最后将CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1重命名为CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1文件。

6.4.5 启动脚本

启动服务端
 
 
 
 
 
 
 
 
 
/opt/cm-5.8.1/etc/init.d/cloudera-scm-server startcm-5.8.1/etc/init.d/cloudera-scm-server start
/opt/cm-5.8.1/etc/init.d/cloudera-scm-server statusopt/cm-5.8.1/etc/init.d/cloudera-scm-server status
 
 
启动Agent服务【所有节点(包括master)】
(创建目录否则会启动失败)
 
 
 
 
 
 
 
 
 
mkdir /opt/cm-5.8.1/run/cloudera-scm-agent /opt/cm-5.8.1/run/cloudera-scm-agent
 
 
 
 
 
 
 
 
 
 
 
/opt/cm-5.8.1/etc/init.d/cloudera-scm-agent startcm-5.8.1/etc/init.d/cloudera-scm-agent start
 
 
我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart,查看状态是status。
**** agent端agent的日志目录
 
 
 
 
 
 
 
 
 
/opt/cm-5.8.1/run/cloudera-scm-agent/process/logcm-5.8.1/run/cloudera-scm-agent/process/log
 
 
**** server的日志目录
 
 
 
 
 
 
 
 
 
 
/opt/cm-5.8.1/log/cloudera-scm-server/cloudera-scm-server.logcm-5.8.1/log/cloudera-scm-server/cloudera-scm-server.log
 
 
出现问题根据里面的日志来排查问题

7用Cloudera Manager配置集群

Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
这时可以通过浏览器访问主节点的7180端口测试:
一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin。
 
 
 
登录后出现用户许可条款和条件页面
 
 
点击继续,选择版本,继续
注意由于本人使用两台虚拟机安装的,所以只会显示两台
 
 
 
 
 
继续
 
为CDH群集安装指定主机,如果agent启动正确,则会自动出现配置的机器
 
各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。
接下来,出现以下包名CDH-5.8.0-1.cdh5.8.0.p0.42,说明本地Parcel包配置无误,直接点继续就可以了。
 
点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了。
 
验证主机正确性,可根据提示做出相应修改,比如:
配置swap及切片(检查系统环境的时候执行)
vi /etc/sysctl.conf
添加:vm.swappiness=0
关闭大的切片:
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
 
选择需要安装的CDH5服务(选择所有服务)
 
群集设置-角色分配,保持默认即可
群集设置-测试数据库连接
由于前面卸载了mysql-libs,影响到hue的测试,重新安装mysql-libs,
rpm -ivh compat-mysql51-5.1.73-1.el6.remi.x86_64
yum install libxslt -y
输入前期创建的hive、hue、reportsmanager和oozieserver的数据库,用户名和密码
 
群及设置-审核更改,保持默认
终于到安装各个服务的地方了,注意,这里安装Hive的时候可能会报错,因为我们使
用了MySql作为hive的元数据存储,hive默认没有带mysql的驱动,通过以下命令拷贝一个就行了:
cp mysql-connector-java-5.1.26-bin.jar  /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib/
oozie安装可能出现缺mysql jdbc包:
cp mysql-connector-java-5.1.26-bin.jar  /var/lib/oozie
 
接下静静地等待即可
 
安装完成后,就可以进入集群界面看一下集群的当前状况了
 
8用Cloudera Manager安装服务
8.1安装HDFS
1.选择添加服务,选择要安装的NameNode 主机  以及DataNode主机。选择好要安装的主机后点击继续
 
2.等待CM自动安装,没有错误点击继续即可
8.2向集群中添加YARN
1.选择添加的服务YARN
 
2.选择要添加的YARN
 
3.配置YARN的Resourcemanager和NodeManager
这里选择yeexun-7做为Resourcemanager,(主节点),选择后点击继续
 
4.审核 选择NodeManager的本地目录,完成后点击继续
 
 
4.等待CM自动安装YARN,完成没有错误后点击继续
 
5.YARN安装成功
 

8.3安装zookeeper

1.选择添加服务,选择要安装的Zookeeper
 
2.为添加的Zookeeper选择Server,点击继续
 
3.添加Zookeeper的数据目录(默认)即可,点击继续
 
4.等待CM自动安装Zookeeepr
 
 

8.4安装Hbase

1.选择添加服务
2.选择安装的Master,RegionServer。选择完成后点击继续。
3.使用默认的路径,点击继续。
4.等待CM自动安装好Hbase。
 
 
 

8.5安装Hive

1.选择添加服务,添加Hive
 
2.为Hive选择一组依赖,点击继续。
 
3.配置Hive的主机
 
4.选择Hive要连接的数据库,在MySQL中创建Hive数据库,创建用户hive,给hive设置权限。
 
5.创建Hive的数据仓库目录
 
6.等待CM自动添加。(在自动创建时可能会出现报错,因为MySql作为的元数据存储,hive默认没有带mysql驱动,通过以下设置:
cp mysql-connector-java-5.1.26-bin.jar  /opt/cloudera/parcels/CDH-5.8.0-
cdh5.8.0.p0.42/lib/hive/lib/
cp mysql-connector-java-5.1.26-bin.jar  /var/lib/hive/)
等待安装完成,点击继续
 
 

8.6安装OOzie

1.添加服务,创建OOZie
 
 
2.为Oozie选择一组依赖关系
 
3.选择配置Oozie Server的主机
 
4.选择Oozie的数据库。在Mysql中创建Oozie数据库,创建Oozie用户,设置权限。
测试数据库连接是否成功。
 
 
 
5.等待CM自动安装,安装过程中可能会报错,找不到mysql驱动包
解决:cp mysql-connector-java-5.1.26-bin.jar  /var/lib/oozie
完成后点击继续
 
 

8.7安装Sqoop

1.选择要安装的Sqoop服务,设置Sqoop的主机。
 
2.设置目录(默认)
 
3.等待CM自动安装。
 
 

8.8安装Hue

1.添加服务,安装Hue,为Hue设置安装的主机。
 
2.在MySQL里创建hue数据库,并且给用户设置权限。在这里可能会报错,因为千米那卸载了mysql-libs ,影响到hue的测试,要重新安装mysql-libs
rpm -ivh compat-mysql51-5.1.73-1.el6.remi.x86_64
yum install libxslt -y
然后测试数据库连接就可以了
 
3.等待CM自动安装,完成后点击继续。
 
4.安装完成
 
 

8.9安装Flume

1.添加Flume服务,CM会自动安装(过程较快)
 

8.10安装KafKa

1.添加安装Kafka服务。设置安装Kafka服务的主机。
 
 
2.在安装之前由于缺少Kafka 包所以点击继续会报错,在这里我们先把包导入
cp  /root/cdh5/packages/cdh5/KAFKA* /opt/cloudera/parcel-repo/
然后对包进行分发
 
3.在点击继续之前我们要对Java Heap Size of Broker进行设置,在kafka的配置里面。
设置为  1 G  防止内存溢出
 
 
4.然后点击继续,就可以等待CM自动安装kafka了。
 

8.11安装Spark

1.添加安装Spark服务。选择安装Spark的主机,点击继续。
 
2.等待CM自动安装Spark服务。完成后点击继续。
 
 

8.12安装Impala

8.13安装Kudu

9用Cloudera Manager安装新增服务

10卸载CDH
1. 关闭集群中的所有服务。
这个可以通过clouder manger 主页关闭集群。
 
附录 A: CDH所使用的网络端口
11术语表

猜你喜欢

转载自blog.csdn.net/cyg521/article/details/106243410
今日推荐