龙空技术网

大数据之cdh 大数据集群搭建(详细教程)

小青年向前冲 4379

前言:

此刻朋友们对“ubuntu部署hue”都比较看重,同学们都想要分析一些“ubuntu部署hue”的相关资讯。那么小编也在网上收集了一些有关“ubuntu部署hue””的相关知识,希望姐妹们能喜欢,小伙伴们快快来学习一下吧!



cdh 架构图

环境准备

根据官方文档选定linux系统版本所支持的CDH 版本 cloudera-manager-6.0.1

查看当前机器的信息

查看linux版本,例如:

cat /etc/redhat-release

CentOS Linux release 7.5.1804

查看机器型号

dmesg | grep -i virtual,例如查询到是kvm 虚拟机

查看cpu和内存使用情况Top

磁盘使用率 df -h

机器分配

根据机器配置情况,支持安装CDH6.0 集群

创建yum源

下载yum源

wget -P /etc/yum.repos.d/

如下图,可以选择指定版本的yum源

导入GPG key

rpm --import

修改yum 缓存配置

vim /etc/yum.conf

设置keepcache=1,表示rpm 包在本地长期保存,这样的好处是一个节点下载好了后,其他节点可以从此节点上拷贝,不用重复下载。

修改hosts

修改每台机器的hostname

cat /etc/hostname查看hostname

hostname master临时修改hostname

vim /etc/hostname永久修改hostname

修改所有机器的host(所有机器执行)

所有机器的hostname中都需要设置到每台机器的host中

如果一台机器的ip 有多个host ,host 需放到一行,否则后面搭建集群前的环境校验会异常。如

192.168.52.52master name1 name2 name3

关闭防火墙

systemctl status firewalld查看防火墙状态

systemctl stop firewalld关闭防火墙(所有机器执行)

systemctl disable firewalld禁止开机启动防火墙(所有机器执行)

配置ssh 免密登录

a. 生成秘钥:ssh-keygen -t rsa

b. 复制公钥到远程机:ssh-keygen -t rsa

注意:

某些集群组件中的主节点需要远程维护数据节点的状态,因此需要远程免密登录。比如,启动 Hadoop 集群的start-all.sh ,过程中会ssh 到datanode 启动相应的服务。由于有的机器上可能不只是安装数据(计算)角色,可能也会存在master 服务调用角色,因此为避免麻烦集群机器之间都设置成免密登录(对于主机少的情况可以这样做,至于主机多的情况需要根据需求进行免密配置)。

在所有主机上以此执行a—>b 步骤

安装NTP时间同步器(所有机器执行)

yum install -y ntp

修改配置文件

vim /etc/ntp.conf

将此处的server 设置主节点的地址

例如:

server master iburst

注意:

实际操作时,设置成server master iburst 后CM minitor service monitor 一直提示NTP无法连接远程服务器,好吧索性不改了,就使用默认的0.centos.pool.ntp.org

安装nfs网络文件系统

Nfs文件系统相当于机器之间的共享目录,避免机器之间通过scp 转移文件繁琐。

比如,后续会用到的mysql-connector-java.jar 共享文件就可以放在这里。

服务端:(任意一台机器)

安装nfs

yum -y install nfs-utils rpcbind

创建共享目录,并且授权:

mkdir /opt/share

chmod -R 666 /opt/share

修改配置:

/opt/share *(rw,no_root_squash,no_all_squash,sync)

exportfs -r 使配置生效

启动服务:

systemctl start nfs

systemctl start rpcbind

客户端

安装nfs:

yum -y install nfs-utils rpcbind

创建挂载点:

mkdir /opt/share

挂载:

showmount -e master//查看nfs文件系统服务端的挂路径

mount -t nfs master:/opt/share /opt/share -o proto=tcp -o nolock(挂载)

安装jdk(所有机器执行)


CDH 安装过程中检测系统环境时默认会读取/usr/java下的jdk路径,也可以通过CDM 在主机下配置

mkdir -p /usr/java

jdk-8u141-linux-x64.rpm上传

rpm -ivh jdk-8u141-linux-x64.rpm安装

