前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >离线部署 CDH 5.12.1 及使用 CDH 部署 Hadoop 大数据平台集群服务

离线部署 CDH 5.12.1 及使用 CDH 部署 Hadoop 大数据平台集群服务

原创
作者头像
程序员鹏磊
修改2018-01-11 18:19:31
2.2K0
修改2018-01-11 18:19:31
举报
文章被收录于专栏:架构师专栏架构师专栏

Cloudera Manager

Cloudera Manager 分为两个部分:CDH和CM。

CDH是Cloudera Distribution Hadoop的简称,顾名思义,就是cloudera公司发布的Hadoop版本,封装了Apache Hadoop,提供Hadoop所有的服务,包括HDFS,YARN,MapReduce以及各种相关的components:HBase, Hive, ZooKeeper,Kafka等。

CM是cloudera manager的简称,是CDH的管理平台,主要包括CM server, CM agent。通过CM可以对CDH进行配置,监测,报警,log查看,动态添加删除各种服务等。

一、准备工作

环境

代码语言:sh
复制
JDK:1.8  
centos:7.3

操作系统:CentOS 6
JDK 版本:1.7.0_80

所需安装包及版本说明:由于我们的操作系统为CentOS7,需要下载以下文件:

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

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1

manifest.json

Cloudera Manager 下载目录

http://archive.cloudera.com/cm5/cm/5/

CDH 下载目录

http://archive.cloudera.com/cdh5/parcels/5.12.1/

manifest.json 下载

http://archive.cloudera.com/cdh5/parcels/5.12.1/manifest.json

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

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 重命名为 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha

这点必须注意,否则,系统会重新下载 CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel 文件

本文采用离线安装方式,在线安装方式请参照官方文

主机名

ip地址

安装服务

node1 (Master)

192.168.252.121

jdk、cloudera-manager、MySql

node2 (Agents)

192.168.252.122

jdk、cloudera-manager

node3 (Agents)

192.168.252.123

jdk、cloudera-manager

node4 (Agents)

192.168.252.124

jdk、cloudera-manager

node5 (Agents)

192.168.252.125

jdk、cloudera-manager

node6 (Agents)

192.168.252.126

jdk、cloudera-manager

node7 (Agents)

192.168.252.127

jdk、cloudera-manager

二、系统环境搭建

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

修改 hostname

命令格式

代码语言:sh
复制
hostnamectl set-hostname <hostname>

依次修改所有节点 node1-7

代码语言:sh
复制
hostnamectl set-hostname node1

重启服务器

代码语言:sh
复制
reboot

修改映射关系

1.在 node1 的 /etc/hosts 文件下添加如下内容

代码语言:sh
复制
$ vi /etc/hosts

2.查看修改后的/etc/hosts 文件内容

