大数据数仓平台环境搭建

1.基础环境
1.1.软件环境
本文将介绍Centos7.2 离线安装CDH和Cloudera Manager过程,软件版本如下:
NO. 软件名称 版本

  1. 操作系统 Centos7.2 64 位
  2. JDK jdk-8u191-linux-x64
  3. Clouder Manager cm5.15.0
  4. CDH CDH5.15.0
  5. 数据库 postgresql9.6
    1.2.配置规划
    本次安装共4台服务器,服务器配置及用途如下:
    NO. 机器名称 内网IP 配置 用途
  6. [项目名]-master xxx.xxx.xxx.xxx 主,CM,PostgresDB
  7. [项目名]-slave1 xxx.xxx.xxx.xxx 从
  8. [项目名]-slave2 xxx.xxx.xxx.xxx 从
  9. [项目名]-slave3 xxx.xxx.xxx.xxx 从
    1.3.所需要的软件资源
    1)JDK环境:
    JDK版本:1.8.0_191
    jdk-8u191-linux-x64.tar
    下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2)CM包:
CM版本:5.15.0
cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
下载地址:http://archive-primary.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz

3)CDH包
CDH版本:5.15.0,
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel;
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1;
manifest.json
下载地址:
http://archive-primary.cloudera.com/cdh5/parcels/5.15.0/manifest.json
http://archive-primary.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
http://archive-primary.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
1.4.修改机器名(所有节点)
1)修改机器名称

hostnamectl set-hostname xxx //设置机器名

#hostname // 查看本机名
这种方式,在Centos7中可以永久性改变主机名称。
2)每个节点机器,都要配置hosts

vi /etc/hosts

内容都改为:
127.0.0.1 localhost
xxx.xxx.xxx.xxx [项目名]-master
xxx.xxx.xxx.xxx [项目名]-slave1
xxx.xxx.xxx.xxx [项目名]-slave2
xxx.xxx.xxx.xxx [项目名]-slave3
1.5.关闭tuned

tuned是一个linux自带的系统调优服务。
tuned-adm off
tuned-adm list
确保没有激活的profiles
systemct disable tuned
systemctl stop tuned

1.6.设置防火墙(所有节点)
注:为了简便,可以先关闭防所有节点火墙,安装完成后,再按照下面步骤设置。
防火墙常用命令:

firewall-cmd --state(查询防火墙状态)

#systemctl stop firewalld.service (关闭防火墙)
#systemctl start firewalld.service (开启防火墙)
#systemctl disable firewalld.service (禁止firewall开机启动)

1.7.关闭SELINUX(所有节点)
关闭linux SELINUX安全内核

setenforce 0 (临时生效)

修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

vi /etc/selinux/config

内容增加:
SELINUX=disabled
重启后生效:

reboot

查看SELINUX 是否关闭:
#sestatus
(在Centos7中遇到SELINUX无法关闭的问题,重新启动机器恢复正常)
1.8.配置NTP服务
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体建设过程如下:
所有节点安装相关组件:

yum install ntp ntpdate -y

systemctl start ntpd.service

// 设置开机自启

systemctl enable ntpd.service

systemctl status ntpd.service

NTP服务端(主节点):
添加同步时钟

vi /etc/ntp.conf

// 添加这一句
server cn.ntp.org.cn prefer

// 重启服务,启动后,一般需要5-10分钟左右的时候才能与外部时间服务器开始同步时间。

systemctl restart ntpd.service

// 手动同步测试
ntpdate -u cn.ntp.org.cn

然后修改从节点slave1和slave2和slave3上的 /etc/ntp.conf,添加下面这句向主节点master同步时间

vi /etc/ntp.conf

// 添加这一句
server xxx-master

systemctl restart ntpd.service

1.9.配置免密码登录SSH,需要配置成两两之间无密访问
每一台服务器上运行ssh-keygen -t rsa,将每一台上的/root/.ssh/id_rsa.pub文件内容拼在一起,生成一个authorized_keys文件,将此拷贝到所有服务器的~/.ssh目录下。设置相应的访问权限chmod 600 ~/.ssh/authorized_keys。就可以完成两两互通。【下面的步骤作为其中的参考,只完成了一个远免密登录】
在每个节点上执行:

cd~

