手把手教你在centos7下搭建大数据CDH5.15.2平台(5个节点)

 

1、CDH的介绍

1.1 CDH是什么?

hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的改变。
Cloudera公司的发行版,我们将该版本称为CDH(Cloudera Distribution Hadoop)。截至目前为止,CDH共有5个版本,其中,前两个已经不再更新,最近的两个,分别是CDH4在Apache Hadoop 2.0.0版本基础上演化而来的),CDH5,它们每隔一段时间便会更新一次。

• Cloudera's Distribution, including Apache Hadoop

• 是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建

• 提供了Hadoop的核心

– 可扩展存储

– 分布式计算

1.2 为什么用CDH

CDH和Apache版本主要区别如下:  
    (1) 、CDH对Hadoop版本的划分非常清晰,相比而言,Apache版本较为混乱,相对来所,CDH的兼容性,安全性,稳定性要好于Apache hadoop 
    (2)、安全 CDH支持Kerberos安全认证,apache hadoop则使用简陋的用户名匹配认证 
   (3)、CDH文档清晰,很多采用Apache版本的用户都会阅读CDH提供的文档,包括安装文档、升级文档等。 
  (4)、CDH支持Yum/Apt包,Tar包,RPM包,CM安装,Cloudera Manager三种方式安装,Apache hadoop只支持Tar包安装。
Cloudera版本层次更加清晰,且它提供了适用于各种操作系统的Hadoop安装包,可直接使用apt-get或者yum命令进行安装,更加方便。

1.2.1 Hadoop的不足

• 版本管理混乱

• 部署过程繁琐、升级过程复杂

• 兼容性差

• 安全性低

1.2.2 CDH的优势

• 版本划分清晰

• 版本更新速度快

• 支持Kerberos安全认证

• 文档清晰

• 支持多种安装方式(Cloudera Manager方式)

cloudera官网:https://www.cloudera.com/

cloudera官方文档:https://www.cloudera.com/documentation/enterprise/latest.html

1.3 CDH的安装方式

使用Cloudera Manager安装cdh集群

采用Cloudera Manager部署cdh集群,部署和管理都相对简单,推荐采用这种方式。本次实验亦是采用这种方式。

Cloudera Manager的安装有如下三种方式:

(1)使用cloudera-manager-installer.bin在线安装

(2)使用rpm、yum、apt-get方式在线安装

(3)使用Tarballs的方式离线安装

(1)使用第一种方式进行安装,需要节点能够网络访问官网,由于安装包比较大,在线安装时间会比较长,网络质量不好也容易造成安装中断,所以不推荐采用这种方式

(2)使用第二种方式安装,较为方便简单,可以通过几条yum命令即可完成安装,这种安装方式同样需要网络质量好的环境进行在线安装,相对于第一种,较为方便。

(3)使用第三章安装方式,是通过下载tar包进行离线安装,相对来说是安装时间是最短的,本次实验是采用这种安装方式进行安装部署。

使用命令行方式安装。

采用这种方式,需要搭建内部yum服务器,将cdh相应安装文件同步至yum服务器,在安装时节点从内部yum服务器安装cdh集群,采用这种安装方式较为方便,后期进行升级、重新安装也比较容易,需要注意的是在安装前需要将官方的rpm安装包同步至本地,同步过程会比较长。如果不搭建内部yum服务器,也可以直接使用官方yum源在线安装,但是这种安装方式非常耗时,受网络影响大,不建议使用这种方式安装。

本次实验使用Tarballs的方式离线安装部署Cloudera Manager和cdh组件,并通过Cloudera Manager配置管理cdh集群。

1.4 CDH各节点配置信息

 

序号

主机编号

操作系统

部署组件

内存

(由电脑内存决定)

磁盘

节点

IP

1

cdh1

centos 7.6

NameNode

15G

100G
磁盘容量可以按需增加

主节点

192.168.1.128

2

cdh2

Centos7.6

SecondaryNameNode
DataNode

3G

50G
磁盘容量可以按需增加

从节点

192.168.1.129

3

cdh3

centos 7.6

DataNode

3G

50G
磁盘容量可以按需增加

从节点

192.168.1.130

4

cdh4

centos 7.6

DataNode

3G

