单节点安装CDH

CDH 简介(Cloudera Hadoop) -->仅供学习

1. Cloudera Manager

  • 安装CDH 即安装 Cloudera Manager,以下简称CM。
  • Cloudera Manager 是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件)。可以实现对集群的可视化监控和管理。

2. CM 的架构

在这里插入图片描述

  1. Server:负责软件安装、配置,启动和停止服务,管理服务运行的群集。

  2. Agent:安装在每台主机上。负责启动和停止的过程,配置,监控主机。

  3. Management Service:由一组执行各种监控,警报和报告功能角色的服务。

  4. Database:存储配置和监视信息。

  5. Cloudera Repository:软件由 Cloudera 管理分布存储库。(有点类似 Maven 的中心仓库)

  6. Clients:是用于与服务器进行交互的接口(API 和 Admin Console)

单节点安装CDH(离线安装)

安装须知:由于CDH集群启动时服务较多,因此非常消耗内存,如果你的机器是16G内存,可以为虚拟机分配8GB内存,来安装CDH,单节点安装最好是8G,否则可能安装不成功,如果你的机器内存是8G,可以为虚拟机非配6G内存,不能小于6G,否则很大概率启动不来。如果你的内存小于8G,不要装CDH,不满足安装条件,cdh真的是很吃内存。那么接下来我们开始安装单节点的CDH:

1. 安装前准备

1. 安装前下载:

# cm安装包和离线安装文件和JDK等
链接:https://pan.baidu.com/s/1Ke0zCxGM99gpkmM2bqlQvg  密码:7bxy

2. 安装前准备环境

  • 版本声明:
    • 虚拟机:Centos6.7
    • JDK:1.8.0_73
    • mysql:5.1.73
    • cdh:5.14

1.准备一台虚拟机,单独的一台,强烈建议不要安装在已有hadoop集群的虚拟机中,根据上述所讲,为该台虚拟机分配内存(根据机器物理内存决定)。

注意:以下操作都是在root用户下进行,因为非root用户会涉及到很多日志文件等一系列权限的问题

我的虚拟机配置:
物理机: 一台8G内存的Mac
虚拟机:Centos6.7
虚拟机cpu:2core
虚拟机内存:6G

2.上传文件

# 将所需要用的的文件上传到/root/software/cdh下,该目录可以任意指定:用来存放安装包等

[root@zzm-cdh cdh]# mkdir -p /root/software/cdh/


3.安装JDK

# 将 jdk 解压到/usr/java/下,注意一定是在该目录下,因为CM启动服务时,会去这个目录下找 jdk。该目录需要自行创建。
[root@zzm-cdh cdh]# mkdir -p /usr/java

# 配置jdk的环境变量
[root@zzm-cdh cdh]# vim /etc/profile
# 追加以下内容:
##JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

[root@zzm-cdh cdh]# source /etc/profile

# 检查是否安装成功
[root@zzm-cdh cdh]# java -version

java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)


4.配置静态IP

# 1.查看自己的Ip
[root@zzm-cdh cdh]# ifconfig

# 我的初始Ip为172.16.147.124,静态Ip为172.16.147.111

inet addr:172.16.147.124  Bcast:172.16.147.255  Mask:255.255.255.0

# 2. 修改网卡的配置文件:
[root@zzm-cdh cdh]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

# 将以下内容中的IPADDR、GATEWAY、DNS1、HWADDR、UUID修改为自己的。
DEVICE=eth0     # 网卡设备名
HWADDR=00:0C:29:23:42:E4    # Mac 地址
TYPE=Ethernet   
UUID=b02df7df-2669-48ab-a422-a1228f9884b1
ONBOOT=yes  
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.147.111   # 想要设置的静态IP
PREFIX=24
GATEWAY=172.16.147.2    # 网关
DNS1=172.16.147.2

5.修改主机名:(改成你自己的)

[root@zzm-cdh cdh]# vim /etc/sysconfig/network
HOSTNAME=zzm-cdh

6.配置ip映射

[root@zzm-cdh cdh]# vim /etc/hosts

# 在末尾添加你的IP和对应的映射
172.16.147.111   zzm-cdh