ssh-keygen -t rsa

一路回车,生成无密码的密钥对。

把公钥拷贝至从节点xxx-slave1服务器上 :

scp /root/.ssh/id_rsa.pub root@xxx-slave1:~ //输入slave1机器上root用户密码拷备成功

登录到从节点xxx-slave1服务器上:
然后在从节点xxx-slave1服务器上,把公钥的内容追加到authorized_keys文件末尾(这个文件也在隐藏文件夹.ssh下,如果没有可以新建):

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

如果提示下面信息,则需要创建./ssh目录:
-bash: /root/.ssh/authorized_keys: No such file or directory

//创建/.ssh目录,再追加公钥内容

mkdir ~/.ssh

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

并设置authorized_keys的访问权限:

chmod 600 ~/.ssh/authorized_keys

测试:在主节点xxx-master点上执行ssh xxx-slave1,正常情况下,不需要密码就能直接登陆进去了。
注:最后需要任意两台服务器都可以免密登录。
1.10.修改Linux内核参数(所有节点)
为避免安装过程中出现的异常问题,首先调整Linux内核参数。
1)设置swappiness,控制换出运行时内存的相对权重,Cloudera 建议将 swappiness 设置为 1:
//查看swappiness

cat /proc/sys/vm/swappiness

//永久性修改,执行下面两条命令

sysctl -w vm.swappiness=1

echo vm.swappiness = 1 >> /etc/sysctl.conf

// 这里进去检查一下,只保留vm.swappiness = 1的即可,删除为0的那一条

2)关闭透明大页面:
自CentOS6版本开始引入了Transparent Huge Pages(THP),从CentOS7版本开始,该特性默认就会启用。尽管THP的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭THP,否则可能会导致性能出现下降。
首先查看透明大页是否启用,[always] never表示已启用,always [never]表示已禁用:

cat /sys/kernel/mm/transparent_hugepage/defrag

[always] madvise never

cat /sys/kernel/mm/transparent_hugepage/enabled

[always] madvise never
以上状态就说明是启用的。
临时关闭(重启机器会变回默认开启状态):

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

#echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久关闭:
//编辑/etc/rc.d/rc.local

vi /etc/rc.d/rc.local

//在文件后添加下面内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

保存退出,然后赋予rc.local文件执行权限:
#chmod +x /etc/rc.d/rc.local
重启系统,以后再检查THP状态,显示状态被禁用了。

3)修改文件句柄数[使用rpm包安装,这步可以跳过]:
修改系统文件句柄数限制:
//查看文件句柄数,显示1024,显然太小

ulimit -n

1024
//修改限制
#vi /etc/security/limits.conf
//在文件后加入下面内容:

  • soft nofile 100000
  • hard nofile 100000

修改后需要重启机器。
1.11.其他安装与配置(所有节点)
为避免安装过程中出现异常问题,安装相关依赖包:

yum -y install psmisc MySQL-python at bc bind-libs bind-utils cups-client cups-libs cyrus-sasl-gssapi cyrus-sasl-plain ed fuse fuse-libs httpd httpd-tools keyutils-libs-devel krb5-devel libcom_err-devel libselinux-devel libsepol-devel libverto-devel mailcap noarch mailx mod_ssl openssl-devel pcre-devel postgresql-libs python-psycopg2 redhat-lsb-core redhat-lsb-submod-security x86_64 spax time zlib-devel

#yum install -y python-lxml
#yum -y install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel

chmod +x /etc/rc.d/rc.local

yum -y install rpcbind

systemctl start rpcbind

echo “systemctl start rpcbind” >> /etc/rc.d/rc.local

1.12.安装oracle JDK1.8 (所有节点)
安装java
创建JDK安装目录,目录位置必须为/usr/java,Cloudera Manager会自动检测这个目录。
#mkdir /usr/java
下载JDK1.8安装包并解压
#tar -xvf jdk-8u191-linux-x64.tar.gz
配置JAVA_HOME环境变量:
修改/etc/profile文件配置环境变量, 执行命令:

vi /etc/profile

在profile文件最后,输入下面内容,保存并退出。
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=PATH:PATH:JAVA_HOME/bin
执行下面命令,让配置生效

source /etc/profile //使修改立即生效

echo $PATH //查看PATH值

