转载

轻松搞定cloudera环境搭建

一、cloudera背景介绍

Cloude Manager概述:

CDH是Cloudera公司对整体hadoop集群环境进行监控与管理的企业级大数据管理平台。

Cloudera Manager分为:

Cloudera Manager Server:对整个集群提供监控与管理操作。Cloudera Manager Server通过部署在不同设备上的Cloudera Manager Agent进行管理整体集群。Cloudera Manager Server需要部署在一台设备上。

Cloudera Manager Agent:部署在每个需要监控与管理的设备上。负责采集运行数据与执行下发的管理命令。

DataBase:关系型数据库是Cloudera Manager执行管理操作时,存储整体集群情况数据。

二、cloudera环境搭建——基础部分(3台机器都要做)

1、无关基础配置(忽略)

【注:基础命令设置均须切换到root模式,许多设置完成之后重启有效】

Ctrl+Alt+F2       #从kdump界面进入系统
startx            #从命令行界面切换到图形界面

#设置开机联网
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens160     #编辑文件将其中ONBOOT=no 改为ONBOOT=yes

2、相关软件下载

操作系统为Centos7.5 x64

cloudera manager的CDH版本要求:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#concept_jpd_hpz_jdb

1、CDH软件包官方最新稳定版下载地址:http://archive.cloudera.com/cdh5/parcels/latest/

在该地址需要下载以下三个文件:

CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel

CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1

manifest.json

【注:其中,CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha(可在下载时改后缀为.sha文件或在后面用的时候改后缀,都可以的)和manifest.json的hash值注意要匹配】

2、Cloudera Manager 官方下载地址:http://archive.cloudera.com/cm5/cm/5/

下载与Linux系统对应版本的Cloudera Manager,比如centos6下载el6,centos7下载el7版本。

下载:cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz

3、Java官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载:jdk-8u181-linux-x64.tar.gz

4、mysql-connector-java官方下载地址:https://dev.mysql.com/downloads/connector/j/

选择platform independent,下载上面后缀为.tar.gz的文件:mysql-connector-java-8.0.12.tar.gz

3、主机名、路由配置文件修改

1)主机名

【注:主机名最好由纯英文小写字母组成,以避免后面安装中出现无法识别主机的问题。】

hostnamectl set-hostname ns1    #ns1为主机名
cat /etc/hostname               #查看更改是否成功

2)路由配置文件

vi /etc/hosts

在文件后面添加:

10.66.241.9     ns1

10.66.241.10    ns2

10.66.241.11    ns3

2、关闭防火墙

systemctl status firewalld.service  # 检查防火墙状态
systemctl stop firewalld            # 关闭防火墙
systemctl disable firewalld.service # 永久关闭防火墙

3、关闭SElinux

【注:SELinux(Security-Enhanced Linux) 是对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。这是一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。】

/usr/sbin/sestatus –v             # 查看SElinux的状态
vim /etc/selinux/config           #更改SELINUX=disabled
setenforce 0        # 在内存中关闭SElinux
getenforce          # 检查内存中状态,如果日志显示结果为disabled或者permissive,说明操作成功。

4、禁用设置、基础服务设置

1)禁用IPv6

【注:CDH 要求使用 IPv4,不支持IPv6,如不禁用,通信可能产生问题,进而各个进程可能挂掉,以及出现超时等问题】

echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf 

2)禁用“透明大页面”

【注:安装完CDH后,CDH Manager一般会提示用户需要做一些Linux系统层面的优化,主要包括两类:禁止透明大页面交换分区设置。若启用“透明大页面”,可能会导致重大的性能问题。】

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

3)交换分区设置

【注:Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0,修改swap空间的swappiness,降低对硬盘的缓存。】

sysctl vm.swappiness=0       #修改swappiness值为0
cat /proc/sys/vm/swappiness  #验证

vi /etc/sysctl.conf          #为保证重启有效,在文件中添加下面一行
vm.swappiness=0

4)安装相关依赖组件,设置http、ntp服务

yum -y install chkconfig bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb httpd httpd-tools unzip ntp

启动httpd服务

systemctl start httpd.service
systemctl enable httpd.service #设置为开机启动