vim /etc/profile设置环境变量

source /etc/profile

修改swapiness 和huge page(所有机器执行)

huge page

Hadoop是个高密集型内存运算系统,Cloudera官方关闭THP

参考文档:

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

echo never > /sys/kernel/mm/transparent_hugepage/defrag

swappiness

swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。两个极端,对于ubuntu的默认设置,这个值等于60,建议修改为10

cat /proc/sys/vm/swappiness查看swapiness

sysctl vm.swappiness=10临时设置

vim /etc/sysctl.conf永久修改,重启后生效

vm.swappiness=10

安装mysql(一般主节点或非集群节点上安装)

安装mysql

Cloudera-Manager安装cdh时,通默认使用内嵌的PostgreSQL数据库,更多应用场景下使用的是mysql

rpm -qa|grep mysql

yum install mysql

systemctl start mysql启动

systemctl enable mysql设为开机启动

创建scm、hive、hue、oozie、monitor数据库(集群搭建前期只要创建cloudera manager基础数据库scm就行,也可后期根据需要安装的插件再创建对应的元数据库)

CREATE DATABASE `scm` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `hue` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `oozie` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `monitor` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `hive` /*!40100 DEFAULT CHARACTER SET utf8 */

下载mysql-connector-java.jar并拷贝到/usr/share/java 目录(所有机器上执行)

创建用户

create user scm@"%" identified by "scm"创建scm用户

grant all on *.* to scm@"scm" identified by "scm"授权

flush privileges刷新权限

systemctl restart mysql重启

安装CM

主节点

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

(当前机器上已经安装,所以显示的是installed)

===================== 等待安装 ====================

其他节点

安装完成后将 /var/cache/yum/x86_64/7/cloudera-manager/packages 下的缓存的daemons 和agent rpm 包拷贝到其他节点 /var/cache/yum/x86_64/7/cloudera-manager/packages

执行安装(除主节点外所有机器)

yum install cloudera-manager-daemons cloudera-manager-agent

配置CM Server(除主节点外所有机器)

vim /etc/cloudera-scm-agent/config.ini

修改此处的server_host为CMmaster 地址

初始化CM配置

数据库和CM在一台机器上

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm

数据库和CM不在一台机器上

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h dbhost --scm-host master scm scm scm

(后面scm分别是数据库名 用户名 密码)

初始化成功后如下图(借网上截图)

启动CM server和CM agent

cloudera-scm-server

systemctl start cloudera-scm-server

查看启动日志

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

CM 服务使用的是jetty 部署,看到日志正常jetty server 启动成功表示server服务启动ok

cloudera-scm-agent(注意主节点上也安装了agent 所以也需要启动)

systemctl start cloudera-scm-agent

服务启动OK后可以登录管理后台账户/密码:admin/admin

安装CDH

安装 进入CM 后台后开始安装集群

这里会检测到每个agent 机器

此处CM server 会下载CDH parcel 包,并且分发到其他agent 节点并解压安装(借别人图示例,实际上搭建的是3个节点)

注意:

将离线的parcels包、sha和torrent文件拷贝到parcel-repo 路径下,重启server

搭建集群

选择安装的服务,这里选择自定义

分配角色

给组件分配对应的元数据库

确认服务配置

启动


角色分布概览

问题

由于后台进程是由supervisor 管理,当手动kill掉进程后,supervisor 会将其重启。

例如,CDH 集群和CM 都停止服务后,9000 端口仍然会被占用,是因为supervisor 管理的进程没有被kill,systemctl status supervisord

环境搭建结束

至此,CDH 集群搭建完成。集群中不只是hadoop 集群,还包含其他组件集群,例如hbase集群、spark 集群和其他客户端组件,包括hive/impala/hue 等。

通过CM 管理的集群,CM service让我们可以更加直观的了解到个各个主机的运行状况,以及各个组件的健康状态,管理起来更加方便。

整个CDH 集群涉及到的内容知识很多且复杂,环境搭建好了接下来就是慢慢求索,不断整个业务,不断学习知识体系,不断进步吧。

标签: #ubuntu部署hue