echo $JAVA_HOME //查看JAVA_HOME值

在Centos7中修改/etc/profile文件配置环境变量,机器启动后有时不生效,可以修改/etc/ bashrc文件配置环境变量:

vi /etc/bashrc

//在文件最后加入:
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=PATH:PATH:JAVA_HOME/bin
//使修改立即生效

source /etc/bashrc

//查看JAVA_HOME值

echo $JAVA_HOME

1.13.Postgres安装(主节点)

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm

yum install postgresql96

yum install postgresql96-server

/usr/pgsql-9.6/bin/postgresql96-setup initdb

systemctl enable postgresql-9.6

systemctl start postgresql-9.6

su postgres

psql

#ALTER USER postgres WITH PASSWORD ‘Qa!Ws@2019’;
参考https://blog.csdn.net/kamputer/article/details/53386136 修改pg_hba.conf和 postgresql.conf 两个文件
2.安装CM
2.1.传包,解包
在所有节点上下载相关软件包,这里将软件包下载到/data/ cdh/目录下。
#cd /data/cdh
下载CM:
#wget http://archive-primary.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
下载CDH:
#wget http://archive-primary.cloudera.com/cdh5/parcels/5.15.0/manifest.json
#wget http://archive-primary.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.2-el7.parcel.sha1
#wget http://archive-primary.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.2-el7.parcel
将CM解压到/opt/目录:

tar -zxvf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz -C /opt/

ls /opt/

cloudera cm-5.15.0
2.2.创建用户
在所有节点上执行:

useradd --system --home=/opt/cm-5.15.0/run/cloudera-scm-server --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm

2.3.创建CM本地文件存储目录
在所有节点上执行[如果使用rpm包安装,此目录会是cloudera-scm用户的家目录]:

mkdir /var/lib/cloudera-scm-server

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

2.4.配置CM代理
在所有节点上执行:
配置之前先检查是否已经配置了CMF的环境变量,如果没有的话需要先配置:

vi /etc/profile

cloudera manager 环境变量配置

export CMF_DEFAULTS=/opt/cm-5.15.0

source /etc/profile 刷新环境变量配置

然后设置环境变量

vi $CMF_DEFAULTS/etc/cloudera-scm-agent/config.ini

设置如下变量
server_host test-master #CM-server运行的主机名
server_port 7182 #运行CM-server的端口
2.5.创建parcels目录
所有节点上

mkdir -p /opt/cloudera/parcels

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

2.6.为parcel-repo授权
在主节点上执行:

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

2.7.配置server开机启动
在主节点上执行:

cp $CMF_DEFAULTS/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server

chkconfig cloudera-scm-server on

修改“/etc/init.d/cloudera-scm-server”里面的CMF_DEFAULTS值为“$CMF_DEFAULTS/etc/default”

2.8.数据库中创建角色
选择相对应的角色并创建:

在主节点执行:

启动数据库,创建角色

sudo -u postgres psql

CREATE ROLE scm LOGIN PASSWORD ‘scm’;

CREATE DATABASE scm OWNER scm ENCODING ‘UTF8’;

2.9.配置外部数据源
初始化数据库配置:

$CMF_DEFAULTS/share/cmf/schema/scm_prepare_database.sh postgresql scm scm scm -p 5432

执行结果如下

2.10. 制作本地CDH仓库
在主节点上:
//进入软件包目录
#cd /data/cdh
//拷贝三个文件到/opt/cloudera/parcel-repo/目录

cp CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 manifest.json /opt/cloudera/parcel-repo/

//进入/opt/cloudera/parcel-repo/目录
#cd /opt/cloudera/parcel-repo/
//修改文件名
#mv CDH-5.15.0-1.cdh5.15.0.p0.2-el7.parcel.sha1 CDH-5.15.0-1.cdh5.15.0.p0.2-el7.parcel.sha
此时/opt/cloudera/parcel-repo/目录下文件:

2.11.启动CM Server和Agent
在主节点上,启动cloudera-scm-server:

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

启动过程较慢,可通过/opt/cm-5.15.0/log/cloudera-scm-server日志,查看启动过程。
在所有节点上,启动cloudera-scm-agent:

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

2.12.访问CM
地址:http://主节点IP:7180
用户名、密码:admin