启动NTP服务,设置三台机器时间同步

systemctl restart ntpd
systemctl enable ntpd.service  #设置为开机启动

【注:http服务开机自启动有效,但ntp服务开机自启动无效,所以重新开机可能需要手动开启ntp服务。出现这个问题的原因可能是服务chronyd未被禁用,导致ntp即使配置了也无法实现开机启动,但笔者尝试了这种方法,还是没有生效,这个问题待解决。】

①主服务器

在主机ns1上修改本地硬件时钟时间:

hwclock --localtime       #查看本地硬件时钟时间
hwclock --localtime -w    #将系统时间写入本地硬件时钟时间
vi /etc/ntp.conf

在文件中找到这一行,放开restrict的注释,并且修改ip地址:

# Hosts on local network are less restricted.
restrict 10.66.241.1 mask 255.255.255.0 nomodify notrap

找到这一行,注释下面的server:

# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

添加下面两行:

server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10

②其他服务器

vi /etc/ntp.conf

 找到这一行,放开restrict的注释,并且修改ip地址:

# Hosts on local network are less restricted.
restrict 10.66.241.1 mask nomodify notrap noquery

找到这一行,注释下面的server:

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

指定时间服务

server 10.66.241.9

改好文件后所有机器重启ntp服务:

service ntpd restart

5-10分钟后验证时间是否同步:

ntpstat

synchronised to NTP server (10.66.241.9) at stratum 12

time correct to within 18 ms

polling server every 64 s

(显示上面内容说明同步成功)

利用date命令再次验证:

date

5、SSH免密登录

ssh-keygen
ssh-copy-id ns1     #ns1为主机名
ssh-copy-id ns2
ssh-copy-id ns3

验证:

ssh ns2
exit
ssh ns3
exit

6、安装Java1.8

1)卸载系统自带的JDK

rpm -qa|grep java     #查询目前已装的JDK
rpm -e --nodeps       #后面跟上一条命令查找出来的所有包,用空格隔开   #卸载相应的JDK

2)安装

在usr目录下建立java安装目录(必须要装在这个目录,否则后面会有找不到java_home的报错)

mkdir /usr/java

将jdk-8u181-linux-x64.tar.gz发送到java目录下,解压jdk到当前目录,得到文件夹 jdk1.8.0_151

tar -zxvf jdk-8u181-linux-x64.tar.gz

3)编辑配置文件,配置环境变量:

vi /etc/profile
#添加如下内容:
JAVA_HOME=/usr/java/jdk1.8.0_181
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

source /etc/profile     #使文件生效

4)查看安装情况 

 java -version

7、安装MySQL(MySQL只需要在主服务器上安装)

【注:关于mysql版本问题,笔者安装的mysql5.6,安装过程中以及后面cloudera连接数据库,创建数据库时均未出现问题。】

1)在主服务器检查并卸载系统自动安装的Mysql版本

rpm -qa | grep mysql
rpm -qa | grep  mariadb
rpm -e --nodeps       #后面跟上面2条命令查询到的所有包,包之间用空格键隔开

2)采用yum源方式安装Mysql5.6

wget http://repo.mysql.com/mysql57-community-release-el6-8.noarch.rpm #下载yum源文件
rpm -Uvh mysql57-community-release-el6-8.noarch.rpm

#修改yum源文件:
vim /etc/yum.repos.d/mysql-community.repo
      [mysql56-community]
      enabled=1
      gpgcheck=1

      [mysql57-community]
      enabled=0
      gpgcheck=1

vim /etc/yum.repos.d/mysql-community-source.repo
      [mysql56-community-source]
      enabled=1  
      gpgcheck=1

      [mysql-tools-preview-source]
      name=MySQL Tools Preview - Source
      baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/6/SRPMS
      enabled=1  
      gpgcheck=1
yum repolist all | grep mysql       #用yum repolist mysql这个命令查看一下是否已经有mysql可安装文件
yum -y install mysql-community-server    #yum安装mysql, 一直yes下去

3)安装成功后,启动并初始化

service mysqld start
service mysqld status

mysql刚安装完,mysql的root用户的密码默认是空的,需要给root用户设置密码密码,执行下列命令进行安全设置

