运用CDH5.15离线搭建简易版集群
关于CDH和Cloudera
CDH(Cloudera的发行版,包括Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境.Cloudera Manager则是为了便于在集群中进行的Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机,Hadoop的,蜂巢,星火等服务的安装配置管理做了极大简化。
安装说明
官方共给出了3中安装方式:第一种方法必须要求所有机器都能连网,由于最近各种国外的网站被墙的厉害,我尝试了几次各种超时错误,巨耽误时间不说,一旦失败,重装非常痛苦。第二种方法下载很多包。第三种方法对系统侵入性最小,最大优点可实现全离线安装,而且重装什么的都非常方便。后期的集群统一包升级也非常好。这也是我之所以选择离线安装的原因
系统环境
-
实验环境:windows10下的VMware虚拟机
-
操作系统:CentOS 7.2 x64(至少内存2G以上,这里内存不够的同学建议还是整几台真机配置比较好,将CDH的所有组件全部安装会占用很多内存,我一开始设置的虚拟机内存是1G ,安装过程中直接卡死了),本人采用分配方案为:三台虚拟机分别分别作为主站(主节点),SLAVE1,SLAVE2,配置分别为主内存为16G,SLAVE1内存为8G,SLAVE2内存为8G ,根据个人情况来进行配置但是掌握分配内存过小的话会出现内存不足等问题。
-
Cloudera Manager:5.15.0
-
CDH:5.15.0
相关包的下载地址
Cloudera Manager下载地址:http://archive.cloudera.com/cm5/redhat/5/x86_64/cm/5.15.0/RPMS/x86_64/
CDH安装包地址:http://archive.cloudera.com/cdh5/parcels/latest/,由于我们的操作系统为CentOS7.2,需要下载以下文件:
-
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
-
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
-
manifest.json
注意:与CDH4的不同,原来安装CDH4的时候还需要下载IMPALA,Cloudera Search(SOLR),CDH5中将他们包含在一起了,所以只需要下载一个CDH5的包就可以了
准备工作:系统环境搭建
以下操作均用根用户操作。
1.网络配置(所有节点都要执行以下操作)
1.1 修改主机名:
通过服务网络重启重启网络服务生效。
1.2修改ip与主机名的对应关系
注意:这里需要将每台机器的IP及主机名对应关系都写进去,本机的也要写进去,否则启动代理的时候会提示主机名解析错误。
2.打通SSH,设置SSH无密码登陆
-
在主节点上执行以下代码一路回车,生成无密码的密钥对。
-
将公钥添加到认证文件中,并设置authorized_keys文件的访问权限:
-
SCP文件到所有datenode节点:
测试:在主节点上ssh n2,正常情况下,不需要密码就能直接登陆进去了。
此时只是主访问SLAVE1和SLAVE2不需要密码但是SLAVE1和SLAVE2访问主还是要密码的所以此时要设置他们之间的相互免密
在SLAVE1和SLAVE2中分别执行以下代码(以下以SLAVE1为例)
3.安装甲骨文的Java的(所有节点)
CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持。
卸载自带的OpenJDK的
使用以下代码查询的Java相关的包,
使用rpm -e --nodeps 包名
卸载之。
去的Oracle的官网下载JDK的转安装包。
使用并rpm -ivh 包名
安装之。
由于是RPM包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:
4.安装配置的MySQL(主节点)
执行以下代码安装的MySQL
设置开机自启动
启动mysql的服务
此时输入的MySQL是进不去的MySQL的,因为MySQL的为根生成一个动态的密码我们需要设置自己的密码
首先我们需要在配置文件的/etc/my.cnf里面最后一行添加以下代码在之后修改完代码之后需要再次进入将其注释掉
之后进入mysql的输入mysql的即可
输入以下代码修改密码
如果此时报错显示1819的错误需要进行以下设置
在MySQL的中创建表并且赋予权限
5.安装ntp服务(所有节点)
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。具体思路如下:
主节点作为NTP服务器与外界对时中心同步时间,随后对所有数据节点节点提供时间同步服务。
所有数据节点节点以主节点为基础同步时间所有节点安装相关组件执行以下命令:
完成后配置开机启动经检验执行chkconfig ntpd on并不能使开机启动需执行以下代码主要原因是chronyd服务启动会限制ntp的自启动
主节点配置
位置/etc/ntp.conf中
ntp服务只有一个配置文件,配置好了就OK。这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出:
配置文件完成,保存退出,启动服务,执行如下命令:
检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:
如果出现异常请等待几分钟,一般等待5-10分钟才能同步。
配置NTP客户端(所有数据节点节点)
注意:主节点和从节点的/etc/ntp.conf中的最后一行#disable monitor要注释掉
ok保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:( ntpdate -u master
主节点ntp服务器)
这里可能出现同步失败的情况,请不要着急,一般是本地的NTP服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步启动服务:service ntpd start
因为是连接内网,这次启动等待的时间会比主节点快一些,但是也需要耐心等待一会儿。
6.关闭防火墙和SELinux的
关闭防火墙执行以下命令
正式开工
安装Cloudera Manager Server和Agent
解压下载的cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz:
文件名称如下所示
- Cloudera-manager-agent-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
- Cloudera-manager-daemons-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
- Cloudera-manager-server-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
将以下包放入主自己创建的一个目录中,位置为/选择/ cloudera_macnage
- Cloudera-manager-agent-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
- Cloudera-manager-daemons-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
- Cloudera-manager-server-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
将以下包放入SLAVE1和SLAVE2自己创建的一个目录为/选择/ cloudera_manage中
- Cloudera-manager-agent-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
- Cloudera-manager-daemons-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
执行代码
在所有节点上安装对应的rpm包,包管理器会自动解决依赖问题
所有节点需安装的MySQL的驱动程序,地址下载 http://dev.mysql.com/downloads/connector/j/
本人下载的驱动版本如下
MySQL的连接器的Java-5.1.46.tar.gz
将下载下来的MySQL的连接器的Java-5.1.46.tar.gz放到每个节点的/选择/ cloudera_manage中
下载下来之后执行以下命令(所有节点)
在主节点为鼎晖初始化数据库执行以下命令
在主主节点创建包裹回购仓库
执行以下命令
将以下三个文件放入/opt/ Cloudera/ percel-repo回购中
-
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
-
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
-
manifest.json
将CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1重命名为CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha
修改SLAVE1和SLAVE2的/etc/cloudera-scm-agent/config.ini
将SERVER_HOST改为管理节点的网络名本例为主
在主节点启动代理和服务器执行以下命令
在SLAVE1和SLAVE2执行以下代码
CDH5的安装配置
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin:
访问地址为主:7180
进入界面
可以看到,免费版本的CM5已经没有原来50个节点数量的限制了。
各个代理节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。
接下来,出现以下包名,说明本地包裹包配置无误,直接点继续就可以了。
接下来是服务器检查
接下来是选择安装服务,此步骤可以跳过在之后安装,点击左上角cloudera manage图标跳过即可也可根据情况自行安装
安装之后的结果如下
测试
在集群的一台机器上执行以下模拟皮的示例程序:
MapReduce的执行过程中终端的输出如下:
柯林斯也。参考以下地址 https://www.cnblogs.com/CaptainLin/p/7089766.html