Hadoop环境搭建(离线部署CDH版本)

本文详细描述了如何在CentOS7系统上离线安装和配置CDH5.14.2,包括JDK设置、系统环境准备、ClouderaManagerServer和Agent安装、CDH5组件安装以及Hive、Oozie、Hue和Impala等服务的配置。
摘要由CSDN通过智能技术生成

一、说明

相比于传统Hadoop繁琐的配置文件与版本管理,CDH提供了一个可以在线搭建Hadoop等组件的集群的系统。只需要现在本地配置好jdk等环境并安装好CM Server和CM Agent服务即可在UI界面控制集群。本文介绍了CDH在CentOS7下的安装步骤。

操作系统:CentOS 7

JDK版本:1.7.0_80

所需安装包及版本说明:

CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel

CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha

manifest.json

cloudera-manager-centos7-cm5.14.2_x86_64.tar.gz

CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中

CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1重命名为CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel文件

本文采用离线安装方式

二、系统环境搭建

由于本机16G内存受限,所以只搭建了三个节点,如果内存够用可以适当增加几个其他节点。

搭建CDH之前需要创建虚拟机node01、node02、node03并保证3台虚拟机之间可以通信,同时需要依赖MySQL。如果没有环境的可以参考本人前两篇文章。

1、网络配置(所有节点)

修改hostname主机名

vi /etc/hosts

修改IP地址

vi /etc/sysconfig/network-scripts/ifcfg-ens33

重启网络

service network restart

修改ip与主机名的对应关系

vi /etc/hosts

2、SSH免密码登录

(1)node01、node02、node03分别执行以下命令,生成dsa。

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cd .ssh

(2)分别分发密钥,本文只展示node01分发node02的命令,命令如下:
node01执行以下命令,分发密钥。

scp id_dsa.pub node02:`pwd` /node01.pub

node02执行以下命令

cat ~/.ssh/node01.pub >> ~/.ssh/authorized_keys

node01执行以下命令,验证免秘钥配置是否成功,如果成功,则不需要密码即可访问node02。

ssh node02

node01、node02、node03间分别执行上述命令,分发并配置密钥,实现所有节点之间可以在不使用密码的情况下互相访问。

3、关闭防火墙

临时关闭:

systemctl stop firewalld

设置开机禁用防火墙(重启后生效):

systemctl disable firewalld.service

4、关闭SELINUX

临时关闭:

setenforce 0

修改配置文件/etc/selinux/config(重启生效):

vi /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

SELINUX=disabled

查看SELINUX状态:

sestatus

SELinux status: enabled(enabled:开启;disabled:关闭)

2.使用命令:getenforce

5、安装JDK

解压JDK安装包

cd /opt/software
rpm -i jdk-7u67-linux-x64.rpm

编写环境变量

whereis java
vi + /etc/profile

环境变量中添加:

export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
. /etc/profile

6、设置NTP(保持时间一致可以不安装)

所有节点安装NTP:

yum install ntp

配置开机启动:

chkconfig ntpd on

检查是否设置成功(2-5为on状态则成功):

chkconfig --list ntpd 

设置同步(时钟服务器根据实际环境设置、本文采用210.72.145.44-国家授时中心服务器IP地址)

ntpdate -u ntp.sjtu.edu.cn

7、安装配置MySQL(node01)

yum install mysql-server

如果找不到软件包,执行如下命令

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

启动服务并进入数据库

service mysqld start
mysql

数据库中执行以下命令设置密码:

use mysql;
grant all privileges on *.* to 'root'@'%' identified by '121314' with grant option;
select host,user,password from user;
update user set password=password('121314') where user='root' and host='localhost';
flush privileges;
quit

8、下载依赖包(node01、node02、node03)

  • chkconfig
  • python (2.6 required for CDH 5)
  • bind-utils
  • psmisc
  • libxslt
  • zlib
  • sqlite
  • cyrus-sasl-plain
  • cyrus-sasl-gssapi
  • fuse
  • portmap
  • fuse-libs
  • redhat-lsb
