大数据项目之CDH版数仓采集环境Hive Spark Impala Kafka Flume搭建.docx
《大数据项目之CDH版数仓采集环境Hive Spark Impala Kafka Flume搭建.docx》由会员分享,可在线阅读,更多相关《大数据项目之CDH版数仓采集环境Hive Spark Impala Kafka Flume搭建.docx(113页珍藏版)》请在冰豆网上搜索。
大数据项目之CDH版数仓采集环境HiveSparkImpalaKafkaFlume搭建
大数据项目之电商数仓(CDH版数仓采集)
版本:
V4.0
第1章ClouderaManager
1.1CM简介
1.1.1CM简介
ClouderaManager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
1.1.2CM架构
1.2环境准备
1.2.1虚拟机准备
克隆三台虚拟机(hadoop102、hadoop103、hadoop104),配置好对应主机的网络IP、主机名称、关闭防火墙。
设置hadoop102、hadoop103、hadoop104的主机对应内存分别是:
16G、4G、4G
1.2.2SSH免密登录
配置hadoop102对hadoop102、hadoop103、hadoop104三台服务器免密登录。
1)生成公钥和私钥:
[root@hadoop102.ssh]$ssh-keygen-trsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上
[root@hadoop102.ssh]$ssh-copy-idhadoop102
[root@hadoop102.ssh]$ssh-copy-idhadoop103
[root@hadoop102.ssh]$ssh-copy-idhadoop104
3)重复1和2的操作,配置hadoop103对hadoop102、hadoop103、hadoop104三台服务器免密登录。
1.2.3集群同步脚本
1)在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下:
[root@hadoop102~]$mkdirbin
[root@hadoop102~]$cdbin/
[root@hadoop102bin]$vixsync
在该文件中编写如下代码
#!
/bin/bash
#1获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0));then
echonoargs;
exit;
fi
#2获取文件名称
p1=$1
fname=`basename$p1`
echofname=$fname
#3获取上级目录到绝对路径
pdir=`cd-P$(dirname$p1);pwd`
echopdir=$pdir
#4获取当前用户名称
user=`whoami`
#5循环
for((host=103;host<105;host++));do
echo-------------------hadoop$host--------------
rsync-av$pdir/$fname$user@hadoop$host:
$pdir
done
2)修改脚本xsync具有执行权限
[root@hadoop102bin]$chmod777xsync
1.2.4安装JDK(三台)
1)在hadoop102的/opt目录下创建module和software文件夹
[root@hadoop102opt]#mkdirmodule
[root@hadoop102opt]#mkdirsoftware
2)用SecureCRT将jdk-8u144-linux-x64.tar.gz导入到hadoop102的/opt/software目录
3)在Linux系统下的opt目录中查看软件包是否导入成功
[root@hadoop102software]$ls
jdk-8u144-linux-x64.tar.gz
4)解压JDK到/opt/module目录下,并修改文件的所有者和所有者组为root
[root@hadoop102software]$tar-zxvfjdk-8u144-linux-x64.tar.gz-C/opt/module/
[root@hadoop102module]#chownroot:
rootjdk1.8.0_144/-R
5)配置JDK环境变量
(1)打开/etc/profile文件
[root@hadoop102software]$vi/etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
exportJAVA_HOME=/opt/module/jdk1.8.0_144
exportPATH=$PATH:
$JAVA_HOME/bin
(2)让修改后的文件生效
[root@hadoop102jdk1.8.0_144]$source/etc/profile
6)测试JDK是否安装成功
[root@hadoop102jdk1.8.0_144]#java-version
javaversion"1.8.0_144"
7)将hadoop102中的JDK和环境变量分发到hadoop103、hadoop104两台主机
[root@hadoop102opt]#xsync/opt/module/
[root@hadoop102opt]#xsync/etc/profile
分别在hadoop103、hadoop104上source一下
[root@hadoop103~]$source/etc/profile
[root@hadoop104~]#source/etc/profile
1.2.5集群整体操作脚本
1)在/root/bin目录下创建脚本xcall.sh
[root@hadoop102bin]$vimxcall.sh
2)在脚本中编写如下内容
#!
/bin/bash
foriinhadoop102hadoop103hadoop104
do
echo---------$i----------
ssh$i"$*"
done
3)修改脚本执行权限
[root@hadoop102bin]$chmod777xcall.sh
4)将/etc/profile文件追加到~/.bashrc后面
[root@hadoop102module]#cat/etc/profile>>~/.bashrc
[root@hadoop103module]#cat/etc/profile>>~/.bashrc
[root@hadoop104module]#cat/etc/profile>>~/.bashrc
5)测试
[root@hadoop102bin]#xcall.shjps
1.2.6安装MySQL
注意:
一定要用root用户操作如下步骤;先卸载MySQL再安装
1)安装包准备
(1)查看MySQL是否安装
[root@hadoop102桌面]#rpm-qa|grepmysql
mysql-libs-5.1.73-7.el6.x86_64
(2)如果安装了MySQL,就先卸载
[root@hadoop102桌面]#
rpm-e--nodepsmysql-libs-5.1.73-7.el6.x86_64
(3)上传mysql-libs.zip到hadoop102的/opt/software目录,并解压文件到当前目录
[root@hadoop102software]#unzipmysql-libs.zip
[root@hadoop102software]#ls
mysql-libs.zip
mysql-libs
(4)进入到mysql-libs文件夹下
[root@hadoop102mysql-libs]#ll
总用量76048
-rw-r--r--.1rootroot185099603月262015MySQL-client-5.6.24-1.el6.x86_64.rpm
-rw-r--r--.1rootroot357513512月12013mysql-connector-java-5.1.27.tar.gz
-rw-r--r--.1rootroot557821963月262015MySQL-server-5.6.24-1.el6.x86_64.rpm
2)安装MySQL服务器
(1)安装MySQL服务端
[root@hadoop102mysql-libs]#rpm-ivhMySQL-server-5.6.24-1.el6.x86_64.rpm
(2)查看产生的随机密码
[root@hadoop102mysql-libs]#cat/root/.mysql_secret
OEXaQuS8IWkG19Xs
(3)查看MySQL状态
[root@hadoop102mysql-libs]#servicemysqlstatus
(4)启动MySQL
[root@hadoop102mysql-libs]#servicemysqlstart
3)安装MySQL客户端
(1)安装MySQL客户端
[root@hadoop102mysql-libs]#rpm-ivhMySQL-client-5.6.24-1.el6.x86_64.rpm
(2)链接MySQL(密码替换成产生的随机密码)
[root@hadoop102mysql-libs]#mysql-uroot-pOEXaQuS8IWkG19Xs
(3)修改密码
mysql>SETPASSWORD=PASSWORD('000000');
(4)退出MySQL
mysql>exit
4)MySQL中user表中主机配置
配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。
(1)进入MySQL
[root@hadoop102mysql-libs]#mysql-uroot-p000000
(2)显示数据库
mysql>showdatabases;
(3)使用MySQL数据库
mysql>usemysql;
(4)展示MySQL数据库中的所有表
mysql>showtables;
(5)展示user表的结构
mysql>descuser;
(6)查询user表
mysql>selectUser,Host,Passwordfromuser;
(7)修改user表,把Host表内容修改为%
mysql>updateusersethost='%'wherehost='localhost';
(8)删除root用户的其他host
mysql>
deletefromuserwhereHost='hadoop102';
deletefromuserwhereHost='127.0.0.1';
deletefromuserwhereHost=':
:
1';
(9)刷新
mysql>flushprivileges;
(10)退出
mysql>quit;
1.2.7创建CM用的数据库
在MySQL中依次创建监控数据库、Hive数据库、Oozie数据库、Hue数据库
1)启动数据库
[root@hadoop102~]#mysql-uroot-p000000
2)集群监控数据库
mysql>createdatabaseamonDEFAULTCHARSETutf8COLLATEutf8_general_ci;
3)Hive数据库
mysql>createdatabasehiveDEFAULTCHARSETutf8COLLATEutf8_general_ci;
4)Oozie数据库
mysql>createdatabaseoozieDEFAULTCHARSETutf8COLLATEutf8_general_ci;
5)Hue数据库
mysql>createdatabasehueDEFAULTCHARSETutf8COLLATEutf8_general_ci;
6)关闭数据库
mysql>quit;
1.2.8下载第三方依赖
依次在三台节点(所有Agent的节点)上执行下载第三方依赖(注意:
需要联网)
[root@hadoop102~]#yum-yinstallchkconfigpythonbind-utilspsmisclibxsltzlibsqlitecyrus-sasl-plaincyrus-sasl-gssapifusefuse-libsredhat-lsb
[root@hadoop103~]#yum-yinstallchkconfigpythonbind-utilspsmisclibxsltzlibsqlitecyrus-sasl-plaincyrus-sasl-gssapifusefuse-libsredhat-lsb
[root@hadoop104~]#yum-yinstallchkconfigpythonbind-utilspsmisclibxsltzlibsqlitecyrus-sasl-plaincyrus-sasl-gssapifusefuse-libsredhat-lsb
1.2.9关闭SELINUX
安全增强型Linux(Security-EnhancedLinux)简称SELinux,它是一个Linux内核模块,也是Linux的一个安全子系统。
为了避免安装过程出现各种错误,建议关闭,有如下两种关闭方法:
1)临时关闭(不建议使用)
[root@hadoop102~]#setenforce0
但是这种方式只对当次启动有效,重启机器后会失效。
2)永久关闭(建议使用)
修改配置文件/etc/selinux/config
[root@hadoop102~]#vim/etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
SELINUX=disabled
3)同步/etc/selinux/config配置文件
[root@hadoop102~]#xsync/etc/selinux/config
4)重启hadoop102、hadoop103、hadoop104主机
[root@hadoop102~]#reboot
[root@hadoop103~]#reboot
[root@hadoop104~]#reboot
1.3CM安装部署
1.3.1CM下载地址
1)CM下载地址:
2)离线库下载地址:
1.3.2CM安装
注:
以下所有操作均使用root用户
1)创建/opt/module/cm目录
[root@hadoop102module]#mkdir–p/opt/module/cm
2)上传cloudera-manager-el6-cm5.12.1_x86_64.tar.gz到hadoop102的/opt/software目录,并解压到/opt/module/cm目录
[root@hadoop102software]#tar-zxvfcloudera-manager-el6-cm5.12.1_x86_64.tar.gz-C/opt/module/cm
3)分别在hadoop102、hadoop103、hadoop104创建用户cloudera-scm
[root@hadoop102module]#
useradd\
--system\
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server\
--no-create-home\
--shell=/bin/false\
--comment"ClouderaSCMUser"cloudera-scm
[root@hadoop103module]#
useradd\
--system\
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server\
--no-create-home\
--shell=/bin/false\
--comment"ClouderaSCMUser"cloudera-scm
[root@hadoop104module]#
useradd\
--system\
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server\
--no-create-home\
--shell=/bin/false\
--comment"ClouderaSCMUser"cloudera-scm
参数说明:
--system创建一个系统账户
--home指定用户登入时的主目录,替换系统默认值/home/<用户名>
--no-create-home不要创建用户的主目录
--shell用户的登录shell名
--comment用户的描述信息
注意:
ClouderaManager默认去找用户cloudera-scm,创建完该用户后,将自动使用此用户。
4)修改CMAgent配置
修改文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini的主机名称
[root@hadoop102cloudera-scm-agent]#vim/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini
修改主机名称
server_host=hadoop102
5)配置CM的数据库
拷贝mysql-connector-java-5.1.27-bin.jar文件到目录/usr/share/java/
[root@hadoop102cm]#mkdir–p/usr/share/java/
[root@hadoop102mysql-libs]#tar-zxvfmysql-connector-java-5.1.27.tar.gz
[root@hadoop102mysql-libs]#cp/opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar/usr/share/java/
[root@hadoop102mysql-libs]#mv/usr/share/java/mysql-connector-java-5.1.27-bin.jar/usr/share/java/mysql-connector-java.jar
注意:
jar包名称要修改为mysql-connector-java.jar
6)使用CM自带的脚本,在MySQL中创建CM库
[root@hadoop102cm-5.12.1]#
/opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.shmysqlcm-hhadoop102-uroot-p000000--scm-hosthadoop102scmscmscm
参数说明
-h:
Databasehost
-u:
Databaseusername
-p:
DatabasePassword
--scm-host:
SCMserver'shostname
7)分发cm
[root@hadoop102module]#xsync/opt/module/cm
8)创建Parcel-repo
[root@hadoop102module]#mkdir-p/opt/cloudera/parcel-repo
[root@hadoop102module]#chowncloudera-scm:
cloudera-scm/opt/cloudera/parcel-repo
9)拷贝下载文件manifest.json、CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1、CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel到hadoop102的/opt/cloudera/parcel-repo/目录下
[root@hadoop102parcel-repo]#ls
CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcelCDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1
manifest.json
10)将CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1:
需改名为
CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha
[root@hadoop102parcel-repo]#mvCDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha
11)在hadoop102上创建目录/opt/cloudera/parcels,并修改该目录的所属用户及用户组为cloudera-scm
[root@hadoop102module]#mkdir-p/opt/cloudera/parcels
[root@hadoop102module]#chowncloudera-scm:
cloudera-scm/opt/cloudera/parcels
12)分发/opt/cloudera/
[root@hadoop102opt]#xsync/opt/cloudera/
1.3.3启动CM服务
1)启动服务节点:
hadoop102
[root@hadoop102cm]#/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-serverstart
Startingcloudera-scm-server:
[确定]
2)启动工作节点:
hadoop102、hadoop103、hadoop104
[root@hadoop102cm]#/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agentstart
[root@hadoop103cm]#/opt/module/cm/cm-5.12.1/etc/ini