50G
磁盘容量可以按需增加

 

从节点

192.168.1.131

5

Cdh5

centos 7.6

DataNode

3G

50G

磁盘容量可以按需增加

从节点

192.168.1.132

6

Cdh6

centos 7.6

DataNode

3G

50G

磁盘容量可以按需增加

从节点

192.168.1.133

2、版本说明

(1)虚拟机:VMware® Workstation 14 Pro

(2)系统:centos7.6(64位)—CentOS-7-x86_64-DVD-1810.iso

(3)CDH:cdh5.15.2

(4)JDK:jdk-8u191-linux-x64.tar.gz

(5)连接工具:xshell6 和 xftp (文件名:Xshell Plus6.0.0007.rar,解压后,点击绿化.bat,即可使用)

(6)cloudera-manager安装方式:

                 使用cloudera-manager-installer.bin在线安装

3、VMware下载与安装

3.1 VMware下载

         直接打开浏览器,输入VMware下载,也可以登录官网下载。

3.2 VMware安装使用

      下载下来的是一个可执行的exe文件,选择安装目录,点击直接下一步,下一步安装即可,安装完成后,启动需要输入许可证秘钥,这里可根据直接下载的版本,浏览器搜索其秘钥即可,然后填写秘钥即可。我这里是VMware 14 pro,其注册完成后,可通过:帮助→关于VMware,查看其版本信息和是否注册成功,如图3-1所示。 

                                                图3-1 VMware的版本信息和过期情况

4、系统镜像的下载

        这里选用centos系统镜像,也可选用ubantu、redhat等。登录centos官网,其镜像可分为完整版(DVD.ISO)和简装版(Minimal ISO),最好选择完整版。这里的系统镜像为CentOS-7-x86_64-DVD-1810.iso。

 

5、CDH的下载

(1)下载软件cloudera-manager.repo文件

下载网站为:http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

下载完成后,利用编辑器打开此文件,将

baseurl=https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5/

修改为:

baseurl=https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.2/

之后保存即可。

(2)下载cloudera-manager-installer.bin

下载网站为:http://archive.cloudera.com/cm5/installer/5.12.2/cloudera-manager-installer.bin

(3)下载CDH的Parcel文件

下载网站为:http://archive.cloudera.com/cdh5/parcels/5.12.2/

下载三个文件:

CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1

CDH-5.12.2-1.cdh5.12.2.p0.4-el7.parcel

manifest.json

注意:

下载parcel文件时需要注意centos版本,el5是centos5.X下使用,el6在centos6.x下使用,el7centos7.x下使用。

修改CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1

CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha

(4)登录网址https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.2/RPMS/x86_64/里面所有的文件均下载,放入CDH包中

 

6、安装前期准备

新建六台虚拟机,其中一台作为主机,另外五台作为从机。

6.1 虚拟机安装

新建虚拟机,以以下步骤进行。

第一步:打开VMware

第二步:点击创建新的虚拟机

第三步:选用典型安装,将下载的系统镜像添加,这里选择稍后安装操作系统,如图6-1所示。

                                                                   图6-1 添加系统镜像

第四步:为虚拟机命名和选择存储位置,如图6-2所示。

                                                                                        6-2 命名虚拟机

第五步:直接下一步,到自定义硬件,包括定义网络适配器和定义DVD,修改内存(和电脑内存有关),磁盘(根据需要进行设置),这里参考1.4节,如图6-3所示。

                                                                               图6-3 自定义配置硬件

第六步:点击完成,启动此虚拟机,开始自动安装(2分钟左右),直至弹出如图6-4所示的界面,选择简体中文,下一步即可。

                                                                                 图6-4 选择语言

第七步:安装位置选择自动分配,接下来是网络和主机名的配置,设置主机名需要点击右侧应用,如图6-5所示。

                                                                         图6-5 配置网络和主机名

第八步:点击完成,再点击开始安装,这里在配置root密码和创建用户(可以不用创建),如图6-6所示。

                                                                                  图6-6 设置root密码

第九步:图6-6就开始写入文件,自动安装(5分钟左右),等安装完成后,点击重启,如图6-7所示。

                                                                                    图6-7 重启虚拟机