3.安装CDH
3.1.登录后界面
接受协议:

3.2.选择CM版本
本文档选择Cloudera Express免费版。

3.3.指定主机
在搜索主机名和IP地址框输入各节点IP地址,这里输入的内容支持正则表达式。输入后点【搜索】按钮,出现机器列表:

选择“当前管理的主机“选择项卡,点【继续】。

3.4.选择CDH版本
这里需要选择制作本地源时的版本,如果选择别的版本的就会去官网下载,那样安装速度会很慢。

	点【继续】按钮,进入安装界面。

3.4.1.出现 “主机运行状态不良”错误

遇到节点“主机运行状态不良”的提示,解决办法是删除故障节点Agent服务cm_guid文件:
#rm -rf /opt/cm-5.15.0/lib/cloudera-scm-agent/cm_guid
重新启动故障节点Agent服务:
#/opt/cm-5.15.0/etc/init.d/cloudera-scm-agent restart
重启故障节点Agent服务后,故障消失:
注:出现故障原因是,因为我之前在故障节点启动过cloudera-scm-agent服务。

3.5.检查主机正确性
确保全部验证通过。

3.6.选择安装的服务
本文选择的是安装所有服务。

3.7.角色分配
这里应该根据实际需求和服务器的硬件参数自己选择

3.8.数据库设置
指定的数据库名称,要与2.8节创建的数据库(hive,monitor,oozie,hue)保持一致,并输入对应的数据库用户名和密码。

全部输入完,之后【测试连接】:

3.8.1.测试连接报错:
测试连接,Hue 测试报错:Unable to verify database connection:
原因是缺少Mysql mysql-community-libs-compat 安装包,安装后,问题解决:
//进入安装包所在目标

cd /data/mysql/

rpm -ivh mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm

测试成功后,点【继续】安装。
3.9.群集设置
可以根据自己的实际情况更改设置,本文采用默认配置。这些配置也可以在集群安装完成后再更改。

3.10.开始安装

安装过程没有任何错误,显示安装完成。
3.11.安装完成

第一次安装完成后,会出现一些配置的警告信息。这些可以根据提示信息更改。
3.11.1.警告信息:
发现节点有异常信息,显示所有主机,发现有个别节点运行状态不良。

按照 主机->所有主机->进入节点查看:
选择“配置“页签,拉到页面底部,修改”主机时钟偏差阈值“,设为”从不“,点【保存更改】,异常消失。

4.常见错误
4.1.初始化数据库错误:
在这个环节,出现的问题较多,但总的来说,是与数据库参数配置,和帐号权限配置有关。
如在执行scm_prepare_database.sh脚本时,出现的错误:
java.sql.SQLException: Your password does not satisfy the current policy requirements
一般是由密码策略级别问题引发:
可以通过 my.cnf 配置文件关闭 validate_password 插件。
通过修改/etc/my.cnf 目录下配置文件,修改设置密码策略的级别,只需要在[mysqld]下添加一行
validate_password = off
如图所示:

编辑完配置文件后,重启mysqld服务即可生效。
4.2.未能连接到 Host Monitor

后台tail -f /opt/cm-5.15.0/log/cloudera-scm-server/cloudera-scm-server.log 日志报错信息:
com.cloudera.cmon.MgmtServiceLocatorException: Could not find a HOST_MONITORING nozzle from SCM.
此问题原因:有些网上说是由文件句柄数限制引起,所以按照网上说明进行了修改:
在主节点上,修改/opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini文件:
//查看文件句柄数,显示1024,显然太小

ulimit -n

1024
//修改限制
#vi /etc/security/limits.conf
//在文件后加入下面内容:

  • soft nofile 100000
  • hard nofile 100000

此步骤需要重启机器生效,可以设置完后再重启。
注:按照上面过程操作,但问题依然存在,后来通过用3.4节中 “主机运行状态不良”故障问题解决办法,问题得到解决。
4.3.Swap 分区参数相关问题
彻底关闭交换分区
swapon -s 查看交换分区挂载盘】
swapoff /dev/dm-1 关闭挂载分区
swapon /dev/dm-1(需要换成自己的挂载分区) 重新挂载分区

发布了6 篇原创文章 · 获赞 0 · 访问量 423
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览