7.配置免密登陆

[root@zzm-cdh cdh]# ssh-keygen
[root@zzm-cdh cdh]# ssh-copy-id zzm-cdh

8.安装mysql

使用yum 源安装

# 安装mysql
sudo yum install -y mysql-server

# 完成后启动mysql服务
sudo service mysqld start

# 登录mysql
mysql -u root -p

# 修改mysql的用户名和密码
update user set host='%' where host ='localhost';
update user set password=PASSWORD('你的密码') where user='root';
flush privileges;

# 退出mysql
quit;

# 重启mysql服务
sudo service mysqld restart

9.安装cm中一些服务说需要的依赖。

[root@zzm-cdh cdh]# yum -y install ntp python-lxml httpd mod_ssl cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi

10.启动相关服务并加入到开机启动中

# 1. ntpd服务
[root@zzm-cdh cdh]# service ntpd start
[root@zzm-cdh cdh]# chkconfig ntpd on

# 2. httpd服务
[root@zzm-cdh cdh]# service httpd start
[root@zzm-cdh cdh]# chkconfig httpd on

# 3. 若启动httpd报以下警告
Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain 
name, using 172.16.147.111 for ServerName

[root@zzm-cdh cdh]# vim /etc/httpd/conf/httpd.conf 
#注释 ServerName www.example.com:80
#添加 ServerName localhost:80
[root@zzm-cdh cdh]# service httpd restart


# 4. 关闭防火墙,并开机默认关闭
[root@zzm-cdh cdh]# service iptables stop
[root@zzm-cdh cdh]# chkconfig iptables off

11.在mysql中创建库,并授予远程登录权限

注意:将建表语句中zzm-cdh替换为你自己的主机名

# 创建原因:各个组件是由【各自组件名为用户名】的【用户】管理的。没有这些库,在安装chd的时候无法通过数据库的验证,即无法管理。

# 建表语句如下:

create database cmf DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,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@'zzm-cdh' identified by 'cmf';

create database metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,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@'zzm-cdh' identified by 'metastore';

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,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@'zzm-cdh' identified by 'oozie';

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,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@'zzm-cdh' identified by 'hive';

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,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@'zzm-cdh' identified by 'hue';

create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,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@'zzm-cdh' identified by 'monitor';

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


  • 效果如下

在这里插入图片描述

2. 开始安装CM

  1. 创建以下目录用来存放CM的安装包
[root@zzm-cdh cdh]# mkdir -p /opt/cloudera-manager

# 注意:不要解压在其他目录中,否则安装会出现很多问题,因为这是默认路径。

# 解压我们先前上传文件的tar.gz文件到上述目录下:
[root@zzm-cdh cloudera-manager]# tar -zvxf /root/software/cdh/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz -C ./

在这里插入图片描述


2.修改配置文件中主节点hostname

[root@zzm-cdh cloudera-manager]# vim /opt/cloudera-manager/cm-5.14.0/etc/cloudera-scm-agent/config.ini
#将server_host=localhost修改为server_host=zzm-cdh

3.在节点上添加用户:cloudera-scm(必须为该名字)

[root@zzm-cdh ~]# 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

4.创建cdh实体文件存放目录并修改所有者为 cloudera-scm 用户

注意:该目录也必须为该路径,为cm的默认配置目录。