第十步:将此虚拟机的内存设为3G,步骤为:点击此虚拟机,右键,选择设置,将内存增加为3G,默认是1G,最后启动,输入用户名、密码即可。

注意:

此系统没有安装工具,需要使用命令:yum install net-tools,进行安装,安装完成后,输入命令:ifconfig,查看本虚拟机的IP地址,如图6-8所示。

                                                                              图6-8 查看IP地址

第十一步:使用xshell6连接此虚拟机,进行其它操作。

6.2 配置主机名(所有节点)

命令:hostnamectl set-hostname cdh1

其实这里可以不用配置,在6.1的第七步已经完成了。

这里需要注意:

修改每台虚拟机的配置文件,设置固定IP

首先 cd /etc/sysconfig/network-scripts查看网络配置文件:

修改配置文件内容  

sudo vi ifcfg-ens33

初始配置:

修改如下:

IPv6全部注释,网络设置为静态,模式有dhcp和static,这里需改为static模式。

重启 

service network restart

查看修改后的ip:

Ifconfig

测试本机是否能Ping通虚拟机

测试虚拟机是否能连外网

如果都能正常连接再重启虚拟机看看ip是否变化,如果一切正常证明设置成功

6.3 添加主机名(所有节点)

[root@cdh1 ~]# vi /etc/hosts

将集群的主机名和IP均添加进入

这里是

192.168.1.128   cdh1

192.168.1.129   cdh2

192.168.1.130   cdh3

192.168.1.131   cdh4

192.168.1.132   cdh5

192.168.1.133   cdh6

6.4 关闭SELinux(所有节点)

命令

vi /etc/selinux/config

修改SELinux=disabled,如下所示:

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three values:

# targeted - Targeted processes are protected,

# minimum - Modification of targeted policy. Only selected processes are protected.

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

6.5 关闭防火墙(所有节点)

命令:

systemctl stop firewalld

查看防火墙状态命令:

systemctl status firewalld

如图6-9所示。

                                                                  图6-9 查看或关闭防火墙

6.6 安装ntp服务(所有节点上进行)

            网络时间同步协议(NTP)是时间同步的技术基础。大数据时代,整个处理计算系统内的大数据通信都是通过网络进行。时间同步也是如此,利用大数据的互联网络传送标准时间信息,实现大数据系统内时间同步。

按照Cloudera的官方建议,所有的CDH节点和Cloudea Manager节点都需要启动ntpd服务。

安装NTP

yum install ntp -y

 设置开机启动 :

systemctl enable ntpd.service

设置时间同步 :

 ntpdate -u s2c.time.edu.cn

6.7 JDK安装(所有节点)--这里可以用自带的,选择不用外置

可去官网下载JDK,这里jdk版本为1.8.0_191,jdk-8u191-linux-x64.tar.gz。

1、虚拟机下新建一目录,命令:mkdir /jdk,如下所示:

[root@cdh1 ~]# cd /

[root@cdh1 /]# mkdir /jdk
  1. 将下载的jdk、利用xftp,上传到jdk目录下
  2. 进入jdk目录,将jdk解压到/usr/local/目录下,命令为:

 

tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/local/
  1. 配置系统环境变量:
vi /etc/profile

将以下三行添加进去即可

export JAVA_HOME=/usr/local/jdk1.8.0_191

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使环境变量配置生效:

source /etc/profile

看成java版本,是否配置成功:

java -version

6.8 安装mysql(所有节点)-----这里可以用自带的,选择不用外置

删除原来的数据库:

centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下: 

[root@localhost ~]# rpm -qa|grep mariadb  // 查询出来已安装的mariadb

[root@localhost ~]# rpm -e --nodeps 文件名  // 卸载mariadb,文件名为上述命令查询出来的文件

然后现在开始将当前目录切换到root也就是:   

cd ~

下载与安装MySQL:

这里采用Yum管理好了各种rpm包的依赖,能够从指定的服务器自动下载RPM包并且安装,所以在安装完成后必须要卸掉,否则会自动更新。

1.安装MySQL官方的yum repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2.下载rpm包

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

3.安装MySQL服务

[root@localhost ~]# yum -y install mysql-community-server

最后会出现个complete!

4.启动MySQL服务

[root@localhost ~]# systemctl start  mysqld.service

