史上最全cdh安装详细教程
此篇文章主要介绍了CDH在centos 6.x下的安装,在centos 7 版本中的安装以后会推出.
这篇文档将着重介绍Cloudera管理器域CDH的安装,并基于以下假设:
>>操作系统版本: centos 6.8
>>MySQL数据库版本: 5.6.24
>>CM版本: CM 5.12.1
>>CDH版本: CDH 5.12.1
>>采用root对集群进行部署
1、准备工作:
0)新建centos 6.x虚拟机,然后克隆3台(需要完整克隆,具体如何克隆,自行百度,这里不做过多说明)
以3台克隆机器中的其中一台为例,进行网络的配置
1> vi /etc/udev/rules.d/70-persistent-net.rules
敲dd将含有eth0的一行删除,并使用shift+$跳到文章末尾,将eth1改为eth0
2> 并复制ATTR中的引号中的内容
3> 保存退出后,vi /etc/sysconfig/network-scripts/ifcfg-eth0,将刚刚复制的内容粘贴到此文件下的HWADDR(先把之前的删除),并且
按照图中的内容进行添加或者修改,ONBOOT=yes,表示开机自启动,需要改为yes,BOOTPROTO这个主要是网络配置模式的修改,如果新安装的虚拟机默认是dhcp,表示动态获取ip,这对于后面配置集群是非常麻烦的,所以我们需要将其修改为static或者none都是表示配置静态ip模式,并且添加IPADDR,这个我们可以自己配置ip地址.
然后使用service network restart 重启下网络,然后使用ifconfig或者ip a 查看ip是否修改成功.如果出现下图错误,那么使用reboot重启虚拟机,便可解决此问题
另外两台克隆的虚拟机按照以上操作做一次.
1)关闭防火墙(3台克隆机同时操作)
临时关闭:
service iptables stop
永久关闭:
chkconfig iptables off
1.5)关闭Selinux
临时关闭
setenforce 0
修改配置文件/etc/selinux/config(重启生效)
将SELINUX=enforcing 改为SELINUX=disabled
sed -i 's#enforcing#disabled#g' /etc/selinux/config
2)设置主机名(每台克隆机,设置不通的主机名)
vi /etc/sysconfig/network 根据自己的配置修改hostname,这个需要重启虚拟机才会生效
3)配置DNS(3台克隆机同时操作)
vi /etc/resolv.conf 添加:nameserver 8.8.8.8 或者nameserver 网关地址
然后ping baidu.com 看是否有回应
如果在这个地方,出现了宿主机ping不通虚拟机,或者虚拟机ping不通宿主机,请自行百度吧,这里我也不想做过多描述.如果实在有问题加最下面的qq群寻求答案吧.
4)配置host文件(3台克隆机同时操作)
vi /etc/hosts 根据自己的ip 进行相应配置
配置完之后,可以在同一台机器上ping 不同的域名,查看是否有响应.
表明配置成功
为了以后,我们使用谷歌或者其他浏览器访问域名也可以,那么我们需要对windows中的hosts文件进行配置
打开C:\Windows\System32\drivers\etc下的hosts文件,进行相应的配置
5)更新yum源(使用阿里云镜像源)
第一步:备份你的原镜像文件,以免出错后可以恢复
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
第三步:清空yum缓存
yum clean all
第四步:生成缓存
yum makecache
6) 安装JDK(3台克隆机同时操作)
1>卸载现有JDK
查询是否安装Java软件:
rpm -qa | grep java
如果安装的版本低于1.7,卸载该JDK:
rpm -e 软件包
查看JDK安装路径:
which java
2>创建两个目录,主要是存放tar包
mkdir /opt/module
mkdir /opt/software
3> 将jdk-8u144-linux-x64.tar.gz上传至/opt/software,关于上传有两种方法,一种是使用yum install lrzsz -y或者windows下载WinSCP软件,之前做过测试,WinSCP上传下载的速度大约是rzsz的十倍左右.各有利弊,如果使用rzsz,可以直接将上传的资料直接拖到远程连接工具就可以,非常方便,下载的话直接使用 sz 需要下载的文件 就可以了
4>解压JDK
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
5> 配置JDK环境变量
(1)先获取JDK路径
# pwd
/opt/module/jdk1.8.0_144
(2)打开/etc/profile文件
vi /etc/profile 在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
(3)保存后退出
:wq
(4)让修改后的文件生效
source /etc/profile
6> 测试JDK是否安装成功
java -version
出现上图所示,则表示JDK配置成功
7)配置免密登陆 (只在CDH101上操作)
cd ~
1>生成公钥和私钥
ssh-keygen -t rsa 一路回车就好
2> 将公钥拷贝到要免密登录的目标机器上
ssh-copy-id CDH101
ssh-copy-id CDH102
ssh-copy-id CDH103
8)在CDH101上安装mysql,配置相应的用户权限(也可以使用yum安装mysql)
1>查看mysql是否安装,如果安装了,卸载mysql
rpm -qa|grep mysql
rpm -e --nodeps xx
2>安装mysql服务端
rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
3>查看产生的随机密码
cat /root/.mysql_secret 找个位置复制,为下面修改mysql密码做准备
4>查看mysql状态并启动mysql
service mysql status
service mysql start
5>安装mysql客户端
rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
6>链接mysql,并修改密码
mysql -uroot -ptxj5IaUyV2Pw1tI5
SET PASSWORD=PASSWORD('000000');
7)退出mysql,使用修改后的密码重新登录mysql,并做相关操作
登录mysql
mysql -uroot -p000000
使用mysql数据库
use mysql;
查询user表
select User,Host,Password from user;
修改user表,把Host表内容修改为%
update user set host='%' where host='localhost';
删除root用户的其他host
刷新权限并退出
9)下载第三方依赖
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
如果不下载这些依赖,使用cdh安装的时候会报各种各样的错误.
10) 时钟同步(必须root用户)
(1)检查ntp是否安装
[root@hadoop102 桌面]# rpm -qa|grep ntp
ntp-4.2.6p5-10.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-10.el6.centos.x86_64
(2)修改ntp配置文件
[root@hadoop102 桌面]# vi /etc/ntp.conf
修改内容如下
a)修改1(授权192.168.1.0网段上的所有机器可以从这台机器上查询和同步时间)
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
ip地址根据自己的网段进行配置
b)修改2(集群在局域网中,不使用其他的网络时间)
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 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
c)添加3(当该节点丢失网络连接,依然可以作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(3)修改/etc/sysconfig/ntpd 文件
[root@hadoop102 桌面]# vim /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
(4)重新启动ntpd
[root@hadoop102 桌面]# service ntpd status
ntpd 已停
[root@hadoop102 桌面]# service ntpd start
正在启动 ntpd: [确定]
(5)设置ntpd服务开机启动:
[root@hadoop102 桌面]# chkconfig ntpd on
2. 其他机器配置(必须root用户)
(1)在其他机器配置10分钟与时间服务器同步一次
[root@hadoop103桌面]# crontab -e
编写定时任务如下:
*/10 * * * * /usr/sbin/ntpdate hadoop102
(2)修改任意机器时间
[root@hadoop103桌面]# date -s "2017-9-11 11:11:11"
(3)十分钟后查看机器是否与时间服务器同步
[root@hadoop103桌面]# date
说明:测试的时候可以将10分钟调整为1分钟,节省时间。
2、CM安装部署
CM下载地址:http://archive.cloudera.com/cm5/cm/5/
离线库下载地址:http://archive.cloudera.com/cdh5/parcels
2.1)上传cloudera-manager-el6-cm5.12.1_x86_64.tar.gz到/opt/software并解压
创建/opt/module/cloudera-manager目录
mkdir /opt/module/cloudera-manager
tar -zxvf /opt/software/cloudera-manager-el6-cm5.12.1_x86_64.tar.gz -C /opt/module/cloudera-manager/
2.2)创建用户cloudera-scm(所有节点)
useradd --system --home=/opt/module/cloudera-manager/cm-5.12.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 用户的描述信息
注意:
Cloudera Manager默认用户为cloudera-scm,创建具有此名称的用户是最简单的方法。 安装完成后,将自动使用此用户。
2.3)配置CM Agent
修改文件/opt/module/cloudera-manage/cm-5.12.1/etc/cloudera-scm-agent/ config.ini
vim /opt/module/cloudera-manage/cm-5.12.1/etc/cloudera-scm-agent/config.ini
server_host=CDH101
2.4)配置CM的数据库
1>拷贝mysql jar文件到目录 /usr/share/java/
mkdir /usr/share/java/
cp /opt/software/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/share/java
mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar
• 注意jar包名称要修改为mysql-connector-java.jar
2>在mysql中创建cm库
/opt/module/cloudera-manager/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hCDH101 -uroot -p000000 --scm-host CDH101 scm scm scm
注解:
-u:Database username
-p:Database Password
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
cm:表示在mysql数据库中创建cm database
-h:Database host 表示安装数据库的主机名 (我是在在CDH101上安装的MySQL数据库,所以我指定了CDH101)
--scm-host CDH101 :CMS的主机,一般是和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。
执行完创建cm库的命令后,只有当看到All done, your SCM database is configured correctly!这句话时,表明命令操作是成功的.在执行这行命令后,会遇到很多问题,最常见到的是用户权限问题,这个自行百度吧,或者查看我的另一篇博客:安装CDH过程中所遇到的问题整理
2.5)分发cloudera-manage(在CDH101上执行命令,时间会稍长)
scp -r /opt/module/cloudera-manager/ CDH102:/opt/module/
scp -r /opt/module/cloudera-manager/ CDH103:/opt/module/
2.6)创建Parcel-repo 目录
1> Servre 节点创建目录/opt/cloudera/parcel-repo(server节点就是CDH101节点)
创建Cloudera Manager默认存放离线库的地址
mkdir -p /opt/cloudera/parcel-repo
并赋予parcel-repo所有者权限
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/
2> 拷贝下载文件到/opt/cloudera/parcel-repo
[root@CDH101 software]# cp CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel manifest.json /opt/cloudera/parcel-repo/
[root@CDH101 software]# mv 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@CDH101 software]# cp CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha /opt/cloudera/parcel-repo/
3> 在Agent 节点(CDH102,CDH103,CDH104)创建目录/opt/cloudera/parcels
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
2.7)分发Parcel-repo
scp -r /opt/cloudera/ CDH102:/opt/
scp -r /opt/cloudera/ CDH103:/opt/
注意:
当scp之后,需要查看CDH102和CDH103上的parcel-repo的所属主是不是cloudera-scm,如果不是,则使用chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/进行修改
2.8)启动和关闭CM Server&Agent 服务
服务节点:CDH101
[root@CDH101 cloudera]# /opt/module/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-server start
Starting cloudera-scm-server: [确定]
工作节点:CDH101\CDH102\CDH103
/opt/module/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-agent start (三个节点同时执行)
注意:启动过程非常慢,Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。
一段时间过后,可以使用下列命令查看7180端口是否已经启动: netstat -anp | grep 7180 如果查看被占用则表示安装成功了!!!
[root@CDH101 init.d]# netstat -anp | grep 7180
tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 5498/java
2.9)访问
访问http://CDH101:7180,(用户名、密码:admin)
这个地方注意,需要在windows的hosts文件中配置ip地址和域名
关闭服务:
服务节点:CDH101
[root@CDH101 init.d]# /opt/module/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-server stop
停止 cloudera-scm-server: [确定]
工作节点:CDH101\CDH102\CDH103
[root@CDH101 init.d]# /opt/module/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定]
3、Cloudera Manager界面操作
用户和密码都是admin,
具体解决方案见上面的准备操作中的时钟同步操作。
版本汇总如下:
自定义服务中,我们先只选择HDFS,hive和yarn三个组件
继续下一步开始进行数据库的配置
接下来开始安装,直到显示集群安装成功.
安装成功后进入home管理界面
至此,CDH集群已经全部安装完毕
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
用人品去感动别人,用改变去影响别人,用状态去燃烧别人,用行动去带动别人,用阳光去照耀别人,用坚持去赢得别人,要求自己每天都去做与目标有关的事情,哪怕每天只进步一点点,坚持下来你就是最优秀卓越的!欢迎大家加入大数据交流群:725967421 一起交流,一起进步!!
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
史上最全cdh安装详细教程相关推荐
- 史上最全django安装教程
史上最全django安装教程 选择版本 首先由于版本兼容性问题,所以需要安装好对应的django,python,mysql版本才能确保今后程序的顺利运行,其兼容性见下表(表来源于博客) 根据上表,我选 ...
- 如果自己组装一个台式计算机有哪些,2015电脑组装教程:史上最全自己组装电脑教程...
DIY电脑一直都是电脑爱好者非常喜欢的,电脑组装通常包括电脑硬件的选择,DIY硬件组装以及操作系统安装三个部分. 对于电脑爱好者来说,通过自己动手DIY组装电脑,不仅可以更为深刻的认识硬件,了解电脑主 ...
- 史上最全vscode配置使用教程
史上最全vscode配置使用教程 正在上传-重新上传取消 灰蓝宇墨 上海闪店联信息科技有限公司 前端工程师 5,041 人赞同了该文章 工欲善其事,必先利其器.想要优雅且高效的编写代码,必须熟练使 ...
- .Net魔法堂:史上最全的ActiveX开发教程——发布篇
一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程--开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包 C#开发的Activ ...
- .Net魔法堂:史上最全的ActiveX开发教程——部署篇
一.前言 接<.Net魔法堂:史上最全的ActiveX开发教程--发布篇>,后我们继续来部署吧! 二. 挽起衣袖来部署 ActiveX的部署其实就是客户端安装ActiveX组件,对未签 ...
- 10_史上最全的Markdown使用教程(没有之一)(20190115)
我用markdown写博客已经有半年之久了吧,但是还是会出现有些你想用的功能很难找,或者你尝试使用它不好使,为了帮助那些和我一样热衷于使用markdown的乘客,我决定自己造一架航班,让我们一起搭乘M ...
- 史上最全的FreeIPA搭建教程(二)
如有疑问,请私信我!!!! 码字儿截图不容易啊 1.web后台使用教程 名字显示是反的,需要改成正确的 2.FreeIPA更新证书 默认的证书都是2年时间,到期不更新后果的就是所有账号都无法登录了 # ...
- 史上最全scrcpy投屏教程(用你的电脑控制手机)
史上最全scrcpy投屏教程(用你的电脑控制手机) 一.下载投屏所需的资源 网址:scrcpy-win64-v1.17 提取码: yvid : 当然你也可以去github下载最新的或你所需要的资源,网 ...
- 史上最全虚拟机安装、安装系统、玩游戏、多开游戏
史上最全虚拟机安装.安装系统.玩游戏.多开游戏 史上最全虚拟机安装.安装系统.玩游戏.多开游戏
最新文章
- MongoDB 启动 Failed to connect to 127.0.0.1:27017, reason: 由于目标计算机积极拒绝,无法连接。...
- Oracle学习笔记--第2章 oracle 数据库体系结构
- 关于微信小程序登录授权
- Android严苛模式StrictMode使用与取消
- mac下,svn配置
- 副业刚需? 恐怕并不靠谱!
- 【渝粤教育】广东开放大学 社会工作综合能力 形成性考核 (27)
- python3判断字典、列表、元组为空以及字典是否存在某个key的方法
- [转载] 机器学习之主成分分析PCA(Python实现)
- “腾讯基因”讨论:为什么我常说做to C的人很难去做to B?
- 汇编语言 emu8086 电子时钟 课程设计
- 身份证前六位对应代码
- 一、数据库表设计规范
- js数字金额转大写,javaScript数字金额转大写。
- docker-compose up -d --build不会更新镜像;什么时候容器会变更
- 从零开始学习股票知识
- HTML正方体滚动特效
- 体验AI拜年新姿势,爱奇艺技术团队这波操作真秀!
- 学习笔记:贝塞尔曲线法
- linux多核操作命令,利用多核CPU加速你的Linux命令
热门文章
- 一个PS切图神器-蓝湖
- 感悟20160923
- win10 计算机休眠后无法唤醒,win10睡眠无法唤醒怎么解决_win10电脑睡眠后无法唤醒的解决教程...
- php 二维数组变一维数组,PHP二维数组如何转换为一维数组
- Linux DM9000网卡驱动程序完全分析
- javascript高级程序设计 第三版
- Cmder:windows开发环境必备终端工具_安装及使用指南
- Python爬虫-urllib-post请求
- 【附源码】计算机毕业设计JAVA汽车销售系统
- mpdf(htmle内容转pdf输出)