cdh5.14 单节点parcel方式安装(多图)

一、系统环境:

  • 物理机:一台8G 的mac
  • 虚拟机:安装linux系统:CentOS release 6.5 (对于集群安装,这个才是最终的环境系统)
    • cpu:2core
    • 内存:6g(对,就是这么多,因为cdh真的很吃内存,这也是装单节点的原因,如果是源生的hadoop,3个节点没压力)

二、安装前提

此文只讨论离线方式安装cm5和cdh5,有以下假定前提:

注意:在上面前提都配置好的情况下,
保存当前虚拟机快照!!!
保存当前虚拟机快照!!!
保存当前虚拟机快照!!!

因为很可能需要多次重新安装…

三、安装环境配置

1、修改节点hostname(这个在安装centos时可以设置,也可以用下面方式更改)
[root@cdh01 ~]# vim /etc/sysconfig/network
HOSTNAME=cdh01
2、检查相关依赖并安装
[root@cdh01 ~]# yum -y install ntp python-lxml httpd mod_ssl cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi
3、启动各种相关服务并加到开机启动服务中
  • 3.1、ntpd服务
[root@cdh01 ~]# service ntpd start
[root@cdh01 ~]# chkconfig ntpd on
  • 3.2、httpd服务
[root@cdh01 ~]# service httpd start
[root@cdh01 ~]# chkconfig httpd on
  • 3.3、启动httpd报警,解决报警【Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain name, using 192.168.171.101 for ServerName】
[root@cdh01 ~]# vim /etc/httpd/conf/httpd.conf 
#注释 ServerName www.example.com:80
#添加 ServerName localhost:80
[root@cdh01 ~]# service httpd restart
4、关闭防火墙,并设置开机默认关闭防火墙
[root@cdh01 ~]# service iptables stop
[root@cdh01 ~]# chkconfig iptables off
5、配置ip映射
[root@cdh01 ~]# vim /etc/hosts
[root@cdh01 ~]# 172.16.131.101  cdh01
6、在mysql中添加以下库,并授予远程登录权限
  • 6.1、创建这些库的原因是是:cm管理的cdh版hadoop,各个组件是由【各自组件名为用户名】的【用户】管理的。没有这些库,在安装chd的时候无法通过数据库的验证。
    eg.
    hive,是由hive这个用户管理的,hive相关元数据会写到mysql中对于的hive库中
    hue,是由hue这个用户管理的,hue相关的元数据会写到mysql对应的hue库中。
  • 6.2、创建语句如下:
create database cmf DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_copher,x509_issuer,x509_subject) values("%","cmf",password("cmf"),"1","1","1");
grant all privileges on cmf.* to cmf@'%' identified by 'cmf';
grant all privileges on cmf.* to cmf@'cdh01' identified by 'cmf';

create database metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_copher,x509_issuer,x509_subject) values("%","metastore",password("metastore"),"1","1","1");
grant all privileges on metastore.* to metastore@'%' identified by 'metastore';
grant all privileges on metastore.* to metastore@'cdh01' identified by 'metastore';

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_copher,x509_issuer,x509_subject) values("%","oozie",password("oozie"),"1","1","1");
grant all privileges on oozie.* to oozie@'%' identified by 'oozie';
grant all privileges on oozie.* to oozie@'cdh01' identified by 'oozie';

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_copher,x509_issuer,x509_subject) values("%","hive",password("hive"),"1","1","1");
grant all privileges on hive.* to hive@'%' identified by 'hive';
grant all privileges on hive.* to hive@'cdh01' identified by 'hive';

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_copher,x509_issuer,x509_subject) values("%","hue",password("hue"),"1","1","1");
grant all privileges on hue.* to hue@'%' identified by 'hue';
grant all privileges on hue.* to hue@'cdh01' identified by 'hue';

create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_copher,x509_issuer,x509_subject) values("%","monitor",password("monitor"),"1","1","1");
grant all privileges on monitor.* to monitor@'%' identified by 'monitor';
grant all privileges on monitor.* to monitor@'cdh01' identified by 'monitor';

grant all privileges on *.* to 'root'@'cdh01' identified by 'root' with grant option;
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;

