cdh5.7.2+cento6.8集群搭建(虚拟机)

1 所需安装包以及下载地址

1.1 操作系统

版本:CentOS 6.8
CDH Parcel文件下载地址

cdh安装包

下载的文件CDH-5.7.2-1.cdh5.7.2.p0.18-el6.parcel.sha1,扩展名改为sha
注:其中el6表示系统版本6[对应centos6]

1.2 rpm文件

下载地址:
rpm文件

cloudera-manager安装包

注:总共七个文件,jdk-6u31-linux-amd64.rpm可以不用下载

1.3 mysql-jdbc

注意:不要使用yum来安装mysql驱动,这样会默认加载了openjdk,会cdh不兼容openjdk
下载地址:mysql驱动

1.4 jdk

jdk-7u67-linux-x64.rpm[官网]

2 主机基础配置(使用root配置)

如果使用非root用户,需要配置

添加新用户设置用户密码,并设置该用户为免密码sudo权限

#adduser  xxxx   //添加一个名为xxxx的用户
#passwd  xxxx   //修改密码

修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
xxxxx   ALL=(ALL)     NOPASSWD: ALL

配置hadoop为免密sudo用户

2.1 每台机器配置hosts

2.1.1 修改 hostname

sudo  vi  /etc/sysconfig/network 
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master   //修改HOSTNAME值

master 设置 hostname
slave1 设置 hostname

2.1.2 重启网络服务生效

service network restart

2.1.3 修改 ip 与主机名的对应关系(每一台机)

sudo vi /etc/hosts
hosts修改图

2.2 ssh免密码登陆

2.2.1 生成密码对(所有节点)

ssh-keygen  -t  rsa

生成其无密码密钥对,一路回车键,生成的密钥对:id_rsa和id_rsa.pub,默认存储在~/.ssh"目录

密钥生成结果

2.2.2 让master能够免密登录其余节点

cat  ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys#把id_rsa.pub追加到授权的key里面去
chmod  644  ~/.ssh/authorized_keys#
scp  ~/.ssh/ authorized_keys  xxxx@hostnamexxx:~/.ssh#注:如若没有scp命令,安装yum install openssh-clients

如果希望可以每一个节点都可以免密码登录,也可以对其他节点重复此操作,但是不建议

免密码登录设置

检查下authorized_keys传到其他机器后的权限是否为644,不是则改为644,测试是否设置成功:在主节点上ssh hostname[1~3],若不需要密码就能直接登陆进去了表示配置成功。

ssh slave1

2.3 关闭防火墙(每一个节点)

sudo  service iptables stop#临时关闭
sudo  chkconfig iptables off#重启后生效
关闭防火墙

2.4 关闭SELINUX(每一个节点)

修改/etc/selinux/config 文件的 SELINUX=disabled #重启生效
查看 SELINUX 状态:

关闭SELINUX
/usr/sbin/sestatus –v
#SELinux status: enabled( enabled:开启; disabled:关闭)
#========重启系统(如果已关闭可不用重启)============
检查SELINUX状态

2.5 安装jdk[每一个节点]

注意如果采取其他安装,建议java解压目录要在/usr/java,不然cloudera manager 容易找不到jdk

官网的安装jdk步骤
rpm -ivh jdk-7u67-linux-x64.rpm
安装jdk

进入/etc/profile,修改环境变量

export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
修改环境变量

2.6 配置ntp

master节点作为ntp服务器与外界对时中心同步时间,
随后对所有datanode节点提供时间同步服务,所有datanode节点以master节点为基础同步时间。
所有节点安装相关组件

sudo  yum install ntp

所有节点配置开机启动

sudo  chkconfig ntpd on

检查是否设置成功

sudo  chkconfig --list ntpd #其中2-5为on状态就代表成功

2.6.1 主节点设置:

#sudo vi  /etc/ntp.conf 进入文件
server 0.cn.pool.ntp.org perfer
server 1.asia.pool.ntp.org
server 3.asia.pool.ntp.org
server ntp.sjtu.edu.cn   

主节点与外界时间中心同步时间

2.6.2 slave节点设置:

#sudo vi  /etc/ntp.conf 进入文件
server master
slave节点根据master同步时间

保存退出

sudo  ntpdate -u 202.112.29.82 
sudo  ntpdate -u 202.120.2.101 #请先使用ntpdate手动同步一下时间[每个节点]
sudo  service  ntpd  restart #配置完成后启动服务[每个节点]
sudo  ntpdate  -u  master#slave节点以master节点为基础同步时间。
sudo  ntpstat #查看同步效果

检查同步状态

注:如果ntpstat状态未同步,可以等待5~10分钟再查看。
5到10分钟后

检查同步状态

3.Cloudera Manager安装


安装文件:
cloudera-manager-agent-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主节点安装,slave安装(可选)
cloudera-manager-daemons-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主节点安装,slave安装(可选)
cloudera-manager-server-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主节点安装
cloudera-manager-server-db-2-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主节点安装,内置数据库,可选
enterprise-debuginfo-5.7.2-1.cm572.p0.17.el6.x86_64.rpm


3.1 master安装

在master 节点安装daemons、server、agent(先装daemons)

yum --nogpgcheck localinstall cloudera-manager-daemons-5.7.2-1.cm572.p0.17.el6.x86_64.rpm
yum --nogpgcheck localinstall cloudera-manager-server-5.7.2-1.cm572.p0.17.el6.x86_64.rpm
yum --nogpgcheck localinstall cloudera-manager-agent-5.7.2-1.cm572.p0.17.el6.x86_64.rpm#注:agent安装需要联网

3.2 slave安装

在节点安装daemons、agent(先装daemons)