yum install -y chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

三、Cloudera Manager Server&Agent安装

1、安装Cloudera Manager Server&Agent

拷贝cloudera-manager-centos7-cm5.14.2_x86_64.tar.gz到所有Server、Agent节点

创建cm目录(所有节点):

mkdir /opt/cloudera-manager

解压cm压缩包(node01):

cd /opt/software/
tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

2、创建用户cloudera-scm(所有节点)

cloudera-scm用户说明,摘自官网:

Cloudera Manager Server and managed services are configured to use the user account cloudera-scm by default, creating a user with this name is the simplest approach. This created user, is used automatically after installation is complete.

执行:

useradd --system --home=/opt/cloudera-manager/cm-5.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

3、配置CM Agent(node01)

修改文件/opt/cloudera-manager/cm-5.14.2 /etc/cloudera-scm-agent/config.ini中server_host以及server_port

vi /opt/cloudera-manager/cm-5.14.2/etc/cloudera-scm-agent/config.ini
server_host=node01
server_port=7182

4、配置CM Server的数据库

将驱动包拷贝到目录下(注意拷贝过去的驱动包名字一定要和下边的一样,否则会报错):

cp /opt/software/mysql-connector-java-5.1.26-bin.jar /usr/share/java/mysql-connector-java.jar     

进入MySQL执行:

grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;

进入schema目录

cd /opt/cloudera-manager/cm-5.14.2/share/cmf/schema/

执行./scm_prepare_database.sh mysql -h myhost1.sf.cloudera.com -utemp -ptemp --scm-host myhost2.sf.cloudera.com scm scm scm格式代码

例如:

./scm_prepare_database.sh mysql -h node01 -utemp -ptemp --scm-host node01 scm scm scm

(对应于:数据库类型、数据库服务器、用户名、密码、CMServer所在节点…….)

5、创建Parcel目录(node01)

(1)Manager节点创建目录/opt/cloudera/parcel-repo,执行:

mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

将下载好的文件(CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel、CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha、manifest.json)拷贝到该目录下。

(2)Agent节点创建目录/opt/cloudera/parcels,执行:

mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

(3)拷贝文件并改名

cp /opt/software/CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel* /opt/cloudera/parcel-repo/
mv CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1 CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha
cp /opt/software/manifest.json /opt/cloudera/parcel-repo/

(4)分发cloudera-manager

