零基础CDH5Hadoop安装及踩坑实践(附资源)

前言

本文涉及到的资源如下:
(1)CM-5.16.1
(2)CDH-5.16.1
官网下载链接:https://archive.cloudera.com/cm5/repo-as-tarball/5.16.1/
但是官网现在已经不提供开源下载资源
资源来自:https://xiaoguaiguai.blog.csdn.net/article/details/115181682
https://blog.csdn.net/zhumingye/article/details/115181682
(3)VMware
https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
(4)CentOS 7 映像文件
http://mirrors.aliyun.com/centos/7/isos/x86_64/
(5)Java
https://www.java.com/zh-CN/download/linux_manual.jsp
(6)MySQL
在终端用命令下载

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar

(7)mysql-connector-java
https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.46/

安装步骤参考了多篇文章,感谢各位大佬的分享:
https://blog.csdn.net/czz1141979570/article/details/86658416
https://www.cnblogs.com/zhangleisanshi/p/7575579.html
https://www.cnblogs.com/frankdeng/p/10136230.html
https://blog.csdn.net/u010452388/article/details/102822956

一、安装配置虚拟机

(1)安装1个master和2个slave节点

VMware及CentOS安装步骤参考:https://blog.csdn.net/m0_50519965/article/details/116175873
按照以上步骤安装好虚拟机之后会遇到以下几个问题:
1.在CM上安装主节点parcel的时候提示磁盘空间不足,因此建议master节点的磁盘空间增加到40G或60G,我的配置是

内存磁盘
master4G40GServer&Agent
slaver1\slaver22G20GAgent
2.网络ping不通
首先主机查看VMnet8的ip
Windows命令行:ipconfig
注意IPv4地址
在这里插入图片描述
在VMware中
“编辑”选项卡下“虚拟网络编辑器”
关闭DHCP,将IP固定,与IPv4地址设置为同一网段
在这里插入图片描述
点击NAT设置按钮,修改网关地址
在这里插入图片描述
进入机器设置网络连接
在这里插入图片描述
如下图,IPv4设置为Manual,DNS为8.8.8.8;
设置ip、子网掩码、网关、DNS等参数,ip与NAT里的网段一致,网关同NAT一样
在这里插入图片描述
配置网络文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33

将BOOTPROTO改为static,设置ip、子网掩码、网关、DNS等参数
在这里插入图片描述
重启网络服务:service network restart
用ping www.baidu.com检查是否连通网络,如下图已成功
在这里插入图片描述
slave节点配置同上
XShell可以将输入的命令发送到所有回话,后续的操作我都在XShell7上进行,关于xshell的使用这里暂不展开叙述
在这里插入图片描述

(2)配置主机名称

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master

查看主机名hostname(文件修改后没有重启主机名没有生效,可以用hostname临时生效)

(3)建立ip映射

vim /etc/hosts
192.168.100.128 master
192.168.100.129 slaver1
192.168.100.130 slaver2

(4)配置免密登录

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600  ~/.ssh/authorized_keys

同理在slave1和slave2节点上进行相同的操作,然后将公钥复制到master节点上的authoized_keys
将master的文件远程传输到其他节点

scp ~/.ssh/authorized_keys root@slave1:~/.ssh/

(5)关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
service firewalld status #查看防火墙状态

注:有的文章中用命令stop iptables.service,在CentOS7中默认使用firewall作为防火墙,所以iptables命令并不起作用。防火墙未关闭会导致后面ntp无法开启。

(6)关闭selinux

vim /etc/selinux/config
SELINUX=disabled

二、安装Java

下载压缩包上传并解压
https://www.java.com/zh-CN/download/linux_manual.jsp

tar zxvf jre-8u321-linux-x64.tar.gz

在/etc/profile文件里添加jdk路径

vim  /etc/profile

在profile这个文件末尾增加这几行代码:

export JAVA_HOME=/opt/jre1.8.0_321 #jar包解压的目录
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre

使配置文件生效

source /etc/profile

查看java版本

java -version

三、安装MySQL

官网下载MySQL安装包后启动报错,好多文章说CentOS7不支持MySQL了,建议直接安装mariadb,如https://blog.csdn.net/miaodichiyou/article/details/99289160

systemctl start mysql.service
Failed to start mysqld.service: Unit not found

不过按照这篇文章wget命令下载并安装的方式还是成功了
https://blog.csdn.net/u011174699/article/details/93782631

进入MySQL创建数据库

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

