一.目的
为了实现公司项目对海量业务数据、文件进行存储,系统间共享,并且达到以下几点要求,可行方案hadoop集群。
- 数据安全
需要实现数据冗余,避免数据的单点故障。 - 可线性扩展
当数据增长到TB,甚至PB以上时,存储方案需要支持可线性扩展。 - 存储高可用
某个存储服务宕掉时,不影响整体存储方案的可用 - 性能
性能达到应用要求。
二. 版本选择
目前而言,不收费的Hadoop版本主要有三个(均是国外厂商),分别是:
Apache(最原始的版本,所有发行版均基于这个版本进行改进)。
Hortonworks版本(Hortonworks Data Platform,简称“HDP”)。
Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)。
对比:
(1)Apache版本建议学习使用,不建议在生产环境使用。
(2)Hortonworks 主打产品是Hortonworks Data Platform (HDP),也同样是100%开源的产品,HDP除了常见的项目外还包含了Ambari,一款开源的安装和管理系统。HCatalog,一个元数据管理系统。
(3)Cloudera 最成型的发行版本,拥有最多的部署案例。提供强大的部署、管理和监控工具。Cloudera开发并贡献了可实时处理大数据的Impala项目,Cloudera有免费版和企业版,企业版只有60天试用期,不过基本上免费版也满足生产环境的使用,监控工具为中文,不过Cloudera的代码不开源,只能通过产生本身的BUG修改补丁升级等。
三. hortonworks简介
需求使用到的分别为Apache Ambari,HDP,HDP-UTILS.
- Apache Ambari是一个基于web的工具,用于配置、管理和监视Apache Hadoop集群,支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同样还提供了集群状况仪表盘,比如heatmaps和查看MapReduce、Pig、Hive应用程序的能力,以友好的用户界面对它们的性能特性进行诊断。
- HDP是hortonworks的软件栈,里面包含了hadoop生态系统的所有软件项目,比如HBase,Zookeeper,Hive,Pig等等。
- HDP-UTILS是工具类库。
四.准备工作
4.1 Ambari,HDP版本选择
Ambari | Ambari-2.7.3 |
---|---|
HDP | HDP-3.1.0 |
JDK | JDK1.8 |
mysql | mysql-5.7 |
HDP-UTILS | HDP-UTILS-1.1.0.22 |
4.2 工具包自行下载
Ambari-2.7.3
HDP-3.1.0
HDP-UTILS-1.1.0.22
操作系统:centos7任意版本,系统为英文,64位,内存最好每台都10G以上。
4.3 安装vim编辑器(所有节点)
# 查看本机是否已经安装了某些vim的包
rpm -qa|grep vim
# 如果没有直接安装vim
yum -y install vim
4.4 修改系统语言(所有节点)
系统语言必须为英文,如果不是,请按照下面命令修改
# 进入修改系统语言的文件
vim /etc/locale.conf
# 将 LANG 属性改为如下所示
en_US.UTF-8
4.5 关闭服务器防火墙(所有节点)
systemctl status firewalld // 查看防火墙状态
systemctl stop firewalld // 关闭防火墙
systemctl disable firewalld // 永久关闭防火墙
4.6 修改主机名及机器映射
- 4.6.1 修改各个节点的主机名分别为master,slave1,slave2
hostnamectl set-hostname master // 主节点尽量使用内存和磁盘稍微大点的
hostnamectl set-hostname slave1 // 第二台机器
hostnamectl set-hostname slave2 // 第三台机器
- 4.6.2 修改/etc/hosts文件(所有节点)
vim /etc/hosts // 进入hosts文件
# 输入IP和它们对应的主机名
172.16.10 225 master master.hadoop
172.16.10 224 slave1 slave1.hadoop
172.16.10 226 slave2 slave2.hadoop
- 4.6.3 修改固定IP(所有节点)
[root@master ~]# vim /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
# 固定IP
[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes
IPADDR=172.16.10.225
PREFIX=24
GATEWAY=172.16.10.1
DNS1=172.16.10.1
# 保存退出,重启网络
service network restart
- 4.6.4 重启机器
执行:reboot或者shutdown -r now
4.7 服务器的免密登录(所有节点)
# 生成钥匙对(所有节点)
ssh-keygen -t rsa // 一路回车即可
chmod 700 ~/.ssh
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-