看到类似下面的界面,或者以Starting MySqL server..   started MysqlServer..结尾的就成功启动了

还有几个关于MySQL常用的命令:

重启:

systemctl restart mysqld.service

停止:

systemctl stop mysqld.service

查看状态:

systemctl status mysqld.service 

还可以配置MySQL的开机启动:

systemctl enable mysqld

systemctl daemon-reload   刚刚配置的服务需要让systemctl能识别,就必须刷新配置

 关于登录MySQL:

登录命令:

mysql -u root -p

意思就是用root用户登录,然后准备输入密码。

第一次启动MySQL后,就会有临时密码,这个默认的初始密码在/var/log/mysqld.log文件中,我们可以用这个命令来查看:

grep "password" /var/log/mysqld.log

 

 

登录数据库后,输入

mysql> set global validate_password_policy=0;  //改变密码等级

mysql> set global validate_password_length=4;   //改变密码最小长度

然后再输入刚刚的命令:

SET PASSWORD = PASSWORD('root');

配置远程登录:

MySQL默认root用户只能本地登录,如果要远程连接,要简单设置下,这里直接用root来远程登录不添加其他角色。

使用命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

.*.的意思是所有库的所有表;To后面跟的是用户名;@后面跟的是ip地址,%代表所有ip地址,identified by后面的是密码。

然后再:

mysql> flush privileges; 

注意:

需要注意mysql的配置文件中的bindaddress 的参数和skip-networking 配置

bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为127.0.0.1以外的值

skip-networking : 如果设置了该参数项,将导致所有TCP/IP端口没有被监听,也就是说出了本机,其他客户端都无法用网络连接到本mysql服务器,所以应该注释掉该参数

添加3306端口:

命令:

firewall-cmd --zone=public --add-port=3306/tcp --permanent;

结果说没有运行防火墙:

那就先开防火墙咯:

systemctl status firewalld  查看防火墙状态

systemctl start firewalld  打开防火墙

然后再输入那个开放3306端口的命令就行了

firewall-cmd --zone=public --add-port=3306/tcp --permanent;

firewall-cmd --reload  重启防火墙

最后的收尾:

1.我们刚开始说要写在yum的repository,用这个命令就行:

yum -y remove mysql57-community-release-el7-10.noarch

2.MySQL设一下utf8:

打开/etc/my.cnf也就是数据库的配置文件,然后在底部复制粘贴:

[mysqld] 

character_set_server=utf8

init_connect='SET NAMES utf8'

采用navicat新建数据库时,需要将编码方式设置为,字符集:utf8 -- UTF-8 Unicode ,排序规则:utf8_general_ci

3.配置文件的说明:

/etc/my.cnf 这是mysql的主配置文件
/var/lib/mysql mysql数据库的数据库文件存放位置
/var/log mysql数据库的日志输出存放位置

6.9 配置免密登陆

在主节点上配置,主节点到自身和从节点的免密登陆。

[root@cdh1 ~]cd ~

[root@cdh1 ~]ssh-keygen

其后一直enter即可。

再将免密添加到主节点和其他从节点上。

命令:

ssh-copy-id cdh1

ssh-copy-id cdh2

ssh-copy-id cdh3

ssh-copy-id cdh4

ssh-copy-id cdh5

ssh-copy-id cdh6

测试是否配置成功,在cdh1上登陆cdh2或者其他主机,命令

ssh cdh2

这样表示登陆成功。

推出直接输入exit命令即可。

6.10 下载mysql驱动包(此步是建立在安装外置数据库前提下)

从mysql官网下载mysql的驱动包,下载之后的文件需要更名为:mysql-connector-java.jar,之后上传到虚拟机目录/usr/share/java/下,提示没有这个java目录,需要新建一个java目录,命令

7、CDH平台搭建

7.1 上传文件到虚拟机

新建app目录

mkdir -p /app

登录到根目录包下:

cd /app

将之前下载的cdh上传到app目录下。

本次安装的方式是采用离线安装部署,在部署前先下载好离线安装包,我们的实验的版本是cdh5.12.2。

7.2 安装cdh5.12.2离线包(所有节点均操作)