四、正式开始安装cm(使用root用户安装)

1、创建目录/root/software/cdh(用来存放cdh和cm各种安装包)
[root@cdh01 ~]# mkdir -p /root/software/cdh
2、将在cdh安装文件和cm安装tar包传到虚拟机的系统中,如下:
  • 方式很多种,总之放到上一步创建的目录下就好,
  • mac的话直接通过终端scp,如果是windows,可以用sftp之类的工具
3、创建cm目录
[root@cdh01 ~]# mkdir -p /opt/cloudera-manager
4、解压cm的tar包
[root@cdh01 ~]# cd /opt/cloudera-manager
[root@cdh01 ~]# tar -zvxf /root/software/cdh/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz -C ./
#在/opt/cloudera-manager生成两个文件夹:

这里写图片描述

5、修改配置文件中主节点hostname
[root@cdh01 ~]# vim /opt/cloudera-manager/cm-5.14.0/etc/cloudera-scm-agent/config.ini
#将server_host=localhost修改为server_host=cdh01
6、在节点上添加账号:cloudera-scm
[root@cdh01 ~]# useradd --system --home=/opt/cloudera-manager/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
7、创建cdh实体文件存放目录并修改属主为cloudera-scm
[root@cdh01 ~]# mkdir -p /opt/cloudera/parcels
[root@cdh01 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
#ps.这个目录就是安装好后的cdh实体文件的目录
8、创建cdh安装包文件路径,并将安装包复制到这个文件下
#8.1、创建目录
[root@cdh01 ~]# mkdir -p /opt/cloudera/parcel-repo
#8.2、移动安装包到该目录下
[root@cdh01 ~]# cp /root/software/cdh/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz /opt/cloudera/parcel-repo/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz
[root@cdh01 ~]# cp /root/software/cdh/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel /opt/cloudera/parcel-repo/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel
[root@cdh01 ~]# cp /root/software/cdh/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha
[root@cdh01 ~]# cp /root/software/cdh/manifest.json /opt/cloudera/parcel-repo/manifest.json
#8.3、更改该目录及文件的属主
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
#ps.这个目录是安装包的目录,即cm在安装cdh版hadoop时,会从这个目录读取安装文件进行解压安装,后续会再提到这个目录

这里写图片描述

9、创建lib文件目录和log文件目录(很多,这些目录要么在安装时候用到,要么在运行时用到,是根据多次报错信息收集起来的)
[root@cdh01 ~]# mkdir -p /opt/cloudera/csd
[root@cdh01 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/csd

[root@cdh01 ~]# rm -rf /var/lib/cloudera-service-monitor
[root@cdh01 ~]# rm -rf /var/lib/cloudera-host-monitor
[root@cdh01 ~]# rm -rf /var/lib/cloudera-scm-eventserver
[root@cdh01 ~]# rm -rf /var/lib/cloudera-scm-navigator
[root@cdh01 ~]# rm -rf /var/lib/cloudera-scm-headlamp
[root@cdh01 ~]# rm -rf /var/lib/cloudera-scm-firehose
[root@cdh01 ~]# rm -rf /var/lib/cloudera-scm-alertpublisher
[root@cdh01 ~]# rm -rf /var/log/cloudera-service-monitor
[root@cdh01 ~]# rm -rf /var/log/cloudera-host-monitor
[root@cdh01 ~]# rm -rf /var/log/cloudera-scm-eventserver
[root@cdh01 ~]# rm -rf /var/log/cloudera-scm-navigator
[root@cdh01 ~]# rm -rf /var/log/cloudera-scm-headlamp
[root@cdh01 ~]# rm -rf /var/log/cloudera-scm-firehose
[root@cdh01 ~]# rm -rf /var/log/cloudera-scm-alertpublisher 
[root@cdh01 ~]# rm -rf /var/lib/cloudera-scm-server

[root@cdh01 ~]# mkdir -p /var/lib/cloudera-service-monitor
[root@cdh01 ~]# mkdir -p /var/lib/cloudera-host-monitor
[root@cdh01 ~]# mkdir -p /var/lib/cloudera-scm-eventserver
[root@cdh01 ~]# mkdir -p /var/lib/cloudera-scm-navigator
[root@cdh01 ~]# mkdir -p /var/lib/cloudera-scm-headlamp
[root@cdh01 ~]# mkdir -p /var/lib/cloudera-scm-firehose
[root@cdh01 ~]# mkdir -p /var/lib/cloudera-scm-alertpublisher
[root@cdh01 ~]# mkdir -p /var/log/cloudera-service-monitor
[root@cdh01 ~]# mkdir -p /var/log/cloudera-host-monitor
[root@cdh01 ~]# mkdir -p /var/log/cloudera-scm-eventserver
[root@cdh01 ~]# mkdir -p /var/log/cloudera-scm-navigator
[root@cdh01 ~]# mkdir -p /var/log/cloudera-scm-headlamp
[root@cdh01 ~]# mkdir -p /var/log/cloudera-scm-firehose
[root@cdh01 ~]# mkdir -p /var/log/cloudera-scm-alertpublisher

[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-eventserver
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-navigator
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-headlamp
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-firehose
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-alertpublisher
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-service-monitor
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-host-monitor
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-eventserver
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-navigator
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-headlamp
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-firehose
[root@cdh01 ~]# chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-alertpublisher
10、配置mysql数据库驱动包
[root@cdh01 ~]# mkdir /usr/share/java
[root@cdh01 ~]# cp /root/software/cdh/mysql-connector-java-5.1.44-bin.jar /usr/share/java/mysql-connector-java.jar
11、初始化数据库用户
[root@cdh01 ~]# /opt/cloudera-manager/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -hcdh01  --scm-host cdh01  cmf cmf cmf

以下信息则表示初始化成功(注意-h后面跟的是节点的hostname 3个cmf是mysql里面的库,用户,密码,前面已经创建了)
这里写图片描述

12、启动server
#启动cm server
[root@cdh01 ~]# /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start 
#查看启动服务日志
[root@cdh01 ~]# tail -f /opt/cloudera-manager/cm-5.14.0/log/cloudera-scm-server/cloudera-scm-server.log
  • 看到日志里启动了7180端口,就可以确定server启动完成了,可以启动agent
    这里写图片描述
13、启动agent
#启动cm agent
[root@cdh01 ~]# /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start 
#查看启动agent日志
[root@cdh01 ~]# tail -f tail -f /opt/cloudera-manager/cm-5.14.0/log/cloudera-scm-agent/cloudera-scm-agent.log
14、通过web端访问cm安装cdh
  • 14.1、通过cdh01:7180访问
  • 14.2、用户名和密码默认都是admin
15、登录进去按步骤提示一步步安装
  • 15.1、条款,没啥…只能同意,不然前面白折腾了(不同意就不给你装)
    这里写图片描述
  • 15.2、选择安装版本,免费的…(学习嘛)
    这里写图片描述
  • 15.3 cdh:感谢你,我:哦…也谢谢你有免费版, 客套完,点继续
    这里写图片描述
  • 15.4、选择安装节点(正式开始干活…),可以看到两个页签,
    第一个页签是搜索节点 — 【新主机】
    这里写图片描述
    第二个页签是已经检测到的节点 — 【当前管理的主机】
    这里写图片描述
    这个检测到的节点就是检测到我们起anget的节点,所以直接选择【当前管理的主机】就可以看到我们的cdh01,勾上,点继续
    单节点就是这样,如果多节点,这里根据需要选择安装的节点就好了

  • 15.5 到了这里就可以看到我们下载并放到安装包目录的cdh版本了,我们的是CDH5.14.0版本
    注意,如果到这一步没有看到CDH版本,那么回头检查下【步骤:8.2】,是不是没有将CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1 重命名为 CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha
    这里写图片描述

  • 15.6、题外话,15.5步的截图中看到【更多选项】的页签,打开它就可以看到我们之前为什么要按照那些路径创建目录了,如下:
    我们不用去改,保持默认就好
    在前面的【第7步】创建了/opt/cloudera/parcels这个目录
    这个目录是用来存储cdh解压完运行时用到的文件目录
    在前面的【第8.1步】创建了/opt/cloudera/parcel-repo这个目录
    这个目录是用来存储cdh安装包的路径
    这里写图片描述

  • 15.7、这里接着15.5步点继续后的页面,这一步就算是开始分发文件并开始解压了

    • 可以看到,直接显示下载100%,是因为我们是提前下载好离线安装的,
    • 分配的意思就是将安装文件分发到安装的节点上,这次只有一个节点
    • 解压和激活都是各个节点自己接收到安装文件后干的事啦,
      这里写图片描述
    • 这里稍等一会就可以继续了,如下
      这里写图片描述
  • 15.8、坐安装前的最后检查吧,没啥大错,【完成】可以点就点【完成】吧
    这里写图片描述

  • 15.9、到这步就是选择安装的组件了,可以先随便选,因为安装完后可以添加删除组件的
    这里写图片描述

  • 15.10、 这个页面是节点资源方面的配置,多个节点的话需要考虑节点资源平衡,哪些组件装那个节点,哪些组件最好装在同一个节点性能好都是需要考虑的,这一步也不是装了就不能改的,也可以通过添加删除组件来修改吧,但是cm删除服务是不会删除linux对于文件系统的文件的,所以能一次对就尽量一次对,免得linux越来越乱。重点:我们这次是单节点,没得考虑…都装在一个节点上
    这里写图片描述

  • 15.11、 这一步就是测试连接各个组件用户连通mysql
    这些数据库,用户,我们在前面【第5步】的时候已经创建好了的
    这里如果hue的连接出错,并且确认数据库用户密码没问题的话,就重新检查下【第2步】的依赖:
    执行yum -y install ntp python-lxml httpd mod_ssl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi
    这里写图片描述

  • 15.12、这一步中都是集群中的很详细的配置了,如果明确知道怎么配置,或者哪些文件想放哪里就可以在这里配,如果第一次安装,还是直接点继续保持默认的路径吧,等玩会了在配置这些。
    这里写图片描述

  • 15.13、到了这步,嗯,开始了…然后祈祷不要报错就好了,不然,前面一大堆得再来一遍..很酸爽,
    总的来说,有问题大部分是权限的问题,就是前面创建各种日志目录的那一步。
    这里写图片描述
    看到全绿就放心了。ps. 如果你也是mac,安装的时候风扇狂转应该算是正常的吧…心疼mac..
    这里写图片描述

  • 15.14、来自cdh的【恭喜您】… 啥时候出个一键安装啊?,解决下权限问题啊?
    这里写图片描述

  • 15.16 、 界面长这样,界面还是挺赞的。

    • 看到报红的不要惊讶,因为cdh需要的资源太多,个人电脑很难满足,所以才有这些报警
    • 题外话:我们用的那个测试环境…额3个节点,全部报红,因为空间问题…real ganga~
      这里写图片描述
  • 15.17、验证
    一般就在shell验证hdfs和yarn功能

    • jps一下

    • hadoop fs -ls /
      这里写图片描述

    • 通过hive测试yarn mr
      这里得说明以下,我们用root去安装的集群,但cdh的权限问题还没彻底理清,所以将配置dfs.permission 设置为false.
      这里写图片描述

    • hue也是可以查到结果的
      这里写图片描述

遗留问题

  • 1、比较急迫的遗留问题是cdh的权限管理问题,前面提到各个组件是由【各自组件名称为用户名的】用户来调用的,这样如果不同组件之间的调用会出现权限不足的问题,将dfs.permission 设置为false不是长久之计。
  • 2、前面【系统环境】中提到虚拟机内存配置6G,即使这样,在跑起来后,几乎没有内存剩余了,后台日志也可能频繁报错。这是因为cm自己有许多的监控,占用了较多的内存,在上产环境资源足够可以不用担心,但在单机上学习用的话8G内存是不够的,16G也很勉强,所以不需要这些监控可以关掉,详细参考:【https://blog.csdn.net/kyle0349/article/details/82533184
至此,cm离线安装cdh5.14版hadoop集群就装好了。

cm安装cdh版hadoop的过程步骤很多,涉及到的组件也很多,这次记录已尽量截图体现每一步,若有遗漏或疑问,请留言!

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值