scp -r /opt/cloudera-manager/* root@node02:/opt/cloudera-manager/
scp -r /opt/cloudera-manager/* root@node03:/opt/cloudera-manager/

6、启动CM Server&Agent服务

cd /opt/cloudera-manager/cm-5.14.2/etc/init.d/

执行:

node01启动Server:

/opt/cloudera-manager/cm-5.14.2/etc/init.d/cloudera-scm-server start

node01、node02、node03启动Agents:

/opt/cloudera-manager/cm-5.14.2/etc/init.d/cloudera-scm-agent start

Sever首次启动会自动创建表以及数据,不要立即关闭或重启,否则需要删除所有表及数据重新安装

访问:http://node01:7180,若可以访问(用户名、密码:admin),则安装成功。

Manager启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。
在这里插入图片描述
登录后进入如下界面
在这里插入图片描述

四、CDH5安装

1、CM Manager && Agent成功启动后,登录前端页面(用户名、密码:admin)进行CDH安装配置。http://node01:7180
在这里插入图片描述

2、选择Cloudera Express免费版本,CM5已经去除50个节点数量的限制。
在这里插入图片描述
在这里插入图片描述

3、各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。
在这里插入图片描述

4、接下来,出现以下包名,说明本地Parcel包配置无误,直接点继续就可以了。

本文使用的版本为CDH5.14.2-cdh5.14.2.p0.3
在这里插入图片描述

5、点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约10多分钟吧,取决于内网网速。

(若本地Parcel有问题,重新检查创建Parcel目录是否配置正确)
在这里插入图片描述

6、接下来是服务器检查,可能会遇到以下问题:
在这里插入图片描述

Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:

通过以下命令即可解决。

echo 0 > /proc/sys/vm/swappiness 
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

在这里插入图片描述

7、接下来是选择安装服务:

测试采用了自定义服务,实际按工作环境来定咯~~

选择了HDFS、YARN(包含MapReduce2)、ZooKeeper
在这里插入图片描述

8、服务配置,一般情况下保持默认就可以了(Cloudera Manager会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了)
由于本机16G内存受限,所以只搭建了三个节点,导致NameNode与SecondaryNameNode在同一节点并且只有1个ResourceManager,如果内存够用可以适当增加几个其他节点。
在这里插入图片描述
9、下面是集群设置的审查页面,都是保持默认配置的:
在这里插入图片描述

10、服务的安装过程大约半小时内就可以完成,安装完成后,就可以进入集群界面看一下集群的当前状况了。
在这里插入图片描述
在这里插入图片描述
启动成功后进入集群监控页面。
在这里插入图片描述

五、添加Hive、Oozie、Hue、Impala等服务

1、MySQL建库&&删库

Hive

create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

Oozie

create database oozie DEFAULT CHARACTER SET utf8;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';

Hue

create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';

2、安装hive

(1)添加服务->Hive
在这里插入图片描述
(2)添加数据库配置
由于Hive需要依赖于数据库,所以此时需要额外添加数据库配置,数据库、用户名、密码就使用刚才创建好的。
在这里插入图片描述
(3)后续部分和上一部分的安装服务几乎一样,傻瓜式安装,直接点击“继续”即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、安装Oozie

安装方式同Hive。
(1)添加服务->Oozie

(2)Oozie需要先选择依赖组件,选择带有Hive的一个。
在这里插入图片描述
(3)自定义Oozie角色分配,使用CDH默认的即可。
在这里插入图片描述

(4)添加数据库配置,使用之前创建好的oozie数据库以及oozie用户即可。
在这里插入图片描述
(5)审核更改。
在这里插入图片描述
(6)添加成功。
在这里插入图片描述

4、安装Hue

安装方式同Hive。

(1)添加服务->Hue

(2)Hue需要先选择依赖组件,选择带有Hive和Oozie的一个(由于只有一个可选项,所以有时CDH会自动帮我们选上此可选项并直接进入下一项配置)。

在这里插入图片描述
(3)自定义 Hue 的角色分配,使用CDH自动分配的即可。

在这里插入图片描述
(4)添加数据库配置,使用之前创建好的hue数据库以及hue用户即可。

在这里插入图片描述
(5)审核更改。

在这里插入图片描述

(6)添加成功。

5、安装Impala

安装方式同Hive。

(1)添加服务->Impala

(2)Impala需要先选择依赖组件,选择带有Hive的一个(由于只有一个可选项,所以有时CDH会自动帮我们选上此可选项并直接进入下一项配置)。
在这里插入图片描述
(3)自定义 Impala的角色分配,使用CDH自动分配的即可。
在这里插入图片描述
(5)审核更改。
在这里插入图片描述
(6)添加成功。

6、启动

此时已经启动了所有需要的服务,CDH页面应该如下图所示。
在这里插入图片描述
jps命令显示的运行中角色如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分别执行以下命令在node02启动Impala并在node03启动Hive。

node02:

impala-shell

node03:

hive --service cli

在这里插入图片描述
在这里插入图片描述

六、小结

相比于传统Hadoop繁琐的配置文件与版本管理,CDH提供了一个可以在线搭建Hadoop等组件的集群的系统。只需要现在本地配置好jdk等环境并安装好CM Server和CM Agent服务即可在UI界面控制集群。

后续CDH的启动命令如下:

node01启动Server:

/opt/cloudera-manager/cm-5.14.2/etc/init.d/cloudera-scm-server start

node01、node02、node03启动Agents:

/opt/cloudera-manager/cm-5.14.2/etc/init.d/cloudera-scm-agent start

UI地址为 http://node01:7180

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helloWorldZMY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值