cdh集群中每个节点(cdh1-6)都需要安装cdh5.12.2离线包。以下以cdh1为例子说明。将离线安装包放置于每个节点的/app目录下。

离线安装包中包含了cdh部署中的大部分安装文件,还有部分小文件需要在安装过程中自动联网下载,将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel、manifest.json、CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha拷贝至相应路径。

# cp cloudera-manager.repo /etc/yum.repos.d/
# yum clean all 
# yum list | grep cloudera
# cd /app
# yum -y localinstall *
# cp CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel /opt/cloudera/parcel-repo/
#cp manifest.json /opt/cloudera/parcel-repo/
# cp CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha /opt/cloudera/parcel-repo/
注意:cp过程需要2分钟左右。

7.3 主节点安装Cloudera manager(只是主节点cdh1上操作)

安装完cdh离线包后,在主节点安装Cloudera manager组件。Cloudera manager组件在主节点cdh1上安装。

第一次使用./cloudera-manager-installer.bin安装时会提示错误信息,此时应先将/etc/cloudera-scm-server/db.properties 这个文件删除

# cd /app
# chmod 775 cloudera-manager-installer.bin
# ./cloudera-manager-installer.bin
# rm /etc/cloudera-scm-server/db.properties
# ./cloudera-manager-installer.bin

     使用./cloudera-manager-installer.bin安装过程比较简单,参考提示下一步完成即可

完成Cloudera manager的部署后,接下来我们将在Cloudera manager中配置cdh集群服务。可以通过检测端口号7180查看Cloudera manager服务是否启动。

7.4 Cloudera manager 配置服务

cdh集群服务通过Cloudera manager进行配置,如下,在浏览器中输入Cloudera manager的IP和端口号。

      http://192.168.1.128:7180,账户密码默认为admin/admin

 

输入cdh主机节点cdh[1-6]

cdh版本选择CDH-5.15.2-1.cdh5.15.2.p0.3,与安装版本对应

                因为在节点环境准备阶段,已经安装了JDK,这里不用勾选安装。

保持默认,不勾选单用户模式

配置集群SSH免登录验证,使用root用户,密码为root

等待集群的安装,因为在前面的离线安装中已经安装了大部分文件,所以这个过程会比较快

如果出现这个错误:

解决方法:
是因为节点上次安装没有成功,需要删除cm_guid文件才能再次安装。

[root@cdh1 ~]# find / -name cm_guid
/var/lib/cloudera-scm-agent/cm_guid
[root@cdh1~]# rm -rf /var/lib/cloudera-scm-agent/cm_guid      --删除文件
[root@cdh1 ~]# /etc/init.d/cloudera-scm-agent restart       --重启服务

完成主机节点配置的验证

选择安装集群的服务,本次安装选择含Spark的内核

最后,配置集群服务的分配,cdh1作为主节点,尽可能的不作为数据节点使用。

配置集群的数据库,我们配置了外置的数据库,使用外置数据库,但需要利用Navicat在cdh1下建立数据库。(如果需要内嵌的数据库就不需要这一步)

这里是用的自定义数据库,就是我们前面安装的mysql数据库,可以不用安装,直接用内嵌数据库。

审核更改,直接默认,点击继续即可。

至此,我们完成cdh集群服务的部署

各节点运行状况,内存分配情况:

注意:当断电和关机,重启虚拟机后,需要对所有虚拟机关闭防火墙和主节点重新启动CM服务。

cd /etc/rc.d/init.d/

./cloudera-manager-server restart

./cloudera-manager-agent restart

8、端口说明

(1)8888:hue端口,对hive数据库进行增删改查。

(2)19888:hdfs端口,查看hdfs的job

(3)18088:spark端口

(4)50075:HDFS端口

(5)8042:HDFS节点详细信息

(6)60010:HBase主页面

(7)50070:HDFS端口,查看namenode节点信息

9、错误说明

错误1:运行脚本报错

org.apache.hadoop.security.AccessControlException: Permission denied: user=admin, access=WRITE, inode="/user/output":root:supergroup:drwxr-xr-x

问题原因,由于hdfs默认是root用户,需要添加hdfs用户

解决办法:在系统配置文件中添加一行:

export HADOOP_USER_NAME=hdfs

再保存,

source /etc/profile

即可运行sh脚本了。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值