概述
- Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 - Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
- HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
- Hadoop的框架最核心的设计就是:HDFS和MapReduce。
- HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
Hadoop2.x之后的版本提供了解决单点问题的方案-HA(HighAvailable 高可用) 执行步骤如下:
下载链接:
2.搭建(系统环境: CentOS 7.2)
2.1创建Hadoop用户
[root@ ~]# useradd hadoop && passwd hadoop
[root@ ~]# vim /etc/sudoers
hadoop ALL=(root) NOPASSWD:ALL
[root@ ~]# mkdir -p /opt/source/hadoop && chown hadoop:hadoop /opt/source/hadoop -R
[root@ ~]# ls /opt/source/hadoop
drwxrwxr-x 10 hadoop hadoop 4096 Dec 22 13:25 hadoop
drwxr-xr-x 10 hadoop hadoop 4096 Dec 21 18:20 zookeeper
2.2 安装JDK
[root@ ~]# ls /opt/source
drwxr-xr-x 8 root root 4096 Sep 23 07:27 jdk1.8.0_111
[root@ ~]# ln -s /opt/source/jdk1.8.0_111 /opt/jdk
2.3 配置hosts
- 集群中所有机器的
hosts
配置要相同:
10.211.55.12 nna # NameNode Active
10.211.55.13 nns # NameNode Standby
10.211.55.14 dn1 # DataNode1
10.211.55.15 dn2 # DataNode2
10.211.55.16 dn3 # DataNode3
然后用 scp 命令,分发到各个节点,
这里以NNS节点为例子
scp /etc/hosts hadoop@nns:/etc/
2.4 安装SSH
输入如下命令:
ssh-keygen –t rsa
然后一路按回车键,最后在将id_rsa.pub写到authorized_keys,命令如下:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在hadoop用户下,需要给authorized_keys赋予600的权限,不然免密码登陆无效。
在其他节点只需要使用 ssh-keygen –t rsa 命令,生产对应的公钥,然后将各个节点的id_rsa.pub追加到nna节点的authorized_keys中。
最后,将nna节点下的authorized_keys文件通过scp命令,分发到各个节点的 ~/.ssh/ 目录下。目录如下:
# 这里以NNS节点为例子
scp ~/.ssh/authorized_keys hadoop@nns:~/.ssh/
然后使用ssh命令相互登录,看是否实现了免密码登录,登录命令如下:
# 这里以nns节点为例子
ssh nns
若登录过程中木有提示需要输入密码,即表示密码配置成功。
2.5关闭防火墙
[root@ ~]# systemctl stop firewalld && systemctl disable firewalld
2.7 ZooKeeper(安装,启动,验证)
2.7.1 安装
将下载好的安装包,解压到指定位置,这里为直接解压到当前位置,命令如下:
[hadoop@ ~] tar -zxvf zk-{version}.tar.gz
修改zk配置,将zk安装目录下conf/zoo_sample.cfg重命名zoo.cfg,修改其中的内容:
[hadoop@es1 ~]$ vim zoo.cfg
# The number of milliseconds of each tick
# 服务器与客户端之间交互的基本时间单元(ms)
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take