四、配置ntp服务

修改配置文件ntp.conf

vim /etc/ntp.conf

启用restrice,修改网段,将这行的注释去掉

restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap

注释掉server域名配置

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

添加配置

server 127.127.1.0
fudge 127.127.1.0 stratum 10

修改配置文件ntpd

vim /etc/sysconfig/ntpd

添加一行配置

SYNC_CLOCK=yes

启动ntp服务

chkconfig ntpd on
chkconfig ntpdate on

配置其他机器的同步
在ntp.conf文件中添加

server master iburst

通过contab进行定时同步
查看ntp状态

systemctl list-unit-files | grep ntp

五、安装CM

(1)首先上传cm包到所有节点,并解压到指定目录

mkdir /opt/cloudera-manager
tar -axvf cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C /opt/cloudera-manager

(2)在所有节点创建cloudera-scm用户

useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

–system 创建一个系统账户
–home 指定用户登入时的主目录,替换系统默认值/home/<用户名>
–no-create-home 不要创建用户的主目录
–shell 用户的登录 shell 名
–comment 用户的描述信息

(3)配置从节点cloudera-manger-agent指向主节点服务器

vim /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini

将server_host改为master

(4)主节点上配置CM的数据库

1.上传mysql-connector-java

mkdir /usr/share/java/
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java
mv /usr/share/java/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

注:jar包名称要修改为mysql-connector-java.jar

2.在mysql中创建cm库

/opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hmaster -uroot -p123 --scm-host master scm scm scm

mysql:数据库用的是mysql cm:表示在mysql中创建cm数据库
-h:Database host 表示安装数据库的主机名
-u:Database username
-p:Database Password
–scm-host master :cm安装的主机,一般也是mysql安装的主机
最后三个参数是:数据库名,数据库用户名,数据库密码

执行这行命令后,可能会遇到用户权限问题,解决办法可以参考:https://blog.csdn.net/qq_38617531/article/details/83344734
执行完创建cm库的命令后,看到以下信息表明命令操作是成功的

All done, your SCM database is configured correctly!

(5)主节点上创建parcel-repo目录

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

将CDH的相关文件上传到目录/opt/cloudera/parcel-repo

CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel 
CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1
manifest.json

注:其中CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 后缀要把1去掉

mv CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha

(6)所有节点上创建parcels目录

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

(7)启动主节点cloudera-scm-server

cp /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
chkconfig cloudera-scm-server on
vi /etc/init.d/cloudera-scm-server
修改
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cloudera-manager/cm-5.16.1/etc/default}

查看状态,如果2-5显示开启表示配置成功

chkconfig --list cloudera-scm-server

启动,并在开机启动脚本中加入命令,保证每次重启都能启动

service cloudera-scm-server start
vim /etc/rc.local
service cloudera-scm-server restart

(8)所有节点上启动cloudera-scm-agent

mkdir /opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-agent
cp /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
chkconfig cloudera-scm-agent on
vim /etc/init.d/cloudera-scm-agent
将
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default} 
修改为
CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cloudera-manager/cm-5.16.1/etc/default}

启动,并在开机启动脚本中加入命令,保证每次重启都能启动

service cloudera-scm-agent start
vim /etc/rc.local
service cloudera-scm-agent restart

查看端口被占用表示安装成功

netstat -anp | grep 7180

六、在浏览器安装CDH

(1)配置Windows hosts文件

C:\Windows\System32\drivers\etc\hosts
192.168.100.128 master
192.168.100.129 slaver1
192.168.100.130 slaver2

(2)进入主节点ip:7180

192.168.100.128:7180

默认使用admin admin登录
在这里插入图片描述
选择第一个免费版
在这里插入图片描述

在这里插入图片描述
由于我之前已经安装完成,后面步骤无法再复现截图,以下图片及操作来自:https://blog.csdn.net/czz1141979570/article/details/86658416
可以直接跳转到此博文操作,为了方便阅读我也截图过来了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我在CDH分配的时候有遇到“主机运行状态不良”的提示,解决办法:
https://blog.csdn.net/u011031430/article/details/74057601

删除每个节点的cm_guid文件,然后进入init.d目录重启agent服务

rm -f /opt/cloudera-manager/cm-5.16.1/lib/cloudera-scm-agent/cm_guid
cd /opt/cloudera-manager/cm-5.16.1/etc/init.d
./cloudera-scm-agent restart

由于前面配置了ntp时间同步,所以没有时间不同步的问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值