[root@zzm-cdh ~]# mkdir -p /opt/cloudera/parcels
[root@zzm-cdh ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

#该目录就是安装好后的cdh实体文件的目录

5.创建cdh安装包文件目录,并将安装包复制到这个文件下

注意:目录必须为这个,理由同上

# 1、创建目录
[root@zzm-cdh ~]# mkdir -p /opt/cloudera/parcel-repo

# 2、移动安装包到该目录下
[root@zzm-cdh ~]# 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@zzm-cdh ~]# 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

# 注意末尾是sha不是sha1
[root@zzm-cdh ~]# 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@zzm-cdh ~]# cp /root/software/cdh/manifest.json /opt/cloudera/parcel-repo/manifest.json

# 3、更改该目录及文件的所有者,cloudera-scm 为我们上述创建的那个用户。
[[root@zzm-cdh ~]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
# 该目录是安装包的目录,即cm在安装cdh版hadoop时,会从这个目录读取安装文件进行解压安装。

在这里插入图片描述


6.配置mysql数据库驱动包

注意:必须为该目录

# 1.创建驱动包存放目录,组件连接数据库时会去该目录下找。
[[root@zzm-cdh ~]# mkdir /usr/share/java

# 2. 必须重新命名
[[root@zzm-cdh ~]# cp /root/software/cdh/mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar

7.初始化数据库用户

# -h后不需要空格,紧跟你的主机名,--scm-host后跟你的hosts中配置的映射
[root@zzm-cdh ~]# /opt/cloudera-manager/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -hzzm-cdh  --scm-host zzm-cdh  cmf cmf cmf
  • 说明初始化成功,我的已经装好了,不能再次初始化,所以就网上找了张图。

在这里插入图片描述


8.启动cm server

# 1. 启动
[root@zzm-cdh ~]# /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start 

#查看启动服务日志
[root@zzm-cdh ~]# tail -f /opt/cloudera-manager/cm-5.14.0/log/cloudera-scm-server/cloudera-scm-server.log
  • 启动了7180端口,说明server启动成功。

在这里插入图片描述


9.启动 agent

# 1. 启动cm agent
[root@zzm-cdh ~]# /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start 

# 2. 查看启动agent日志
[root@zzm-cdh ~]# tail -f tail -f /opt/cloudera-manager/cm-5.14.0/log/cloudera-scm-agent/cloudera-scm-agent.log

# 不报错,说明启动成功

10.通过web端访问cm安装cdh

前提:在你的物理机上配置了主机映射

  • 通过zzm-cdh:7180访问
  • 用户名和密码默认都是admin

在这里插入图片描述


11.条款,确定下一步

在这里插入图片描述


12.选择安装版本

  • 选择免费的

在这里插入图片描述

  • 继续

在这里插入图片描述


13.选择安装节点,选择当前管理的主机,即安装agent的节点,zzm-cdh,若是多节点安装,可以选择多个节点。点击继续

  • 我已经安装好,就没有这个图了,网上找的图

在这里插入图片描述


14.选择安装 cdh 版本,继续

在这里插入图片描述

  • 点击更多选项就可以看到:

在这里插入图片描述

这样就是我们为什么要指定创建那个目录


15.等待分配、解压、激活

在这里插入图片描述

  • 完成

在这里插入图片描述


16.检查集群,等待完成点击完成。

在这里插入图片描述


17.选择组件:可以先随便选,安装完成后也可自定义的添加和删除,选择完成后点击继续

在这里插入图片描述


18.节点规划,单节点默认都是zzm-cdh, 多节点可自定义的规划(符合要求),点击继续

在这里插入图片描述


19.测试数据库连接,测试完成,点击继续

  • 数据库名称,用户名、密码就是我们创建库时设置的密码:如下

在这里插入图片描述


20.集群设置,保持默认,点击继续

在这里插入图片描述


21.cdh帮助我们一键启动我们分配的组件,完成后点击继续

  • 这一步很重要,稍有不慎,就会出现很多权限和jdk路径的问题,这也是我们为什么在前面那样配置的原因。

在这里插入图片描述

  • 完成

在这里插入图片描述


22.恭喜你!!!

在这里插入图片描述


23.界面展示

  • 这个图是我自己的,哈哈,内存太小了,有很多报红,看着就吓人。在这里插入图片描述

24.jsp验证

在这里插入图片描述


25.HDFS 验证---- hadoop fs -ls /

在这里插入图片描述

3. 安装总结

  • 大家安装时候一定要细心,把这个文档分享给大家,大家有时间尝试着转一下,毕竟工作后都是cdh,不会有我们我们装的开源 hadoop 集群,熟悉cdh集群的架构是非常重要的。

  • 如若遇到什么问题,可以和我讨论,我也将该文档,放在CSDN博客上,https://blog.csdn.net/sinat_38885949,也欢迎大家来分享和讨论,指出问题。

谢谢大家

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值