yum --nogpgcheck localinstall cloudera-manager-daemons-5.7.2-1.cm572.p0.17.el6.x86_64.rpm
yum --nogpgcheck localinstall cloudera-manager-agent-5.7.2-1.cm572.p0.17.el6.x86_64.rpm#注:agent安装需要联网

3.3 配置主节点以及其他节点agent的config.ini文件

在每个 Cloudera Manager Agent 主机上,通过在
/etc/cloudera-scm-agent/config.ini 配置文件中设置以下属性,
配置 Cloudera Manager Agent 以指向 Cloudera Manager Server

#sudo vi /etc/cloudera-scm-agent/config.ini 进入文件
server_host=master
设置server_host

4 Master安装mysql 并配置权限等。

需要配置数据库,此教程选用最常用的mysql,其中oozie服务包括工作流的信息,可能导致数据会增加很多
安装mysql并检查服务

yum install mysql-server mysql mysql-deve #注:需要联网
chkconfig mysqld on
service mysqld start

进入mysq密码配置

mysql –u root
use mysql
update user set password=password('hadoop') where user='root';
update user set password=password('hadoop') where host='localhost';
update user set password=password('hadoop') where host='master';

重启服务

service mysqld restart

配置数据库权限

mysql -u root -phadoop
create database cloudera
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
flush privileges;

5 在master节点配置cloudera manager 数据库并启动cm的server及agent程序

master操作步骤

  1. 拷贝mysql-connector-java-3.1.14-bin.jar 到 /usr/share/java 下并重命名mysql-connector-java.jar
  2. 运行
/usr/share/cmf/schema/scm_prepare_database.sh -h master mysql cloudera root hadoop
  1. 启动cm server
service cloudera-scm-server start
  1. 添加cm server服务
chkconfig cloudera-scm-server on
  1. 启动cm agent
sudo service cloudera-scm-agent start
  1. 添加cm agent服务
chkconfig cloudera-scm-agent on
启动cm

slave节点上重复其中两步

  1. 启动cm agent
sudo service cloudera-scm-agent start
  1. 添加cm agent服务
chkconfig cloudera-scm-agent on

6 CDH5 安装[这一步所需时间较长]

sudo service httpd start #在master启动http,能够后面找到对应的parcel包

将下载的parcel文件及官方网站上获取对应版本的 sha 文件和 manifest.json文件上传至/opt/cloudera/parcel-repo目录下。


parcel应该放在/opt/cloudera/parcel-rep

启动浏览器,开始集群web安装配置
Master:7180 => 192.168.75.141:7180 账号:admin 密码admin

web配置界面
选择Cloudera Express
继续
勾选管理的机器

安装CDH及某些服务

cdhparcel包已经放到对应的库, 不需要下载,其他的服务下载速度较慢,如果时间不那么充足可以日后再下载和添加服务

检查审核
#针对第一个警告
echo 'vm.swappiness=10'>> /etc/sysctl.conf  
#针对第二个警告
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag 
echo 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag' >> /etc/rc.local
预防警告
勾选所有服务

选择所有服务

此次安装使用默认角色

角色分配,此处使用默认

测试数据库连接
#需要预先建立测试数据库,重新运行
create database hive character set utf8;
create database oozie  character set utf8;

测试数据库连接
集群设置
监控界面
集群使用情况

因为虚拟机内存和空间不够,导致一些警告某些监控无法完全安装成功。
此外,启动所有服务那一步安装时间非常长,耐心等待。

7 测试组件

7.1 验证MR程序

# 添加用户和组
groupadd cdh-dev
useradd -g cdh-dev cdh-dev
lid cdh-dev

# hadoop创建相应的用户
sudo -u hdfs hdfs dfs -mkdir /user/cdh-dev
sudo -u hdfs hdfs dfs -chown cdh-dev:cdh-dev /user/cdh-dev

# 运行wordcount程序
su - cdh-dev
echo "Hello world Bye world" > file0
echo "Hello hadoop Goodbye hadoop" > file1
hdfs dfs -mkdir -p /user/cdh-dev/wordcount/input
hdfs dfs -put file* /user/cdh-dev/wordcount/input
hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount wordcount/input wordcount/output
hdfs dfs -getmerge wordcount/output output.txt

cat output.txt

7.2 验证hive

su - cdh-dev
echo "Alex, Cloudera" > hive-data
echo "fd, jinz" >> hive-data
hdfs dfs -mkdir -p hive/table-data-files
hdfs dfs -put hive-data hive/table-data-files
vi hive-data.sql
create external table test(
name string,
company string
)
row format delimited
fields terminated by ','
stored as textfile
location '/user/cdh-dev/hive/table-data-files'
hive -f hive-data.sql
hive -e "select * from test"
hive测试结果

7.3 验证HBase

create 'record', {NAME => 'user'}
put 'record', 'Alex', 'user:company', 'Cloudera'
get 'record', 'Alex'
hbase测试结果
# 用vi创建文件 hbase_on_hive.hql
create external table hbase_on_hive(
name string,
company string
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ( "hbase.columns.mapping" = ":key, user:company" )
tblproperties ( "hbase.table.name" = "record" );

hive -f hbase_on_hive.hql
hive -e "select * from hbase_on_hive" 
hbase测试结果

附录监控界面

192.168.75.141 - master

  • 整体监控界面:http://192.168.75.141:7180
  • 集群任务管理监控界面:http://192.168.75.141:8088
  • hive监控界面:http://192.168.75.141:10002/
  • spark监控界面:http://192.168.75.141:18088/
  • hue使用界面:http://192.168.75.141:8888
  • hdfs监控界面:http://192.168.75.141:50070
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容