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文件

cdh5.7.2+cento6.8集群搭建(虚拟机)_第1张图片
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

cdh5.7.2+cento6.8集群搭建(虚拟机)_第2张图片
配置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"目录

cdh5.7.2+cento6.8集群搭建(虚拟机)_第3张图片
密钥生成结果

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 状态:

cdh5.7.2+cento6.8集群搭建(虚拟机)_第4张图片
关闭SELINUX
/usr/sbin/sestatus –v
#SELinux status: enabled( enabled:开启; disabled:关闭)
#========重启系统(如果已关闭可不用重启)============
检查SELINUX状态

2.5 安装jdk[每一个节点]

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

cdh5.7.2+cento6.8集群搭建(虚拟机)_第5张图片
官网的安装jdk步骤
rpm -ivh jdk-7u67-linux-x64.rpm
cdh5.7.2+cento6.8集群搭建(虚拟机)_第6张图片
安装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   

cdh5.7.2+cento6.8集群搭建(虚拟机)_第7张图片
主节点与外界时间中心同步时间

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

cdh5.7.2+cento6.8集群搭建(虚拟机)_第8张图片
web配置界面
cdh5.7.2+cento6.8集群搭建(虚拟机)_第9张图片
选择Cloudera Express
cdh5.7.2+cento6.8集群搭建(虚拟机)_第10张图片
继续
cdh5.7.2+cento6.8集群搭建(虚拟机)_第11张图片
勾选管理的机器

cdh5.7.2+cento6.8集群搭建(虚拟机)_第12张图片
安装CDH及某些服务

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

cdh5.7.2+cento6.8集群搭建(虚拟机)_第13张图片
检查审核
#针对第一个警告
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
预防警告
cdh5.7.2+cento6.8集群搭建(虚拟机)_第14张图片
勾选所有服务

选择所有服务

cdh5.7.2+cento6.8集群搭建(虚拟机)_第15张图片
此次安装使用默认角色

角色分配,此处使用默认

cdh5.7.2+cento6.8集群搭建(虚拟机)_第16张图片
测试数据库连接
#需要预先建立测试数据库,重新运行
create database hive character set utf8;
create database oozie  character set utf8;

cdh5.7.2+cento6.8集群搭建(虚拟机)_第17张图片
测试数据库连接
cdh5.7.2+cento6.8集群搭建(虚拟机)_第18张图片
集群设置
cdh5.7.2+cento6.8集群搭建(虚拟机)_第19张图片
监控界面
cdh5.7.2+cento6.8集群搭建(虚拟机)_第20张图片
集群使用情况

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

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"
cdh5.7.2+cento6.8集群搭建(虚拟机)_第21张图片
hive测试结果

7.3 验证HBase

create 'record', {NAME => 'user'}
put 'record', 'Alex', 'user:company', 'Cloudera'
get 'record', 'Alex'
cdh5.7.2+cento6.8集群搭建(虚拟机)_第22张图片
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

你可能感兴趣的:(cdh5.7.2+cento6.8集群搭建(虚拟机))