代码语言:sh
复制
[root@node7 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.252.121 node1
192.168.252.122 node2
192.168.252.123 node3
192.168.252.124 node4
192.168.252.125 node5
192.168.252.126 node6
192.168.252.127 node7

2、SSH 免密码登录

1.在集群node1的 /etc/ssh/sshd_config 文件去掉以下选项的注释

代码语言:sh
复制
vi /etc/ssh/sshd_config 
代码语言:sh
复制
RSAAuthentication yes      #开启私钥验证
PubkeyAuthentication yes   #开启公钥验证

2.将集群node1 修改后的 /etc/ssh/sshd_config 通过 scp 命令复制发送到集群的每一个节点

代码语言:sh
复制
for a in {2..7} ; do scp /etc/ssh/sshd_config node$a:/etc/ssh/sshd_config ; done

3.生成公钥、私钥

1.在集群的每一个节点节点输入命令 ssh-keygen -t rsa -P '',生成 key,一律回车

代码语言:sh
复制
ssh-keygen -t rsa -P ''

4.在集群的node1 节点输入命令

将集群每一个节点的公钥id_rsa.pub放入到自己的认证文件中authorized_keys;

代码语言:sh
复制
for a in {1..7}; do ssh root@node$a cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys; done

5.在集群的node1 节点输入命令

将自己的认证文件 authorized_keys 通过scp命令复制发送到每一个节点上去:/root/.ssh/authorized_keys`

代码语言:sh
复制
for a in {1..7}; do scp /root/.ssh/authorized_keys root@node$a:/root/.ssh/authorized_keys ; done

6.在集群的每一个节点节点输入命令

接重启ssh服务

代码语言:sh
复制
sudo systemctl restart sshd.service

7.验证 ssh 无密登录

开一个其他窗口测试下能否免密登陆

例如:在node3

代码语言:sh
复制
ssh root@node2

exit 退出

3、关闭防火墙

代码语言:sh
复制
systemctl stop firewalld.service

4、关闭 SELINUX

查看

代码语言:sh
复制
[root@node1 ~]# getenforce
Enforcing
[root@node1 ~]# /usr/sbin/sestatus -v
SELinux status:  

临时关闭

代码语言:sh
复制
## 设置SELinux 成为permissive模式
## setenforce 1 设置SELinux 成为enforcing模式
setenforce 0

永久关闭

代码语言:sh
复制
vi /etc/selinux/config

SELINUX=enforcing 改为 SELINUX=disabled

设置后需要重启才能生效

PS 我是修改node1/etc/selinux/config 后,把配置文件复制到其他节点

代码语言:sh
复制
for a in {2..7}; do scp /etc/selinux/config root@node$a:/etc/selinux/config ; done

重启所有节点

代码语言:sh
复制
reboot

5、安装 JDK

下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件

我在百度云盘分下的链接:http://pan.baidu.com/s/1jIFZF9s 密码:u4n4

上传在 /opt 目录

解压

代码语言:sh
复制
cd /opt
tar zxvf jdk-8u144-linux-x64.tar.gz
mv jdk1.8.0_144/ /lib/jvm

配置环境变量

代码语言:sh
复制
vi /etc/profile
代码语言:sh
复制
#jdk
export JAVA_HOME=/lib/jvm
export JRE_HOME=${JAVA_HOME}/jre   
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   
export PATH=${JAVA_HOME}/bin:$PATH 

使环境变量生效

代码语言:txt
复制
source /etc/profile

验证

代码语言:sh
复制
[root@localhost ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

6、设置 NTP

所有节点安装 NTP

代码语言:sh
复制
yum install ntp

设置同步

代码语言:sh
复制
ntpdate -d 182.92.12.11

7、安装配置 MySql

主节点 安装 MySql

MySQL依赖于libaio 库

代码语言:sh
复制
yum search libaio
yum install libaio

下载,解压,重命名

通常解压在 /usr/local/mysql

mysql-5.7.19-linux-glibc2.12-x86_64 文件夹,重命名成mysql,这样就凑成/usr/local/mysql目录了

代码语言:sh
复制
cd /opt/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
tar -zxvf /opt/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.19-linux-glibc2.12-x86_64/ /usr/local/mysql

1. 新建用户组和用户

代码语言:sh
复制
groupadd mysql
useradd mysql -g mysql

2. 创建目录并授权

代码语言:sh
复制
cd /usr/local/mysql/ 
mkdir data mysql-files
chmod 750 mysql-files
chown -R mysql .
chgrp -R mysql .

3. 初始化MySQL

代码语言:sh
复制
bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up

4. 注意密码 mysql 临时密码

注意root@localhost生成临时密码:;b;s;)/rn6A3,也就是root@localhost:后的字符串

代码语言:sh
复制
2017-09-24T08:34:08.643206Z 1 [Note] A temporary password is generated for root@localhost: D<qha)5gtr<!

5. 授予读写权限

代码语言:txt
复制
chown -R root .
chown -R mysql data mysql-files

6. 添加到MySQL 启动脚本到系统服务

代码语言:txt
复制
cp support-files/mysql.server /etc/init.d/mysql.server

7. 给日志目录授予读写权限

代码语言:sh
复制
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb

8. 修改 /etc/my.cnf

代码语言:sh
复制
vi /etc/my.cnf

修改 [mysqld]组下的 socket 路径,注释掉/var/lib/mysql/mysql.sock,加一行为tmp/mysql.soc

代码语言:sh
复制
[mysqld]
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/tmp/mysql.sock

9.启动MySQL服务

代码语言:sh
复制
service mysql.server start

或者

代码语言:sh
复制
/usr/local/mysql/support-files/mysql.server start

10. 登录MySQL

代码语言:sh
复制
/usr/local/mysql/bin/mysql -uroot -p
Enter password: 

如果不知道密码

密码在,安装MySQL步骤 4 ,有提到,怎么找初始化临时密码

11. 设置MySQL密码

登陆成功后,设置MySQL密码

代码语言:sh
复制
mysql> ALTER USER   'root'@'localhost' identified by 'mima';
mysql> flush privileges;

12. 开启远程登录

代码语言:sql
复制
mysql> grant all privileges on *.*  to  'root'@'%'  identified by 'mima'  with grant option;
mysql> flush privileges;
mysql> exit;

8、下载依赖包

代码语言:sh
复制
yum -y install chkconfig
yum -y install bind-utils
yum -y install psmisc
yum -y install libxslt
yum -y install zlib
yum -y install sqlite
yum -y install cyrus-sasl-plain
yum -y install cyrus-sasl-gssapi
yum -y install fuse
yum -y install portmap
yum -y install fuse-libs
yum -y install redhat-lsb

三、cloudera manager Server & Agent 安装

1、安装 CM Server & Agent

在所有节点,创建/opt/cloudera-manager

代码语言:sh
复制
mkdir /opt/cloudera-manager

把下载好的cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz安装包上传至 node1 节点/opt/目录

在 node1 节点拷贝 cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz 到所有 Server、Agent 节点创建 /opt/cloudera-manager 目录:

代码语言:sh
复制
for a in {2..7}; do scp /opt/cloudera-manager-*.tar.gz root@node$a:/opt/ ; done

所有 Server、Agent 节点节点解压安装 Cloudera Manager Server & Agent

代码语言:sh
复制
cd /opt
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.

Cloudera管理器服务器和托管服务被配置为在默认情况下使用用户帐户Cloudera-scm,创建具有这个名称的用户是最简单的方法。创建用户,在安装完成后自动使用。

执行:在所有节点创建cloudera-scm用户

代码语言:sh
复制
useradd --system --home=/opt/cloudera-manager/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

3、配置 CM Agent

修改 node1 节点

/opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。

代码语言:txt
复制
cd /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/
vi config.ini

在node1 操作将 node1 节点修改后的 (复制到所有节点)

代码语言:sh
复制
for a in {1..7}; do scp /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini root@node$a:/opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini ; done

4、配置 CM Server 的数据库

在主节点 node1 初始化CM5的数据库:

下载 mysql 驱动包

代码语言:sh
复制
cd /opt/cloudera-manager/cm-5.12.1/share/cmf/lib
wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar

启动MySQL服务

代码语言:sh
复制
service mysql.server start
代码语言:sh
复制
cd /opt/cloudera-manager/cm-5.12.1/share/cmf/schema/

./scm_prepare_database.sh mysql cm -h node1 -uroot -pmima --scm-host node1 scm scm scm

看到如下信息,恭喜您,配置没毛病

代码语言:sh
复制
[main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

格式:

代码语言:sh
复制
scm_prepare_database.sh mysql cm -h <hostName> -u<username>  -p<password> --scm-host <hostName>  scm scm scm

对应于:数据库类型  数据库 服务器 用户名 密码  –scm-host  Cloudera_Manager_Server 所在节点……

5、创建 Parcel 目录

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

将下载好的文件

代码语言:sh
复制
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
manifest.json

拷贝到该目录下。

代码语言:sh
复制
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
cd /opt/cloudera/parcel-repo

重命名,CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 否则,系统会重新下载 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel

代码语言:sh
复制
mv CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha

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

代码语言:sh
复制
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

6、启动 CM Manager&Agent 服务

注意,mysql 服务启动,防火墙关闭

在 node1 (master) 执行:

Server

代码语言:sh
复制
/opt/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-server start

在 node2-7 (Agents) 执行:

Agents

代码语言:sh
复制
/opt/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-agent start

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

Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。

四、CDH5 安装

CM Manager && Agent 成功启动后,登录前端页面进行 CDH 安装配置。

1.png
1.png
2.png
2.png
3.png
3.png

免费版本的 CM5 已经去除 50 个节点数量的限制。

4.png
4.png

各个 Agent 节点正常启动后,可以在当前管理的主机列表中看到对应的节点。

5.png
5.png

选择要安装的节点,点继续。

6.png
6.png

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

(若本地 Parcel 有问题,重新检查步骤三、5 是否配置正确)

7.png
7.png
8.png
8.png

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

9.png
9.png
10.png
10.png

遇到问题

问题一

接下来是服务器检查,可能会遇到以下问题:

Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 30。

使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。

您可以继续进行安装,但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。以下主机将受到影响:node2-7

代码语言:sh
复制
echo 0 > /proc/sys/vm/swappiness

问题二

已启用透明大页面压缩,可能会导致重大性能问题。请运行

echo never > /sys/kernel/mm/transparent_hugepage/defragecho never > /sys/kernel/mm/transparent_hugepage/enabled

以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。以下主机将受到影响: node2-7

代码语言:sh
复制
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled 
11.png
11.png
12.png
12.png
13.png
13.png
14.png
14.png
15.png
15.png
16.png
16.png
17.png
17.png
18.png
18.png

五、脚本

MySql 建库&&删库

1、MySql 建库&&删库

amon

代码语言:sh
复制
create database amon DEFAULT CHARACTER SET utf8; 
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';

hive

代码语言:sh
复制
create database hive DEFAULT CHARACTER SET utf8; 
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

oozie

代码语言:sh
复制
create database oozie DEFAULT CHARACTER SET utf8; 
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';

Contact

  • 作者:鹏磊
  • 出处:http://www.ymq.io/2017/09/24/Cloudera-Manager
  • Email:admin@souyunku.com
  • 版权归作者所有,转载请注明出处
  • Wechat:关注公众号,搜云库,专注于开发技术的研究与知识分享
关注公众号-搜云库
关注公众号-搜云库

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Cloudera Manager
  • 一、准备工作
    • 环境
    • 二、系统环境搭建
      • 1、网络配置(所有节点)
        • 2、SSH 免密码登录
          • 3、关闭防火墙
            • 4、关闭 SELINUX
              • 5、安装 JDK
                • 6、设置 NTP
                  • 7、安装配置 MySql
                    • 8、下载依赖包
                    • 三、cloudera manager Server & Agent 安装
                      • 1、安装 CM Server & Agent
                        • 2、创建用户 cloudera-scm(所有节点)
                          • 3、配置 CM Agent
                            • 4、配置 CM Server 的数据库
                              • 5、创建 Parcel 目录
                                • 6、启动 CM Manager&Agent 服务
                                • 四、CDH5 安装
                                  • 遇到问题
                                  • 五、脚本
                                    • MySql 建库&&删库
                                    • Contact
                                    相关产品与服务
                                    云数据库 SQL Server
                                    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档