mysql_secure_installation    #输入当前用户:回车,输入root密码:######

初始化相关数据库以及用户,在MYSQL命令行下执行如下SQL:

mysql -uroot -p    #进入MySQL数据库

create database amon DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database rman DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database nav DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database navms DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on *.* to 'root'@'%' identified by '*****' with grant option;

MySQL常用命令:

systemctl start mysqld      #启动mysqld
systemctl stop mysqld       #停止mysqld
systemctl restart mysqld    #重启mysqld
systemctl enable mysqld     #设置开机启动
systemctl status mysqld     #查看 MySQL Server 状态

三、Cloudera Manager Server安装

server的安装就只在server主机上执行:

1、上传安装包

Cloudera Manager 安装包:cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz

MySQL驱动包:mysql-connector-java-8.0.12.tar.gz

大数据离线安装库:

CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel

CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha

manifest.json

2、创建相关安装目录并解压安装介质

创建/opt/cloudera-manager安装目录并解压安装介质

mkdir /opt/cloudera-manager
tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

安装数据库驱动并初始化数据库

安装数据库驱动

#解压数据库驱动包,得到一个mysql-connector-java-8.0.12文件夹,里面有一个mysql-connector-java-8.0.12.jar文件
tar xzf mysql-connector-java-8.0.12.tar.gz

mkdir -p /usr/share/java
cp mysql-connector-java-8.0.12.jar /usr/share/java/mysql-connector-java.jar

初始化数据库

创建系统用户cloudera-scm

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

验证用户是否创建成功:

cat /etc/passwd | grep cloudera-scm
#设置CM数据库的权限
mysql -uroot -p    #进入mysql数据库
mysql> grant all privileges on *.*  to 'temp'@'%' identified by 'temp' with grant option;
mysql> grant all privileges on *.* to 'temp'@'ns1' identified by 'temp' with grant option;
mysql> flush privileges;
mysql> use  mysql;
mysql> select host ,user from user;    

#进入ns1服务器以下文件夹,执行脚本命令,事先确认已经将mysql-connector-java.jar放入/usr/share/java文件夹中
cd /opt/cloudera-manager/cm-5.15.1/share/cmf/schema
./scm_prepare_database.sh mysql -h ns1 -utemp -ptemp --scm-host ns1 scm scm scm    

创建server存储目录

mkdir /var/lib/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server

创建hadoop离线安装包存储目录

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

配置agent的server指向

vi /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-agent/config.ini

将server_host修改为cloudera manager server的主机名,对于本示例而言,也就是server主机ns1。

部署CDH离线安装包

mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
mv CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo/

启动Cloudera Manager Server

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

启动Cloudera Manager Agent

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

四、Cloudera Manager Agent安装

在除了server服务器外的其他的服务器上面执行以下步骤进行对agent的部署:

1、上传安装包

对于agent的安装我们只需要以下的两个安装介质:

Cloudera Manager 安装包:cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz

MySQL驱动包:mysql-connector-java-8.0.12.tar.gz

2、创建相关安装目录并解压安装介质

安装数据库驱动

mkdir -p /usr/share/java
cp mysql-connector-java-8.0.12.jar /usr/share/java/mysql-connector-java.jar

创建安装目录并解压安装介质

mkdir /opt/cloudera-manager
tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

建系统用户cloudera-scm

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

验证用户是否创建成功:

cat /etc/passwd | grep cloudera-scm

创建hadoop离线安装包存储目录

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

配置agent的server指向

vi /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-agent/config.ini

将server_host修改为cloudera manager server的主机名,对于本示例而言,也就是server主机ns1。

启动Cloudera Manager Agent

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

服务均显示启动成功后,才进行下一步操作。若服务没有启动成功,则需要查看相关日志文件,解决了问题之后方可进行下一步。

五、Cloudera ManagerMent Service集群的安装

我们部署成功CDH的server和agent之后,我们的其他一切操作都在网页上进行操作。在浏览器中输入http://10.66.241.9:7180进入web页面:

用户名、密码均为admin。

接下来选择需要安装的组件进行安装,安装成功之后显示管理界面:

 

正文到此结束
本文目录