关于CDH和ClouderaManager
CDH (Cloudera's Distribution, includingApache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
Cloudera Manager(本文以下简称为CM)则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
系统环境
服务器环境:Linux物理机
服务器配置:内存:64G,CPU:32Core
操作系统:CentOS release 6.9 x64 (64位)
Cloudera Manager:5.10.0
CDH: 5.8.4
CM搭建环境准备
- **
- 配置Hosts
需要修改两处:一处是/etc/sysconfig/network,
另一处是/etc/hosts,只修改任一处会导致系统启动异常。
首先切换到root用户,用任一款你喜爱的编辑器打开该文件:
# sudo vi /etc/sysconfig/network
里面有一行 HOSTNAME=localhost.localdomain (如果是默认的话),修改 localhost.localdomain 为你的主机名,
然后打开 /etc/hosts 文件 $ sudo vi /etc/hosts,会有一行 127.0.0.1 localhost.localdomain localhost 。其中 127.0.0.1 是本地环路地址, localhost.localdomain 是主机名(hostname),也就是你待修改的。localhost 是主机名的别名(alias),它会出现在Konsole的提示符下。将第二项修改为你的主机名,第三项可选。
将上面两个文件修改完后,并不能立刻生效。如果要立刻生效的话,可以用 hostname your-hostname 作临时修改,它只是临时地修改主机名,系统重启后会恢复原样的。但修改上面两个文件是永久的,重启系统会得到新的主机名 - 确定主机名及对应的角色
CM的主节点:cloud032
CM的子节点:cloud030,cloud031,cloud032 - 开通applog用户的sudo无密码访问权限
给applog用户设置无密码sudo权限:
chmod u+w /etc/sudoers
applog ALL=(root)NOPASSWD:ALL
chmod u-w /etc/sudoers
测试:sudo ifconfig - 打通SSH
1:ssh-keygen -t rsa
连续3个回车,不必输入,生成密钥
2:ssh-copy-id -i /root/.ssh/id_rsa.pub root@master
把本机的公钥追到master的 .ssh/authorized_keys 里
或者
ssh-copy-id -i localhost
ssh-copy-id -i cloud030
ssh-copy-id -i cloud031
ssh-copy-id -i cloud032
3:在每台机器上都对其他机器重复执行第2步,直到所有机器都能相互免密码登陆 - 关闭SELINUX 及防火墙
防火墙会引起hadoop相关组件通讯的各种异常,需关闭防火墙。
注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
用root用户权限登录进行操作:
1 关闭防火墙:
# sudo service iptables stop
验证:# service iptables status
# service iptables stop (临时关闭)
# chkconfig iptables off (重启后生效)
2 关闭selinux:
查看SELinux状态:
1、$ /usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled 重启机器即可 - 禁用ipv6
禁用ipv6 (全部服务器)
# cat /etc/modprobe.d/dist.conf
echo “alias net-pf-10 off ” >> /etc/modprobe.d/dist.conf
echo “alias ipv6 off ” >> /etc/modprobe.d/dist.conf - 同步集群时间
参考:http://blog.csdn.net/freedomboy319/article/details/46710255
1)先选择一台服务器作为一个ntp服务器,其他的服务器与这台服务器进行时间同步,Cloud030 ,查看ntp服务是否安装:
# rpm -qa | grep ntp(如下显示已安装)
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.4p8-3.el6.centos.x86_64
ntp-4.2.4p8-3.el6.centos.x86_64
2)修改配置文件 /etc/ntp.conf(只在集群的时间服务器)
# sudo vim /etc/ntp.conf
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
#打开注释:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
#注释掉
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
3)配置ntp服务器时间与系统时间同步:
$ sudo vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
4)所有节点启动时间服务器:
# sudo service ntpd status
ntpd (pid 1910) is running…
如果没有启动:
# service ntpd start
# sudo chkconfig ntpd on
# sudo chkconfig ntpd –list|grep ntpd
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
5)更新下集群时间服务器时间
中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
date
同步外界的时间服务器:
# sudo ntpdate -d ntp.sjtu.edu.cn/ cn.ntp.org.cn 或者
# sudo ntpdate -u ntp.sjtu.edu.cn/ cn.ntp.org.cn
6)将系统时间同步给硬件时间
# sudo hwclock –localtime 查看服务器硬件时间
# sudo hwclock –localtime -w 系统时间同步给硬件时间
7)服务器停机后,系统时间停止,硬件时间正常走,服务器重启后将硬件时间自动同步给系统时间 :
# sudo vi /etc/sysconfig/ntpd
首行添加 SYNC_HWCLOCK=yes
8)服务器启动后,系统同步外界时间,自动同步给硬件时钟 :
# vi /etc/sysconfig/ntpdate
SYNC_HWCLOCK=yes
9)其他从节点与此台服务器进行时间同步
# sudo ntpdate -u cloud030 或ntpdate -d cloud030
客户端使用linux的crontab同步时间:
切换到root用户,查看当前定时任务,如果没有同步时间的定时任务需要重新制定:
# crontab -l
# crontab -e
0-59/10 * * * * /usr/sbin/ntpdate -u cloud030 给命令全路径,每隔10分钟同步一次
重启 # sudo service crond restart 以及 # sudo service ntpd restart,
然后ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步。 - JDK安装
jdk的rpm包 地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
# rpm -qa | grep java ##查看系统自带的java
# rpm -e –nodeps tzdata-java-2013g-1.el6.noarch java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 ##必须卸载
安装java: # rpm -ivh jdk-8u102-linux-x64.rpm
( 此处我用的是java7 : tar zxf jdk-7u67-linux-x64.tar.gz -C /usr/java/)
配置java环境变量:
# sudo vi /etc/profile
# sudo source /etc/profile
# java -version 来检测jdk是否安装成功 安装MySql
建议将mysql安装到CM的主服务器上,安装之前检查下机器是否已经安装mysql:
卸载自带mysql:
$sudo rpm -e –nodeps mysql-libs-5.1.73-8.el6_8.x86_64 mysql-server-5.1.73-8.el6_8.x86_64 mysql-5.1.73-8.el6_8.x86_64 mysql-devel-5.1.73-8.el6_8.x86_64
安装方式一:参考http://www.2cto.com/kf/201609/550880.html
本次采用安装方式二(更换yum源安装,需要联网):
1)下载mysql的yum源, yum源仓库位置 /etc/yum.repos.d
cd /etc/yum.repos.d
wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm
sudo rpm -Uvh mysql57-community-release-el6-8.noarch.rpm
2)更新mysql源配置文件
sudo vi mysql-community.repo
5.6 enabled=1
5.7 enabled=0
sudo vi mysql-community-source.repo
5.6 enabled=1
3)更新下yum缓存 #sudo yum makecache
4)查看根据当前yum源情况可以安装的mysql版本
yum repolist enabled | grep mysql
5)安装mysql
sudo yum -y install mysql-community-server
安装完成后,如下:
检测安装是否正确:
sudo service mysqld status
启动数据库:
sudo service mysqld start
开机启动mysql : # sudo chkconfig mysqld on
注意:如果之前安装过数据库,此处可能启动不成功
MySQL日志文件的默认路径是/var/log/mysqld.log
Yum安装的mysql在/var/lib/mysql下,删除目录下的ib_logfile0 ib_logfile1即可启动mysql
如果还是不行,删除/var/lib/mysql目录下所有
(参考:http://blog.csdn.net/e_zhiwen/article/details/17414779)
mysql_secure_installation mysql初始化设置(可以设置密码):
如果没有在初始化时设置密码,首次登陆root没有密码,需要设置:
mysql> select Host,User,Password from user where user =’root’
mysql> use mysql;
mysql> update user set Password=password(‘root’) where User=’root’;
6)创建mysql数据库
1 . –hive 数据库
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
2 . –集群监控数据库 amon
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3 . –hue 数据库
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
4 . –oozie 数据库
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
6)为新创建的库赋权限
如果对mysql数据库权限要求比较高的话可以手动单独处理 如果要求不是很高,直接使用以下命令即可:
授权root用户在主节点(cloud032)拥有所有数据库的访问权限
mysql> grant all privileges on . to ‘root’@’cloud032’ identified by ‘root’ with grant option;
mysql> flush privileges;
下载mysql connector包 ,由于我的CM以及其他CDH组件存储元数据等信息使用的是mysql,所以此处需要准备jdbc连接mysql相关的包,如果使用其他的数据库,请准备相对应的包。 此处我使用的是 mysql-connector-java-5.1.34.jar
由于此次安装mysql我使用的是yum的方式,所以此处未单独下载相关的软件包,另外,建议使用yum或者rpm的方式安装mysql以及jdk,这样jdk以及mysql会安装到默认位置上,由于CM自身机制的问题,如果这两个软件未安装到默认的位置上会导致许多额外的配置以及很多不期而遇的问题。下载CM安装包
CM的安装包 ,下载地址: http://archive.cloudera.com/cm5/cm/5/
对应的文件是 cloudera-manager-el6-cm5.10.0_x86_64.tar.gz
由于是离线安装,需要配置本地源,需要下载相关的包,本地源的安装包 下载地址是:
http://archive-primary.cloudera.com/cdh5/parcels/5.10.0/
由于系统是CentOS6.9,所以对应的文件是:
CDH-5.10.0-1.cdh5.10.0.p0.42-el6.parcel
CDH-5.10.0-1.cdh5.10.0.p0.42-el6.parcel.sha1
manifest.json
安装CM
- 创建CM用户
每个节点都要创建该用户
$ sudo useradd –system –home=/opt/cm-5.10.0/run/cloudera-scm-server/ –no-create-home –shell=/bin/false –comment “Cloudera SCM User” cloudera-scm
说明:
useradd
–system 表示是系统用户
–home=/opt/cloudera-manager/cm-5.10.0/run/cloudera-scm-server 指定一个home目录
–no-create-home 不创建用户主目录
–shell=/bin/false 不作为一个登陆用户
–comment “Cloudera SCM User”
cloudera-scm 用户名
注意:cat /etc/passwd | grep cloudera-scm 检查是否成功
- 安装CM的tar包
先安装下CM的依赖包(每台服务器上):
$ sudo yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
将cloudera-manager-el6-cm5.10.0_x86_64.tar.gz上传到CM的主节点的/opt/目录下并解压缩,解压后会生成cloudera以及cm-5.10.0两个文件夹,其中:
cloudera cm框架安装包目录
cm-5.10.0 cm框架本身的配置,启动,lib库
由于cloudera自身机制的问题,如果解压后的位置不在/opt/下会导致许多额外的配置以及很多不期而遇的问题。 - 修改agent配置文件
$ vi /opt/cm-5.10.0/etc/cloudera-scm-agent/config.ini
将server_host配置项由localhost改成主节点ip或hostname(CM的主节点) ,保存退出 - 分发cm-5.10.0到其他agent上
# scp -r ./cm-5.10.0 cloud030:/home/applog/
# scp -r ./cm-5.10.0 cloud031:/home/applog/ - 初始化CM数据库
为Cloudera Manager 5建立数据库,首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,将mysql-connector-java-5.1.34.jar放到/opt/cm-5.10.0/share/cmf/lib/下。
在主节点初始化CM5的数据库:
$ sudo /opt/cm-5.10.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot –scm-host localhost scm scm scm
命令选项说明:
mysql:数据库类型是MySQL
-h localhost:数据库所在主机localhost
--scm-host localhost:cloudera service运行的主机是localhost
scm scm scm:最后三个参数,数据库名称 账户 密码
初始化后的配置文件:
- 主节点配置本地parcels源
1)# mkdir -p /opt/cloudera/parcel-repo server节点上
# mkdir -p /opt/cloudera/parcels agent节点上
2)# mv CDH-5.10.0-1.cdh5.10.0.p0.11-el6.parcel.sha1 CDH-5.10.0-1.cdh5.10.0.p0.11-el6.parcel.sha 校验码结尾1去掉
3)更改所有人
# sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/ server主节点
# sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels/ 子节点 - 主节点启动server 服务
/opt/cm-5.10.0/etc/init.d 里面是启动脚本
# sudo /opt/cm-5.10.0/etc/init.d/cloudera-scm-server start
查看日志 :# tail -f /opt/cm-5.10.0/log/cloudera-scm-server/cloudera-scm-server.log
日志目录: /opt/cloudera-manager/cm-5.10.0/log/cloudera-scm-server - CM子节点启动agent
- 子节点创建agent运行所需的文件夹
# mkdir -p /opt/cm-5.10.0/run/cloudera-scm-agent
启动agent进程:
/opt /cm-5.10.0/etc/init.d/cloudera-scm-agent start
# sudo /opt/cm-5.10.0/etc/init.d/cloudera-scm-agent start
启动失败:Unable to create the pidfile.
参考:http://blog.csdn.net/kwu_ganymede/article/details/51524594
# mkdir -p /opt/cm-5.10.0/run/cloudera-scm-agent
查看日志:# tail -f /opt/cm-5.10.0/log/cloudera-scm-agent/cloudera-scm-agent.log - CM子节点启动agent (所有节点)
# sudo /opt/cm-5.10.0/etc/init.d/cloudera-scm-agent start - 验证并登陆CM管理界面
# netstat -tlnup | grep 7180 确认端口是否被监听
登录地址:CM主节点主机名:7180
默认用户名密码:admin/admin - 选择CM版本
然后选择所有CM管理的主机,如果主节点没有启动agent服务,则主机列表中无,当各Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。 下一步,出现parcel自检测包名,如果本地Parcel包配置无误(下一步的下载会跳过),选目标版本,直接点继续就可以了(若没有出现对应版本,则重启CM server和agent)
安装之后会发现CM本地源所在目录变化如下:
- 解决警告问题
问题1:
解决:# echo 0 > /proc/sys/vm/swappiness
或者使用sudo sysctl -w vm.swappiness=0修改其值(临时生效)
问题2:
解决:解决:
# 使用root用户: echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
在使用普通用户(也可直接用root用户):sudo vi /etc/rc.local 将以上命令加入到该脚本中(不过貌似centos 6.5版本以后不会出现该警告了)。
==========接下来开始在CM管理界面上添加相关服务 ===========
添加 Cloudera Management Service 服务
Cloudera Management Service 可作为一组角色实施各种管理功能:
Activity Monitor - 收集有关 MapReduce 服务运行的活动的信息。默认情况下未添加此角色。
Host Monitor - 收集有关主机的运行状况和指标信息
Service Monitor - 收集有关服务的运行状况和指标信息以及 YARN 和 Impala 服务中的活动信息
Event Server - 聚合 relevant Hadoop 事件并将其用于警报和搜索
Alert Publisher - 为特定类型的事件生成和提供警报
Reports Manager - 生成报告,它提供用户、用户组和目录的磁盘使用率的历史视图,用户和 YARN 池的处理活动,以及 HBase 表和命名空间。此角色未在 Cloudera Express 中添加。
配置使用默认配置,接着接着CM会启动CMservice相关服务:
Service启动成功后可以在主页查看:
此时查看集群资源使用情况,如下(此时集群尚未安装hadoop相关服务组件):
(参考:http://blog.csdn.net/team77/article/details/50547075)
添加 zookeeper 服务
Zookeeper的数据存放目录:/var/lib/zookeeper
Zk的默认环境配置位置 /usr/bin/:
添加 hdfs服务
关于HttpFS的使用说明参考:
http://debugo.com/hdfs-httpfs/?utm_source=tuicool
关于hdfs NFS Gateway的使用参考:
http://blog.csdn.net/xichenguan/article/details/38732537
启用hdfs的HA:
添加Yarn服务
运行应用程序测试yarn是否可用:
首先通过设置临时变量的方式,让系统用户针对hadoop临时变为hdfs用户(最好所有节点都设置)
# export HADOOP_USER_NAME=hdfs
上传本地测试文件到hdfs上:
# hadoop dfs -put manifest.json /test(此处的hadoop命令已经deprecated)
或者
# hdfs dfs -put manifest.json
运行如下测试类:
$ hadoop jar /opt/cloudera/parcels/CDH-5.8.4-1.cdh5.8.4.p0.5/lib/hadoop-0.20-mapreduce/hadoop-examples-2.6.0-mr1-cdh5.8.4.jar wordcount /test/manifest.json /test/out
测试结果正常:
查看输出结果:$ hadoop dfs -cat /test/out/part-r-00046
Resourcemanager主界面:
查看rm节点服务状态:
# yarn rmadmin -getServiceState rm275
(rm275为resourmanager集群之一的名字,在hadoop配置文件yarn-site.xml中查看)
添加 hbase服务
HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行。
所以这里要配置HBase高可用的话,只需要启动两个HMaster,让Zookeeper自己去选择一个Master Acitve。
启动RestServer进程与ThriftServer进程主要是便于后边用于hue访问,部在031上,
HRegionServer在三个节点上:
启用复制hbase.replication:
hbase主界面:
在hbase提供的shell client测试hbase集群:
两个HMaster同时只有一个active,当两个HMaster都挂掉的时候:
查看cdh支持的压缩算法:
配置Hstore的压缩算法:
添加kafka服务:
在CDH中,Kafka作为一个分布式的parcel,单独出来作为parcel分发安装包。需要我们把分离开的kafka的服务描述jar包和服务parcel包下载下来。参考链接(CM官网):
https://www.cloudera.com/documentation/kafka/latest/topics/kafka_installing.html#concept_m2t_d45_4r
也可在已安装的CM的如下位置直接下载(需要联网,不过较慢):
此处我采用第一种方式,下载好kafka jar包下载地址:http://archive.cloudera.com/csds/kafka/,与parcel文件,
下载地址:http://archive.cloudera.com/kafka/parcels/2.0.2/
(参考:http://blog.csdn.net/u012599619/article/details/51243397:)
上传 jar包到CM的主节点下的 /opt/cloudera/csd目录下:
Parcel包和校验文件上传到/opt/cloudera/parcel-repo目录下并把KAFKA-2.0.2-1.2.0.2.p0.5-el6.parcel.sha1改成KAFKA-2.0.2-1.2.0.2.p0.5-el6.parcel.sha:
检查新parcel,分配并激活parcel包,注意一定要激活才能用:
在主节点CM安装目录查看已安装的kafka( /opt/cloudera/parcels):
然后添加kafka服务如下步骤:
选择需要安装的kafka broker节点,暂时不安装MirrorMaker,这是一个kafka集群备份的功能:(MirrorMaker使用参考:
http://blog.csdn.net/rkjava/article/details/51771466)
设置kafka消息副本数为3:
数据存放位置以及其他配置采用默认配置,然后启动kafka集群:
测试kafka:
创建一个topic:
$ kafka-topics –create –zookeeper 10.43.1.30:2181 –replication-factor 1 –partitions 1 –topic testTopic
查看kafka中已创建topic(任意一台kafka节点):
$ kafka-topics –list –zookeeper 10.43.1.31:2181
测试显示:1-2个kafka节点挂掉之后,kafka集群依然可以使用:
注意:
1.如果所有kafka集群节点挂掉,报错如下:
ERROR admin.TopicCommand$: kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
2.初始的kafka的JVM堆内存分配为50M(启动时会出现out of memery问题,设置为256M重启即可)
添加hive服务
异常处理:
将mysql驱动包放到对应的服务器的安装目录下,再启动hive即可:
$ sudo cp mysql-connector-java-5.1.34.jar /opt/cloudera/parcels/CDH-5.8.4-1.cdh5.8.4.p0.5/lib/hive/lib/
添加flume服务
Flume配置目录说明:
1、data/log-ID,这种类型的文件存放的是put、take、commit、rollback的操作记录及数据。
2、checkpoint/checkpoint存放的是event在那个data文件logFileID,的什么位置offset等信息。
2、checkpoint/inflightTakes存放的是事务take的缓存数据,每隔段时间就重建文件。
3、checkpoint/inflightPuts存放的是事务对应的put缓存数据,每隔段时间就重建文件。
4、checkpoint/checkpoint.meta主要存储的是logfileID及对应event的数量等信息。
5、data/log-ID.meta,主要记录log-ID下一个写入位置以及logWriteOrderID等信息。
6、每个data目录里data文件保持不超过2个。
7、putList和takeList是缓存存储的是相应的FlumeEventPointer,但是inflightTakes和inflightPuts其实也是缓存存储的也是相应的信息,只不过比两者多存一些信息罢了,功能重合度很高,为什么会这样呢?我想是一个只能在内存,一个可以永久存储(当然是不断重建的),后者可以用来进行flume再启动的恢复。
测试flume:
安装apache服务(30上): # yum -y install httpd
启动apache服务: # sudo service httpd start
创建静态页面: # sudo vi /var/www/html/index.html
查看日志文件: # tail -f /var/log/httpd/access_log
给一般用户配置日志目录访问权限(root权限):
# chmod 755 /var/log/httpd
配置conf/flume.conf文件,
# Please paste flume.conf here. Example:
# Sources, channels, and sinks are defined per
# agent name, in this case 'tier1'.
tier1.sources = source1
tier1.channels = channel1
tier1.sinks = sink1
# For each source, channel, and sink, set
# standard properties.
tier1.sources.source1.type = exec
tier1.sources.source1.shell = /bin/bash -c
tier1.sources.source1.command = tail -f /var/log/httpd/access_log
tier1.sources.source1.channels = channel1
tier1.channels.channel1.type = memory
tier1.sinks.sink1.type = logger
tier1.sinks.sink1.channel = channel1
# Other properties are specific to each type of
# source, channel, or sink. In this case, we
# specify the capacity of the memory channel.
tier1.channels.channel1.capacity = 100
启动flume后,查看后台日志:
发现报错如下:
ERROR org.apache.flume.lifecycle.LifecycleSupervisor: Unable to start EventDrivenSourceRunner: { source:Avro source src_dev_front: { bindAddress: 0.0.0.0, port: 27001 } } - Exception follows.
java.lang.OutOfMemoryError: Direct buffer memory
发现是堆内存问题,将flume agent的最大堆内存大小从50M调整为1G,设置如下:
然后重启即可!
添加oozie服务:
注意:在安装hue服务之前需要安装oozie
添加hue服务
最后在查看下以上服务安装完成后的资源使用情况:
以上就是基于CM5.10.0搭建大数据平台的整个过程!
ps:在使用cm安装spark时,使用的是spark 1.6版本,由于本人尝试在CM上安装spark 2.0版本没有安装成功,所有另外搭建了一个spark2.0.1版本的集群.