Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
下面我们一起来搭建吧。
准备工具
linux环境下搭建hadoop集群需要准备:
VMware-workstation-10.0.1注册机
CentOS-6.5-x86_64-bin-DVD1
jdk-7u79-linux-x64
hadoop-2.6.4.tar
新建虚拟机
解压VMware-workstation-10.0.1注册机,打开VMware Workstation主页,点击新建虚拟机,选择典型,如下:
点击下一步,选择安装程序光盘映像文件,浏览找到你下载CentOS-6.5-x86_64-bin-DVD1的压缩包文件,如下:
继续点击下一步,填写用户名和密码(尽量简单),填好后点击下一步,为即将创建的虚拟机命名并选择安装路径(最好不要安装在C盘),如下所示:
继续点击下一步至如下界面:
点击自定义硬件可以修改虚拟机的各项参数,如果电脑内存小于等于4GB,需要将内存改至512MB,否则严重卡顿。修改完成后点击完成,虚拟机就创建成功,打开后界面如下:
若要批量创建虚拟机,可以在创建好的虚拟机的基础上进行克隆操作,
安装jdk
打开一个虚拟机,右键单击桌面选择Open in Terminal,进入编辑界面:
假设用户名为wxx
获取root权限
1 | su |
i 进入编辑状态,在
1 | root ALL=(ALL) |
ALL的下一行编辑
1 | wxx ALL=(ALL) ALL |
按ESC键,退出编辑格式
按Shift + :
输入wq!保存并退出
创建hadoop文件夹
1 | cd |
将jdk-7u79-linux-x64安装包复制到hadoop文件目录下(与windows环境下类似)。
解压jdk-7u79-linux-x64.gz文件
1 | cd |
设置jdk环境变量
1 | cd |
进入后在最后一行添加以下指令:
1 | export JAVA_HOME=/home/by/hadoop/jdk1.8.0_11 |
点击保存后关闭,输入以下指令使jdk生效:
1 | source /etc/profile |
检查jdk是否安装成功
1 | java -version |
成功后显示如下信息:
1 | java version "1.7.0_79" |
创建集群
克隆虚拟机
将已经安装好jdk的虚拟机克隆两个,创建三个虚拟机的集群。
修改hostname
1 | su |
将三个虚拟机分别命名master、slave1、slave2
如图:
完成后重启虚拟机reboot
将三个虚拟机的ip地址相互连接
首先必须确保虚拟机联网,如果NET模式连不上网,则选中桥接模式。
网络通畅后执行以下操作:
1.查看三台虚拟机IP,分别对三个虚拟机执行指令ifconfig,查看各虚拟机ip地址
2.在master中执行以下指令
1 | su |
进入编辑界面后按“IP地址 hostname”填写信息,如图:
填写完后按Save按钮,关闭编辑页。
3.将配置好的文件复制到slave1、slave2中,在master中执行以下指令:
1 | scp /etc/hosts root@slave1:/etc/ |
4.检查各虚拟机是否互联,在master中执行以下指令:
1 | ping slave1 |
连通即完成
配置SSH无密钥登录
1.关闭防火墙,对每个虚拟机进行如下操作:
1 | su |
执行后重启虚拟机:
1 | reboot |
2.关闭防火墙后在master下执行以下指令:
1 | cd |
3.检查无密钥登录是否成功
1 | ssh slave1 |
成功后显示如下:
安装并配置hadoop-2.6.4(在master中)
1.将hadoop-2.6.4.tar.gz安装包复制到hadoop文件目录下(与windows环境下类似)。
2.解压hadoop-2.6.4.tar.gz
1 | cd |
3.配置hadoop-2.6.4的各项文件
1 | cd |
在最后一行添加:
1 | export JAVA_HOME=/home/by/hadoop/ jdk1.8.0_11 |
编辑core-site.xml
1 | gedit core-site.xml |
添加代码:
1 | <property> |
编辑hdfs-site.xml
1 | gedit hdfs-site.xml |
添加代码:
1 | <property> |
编辑mapred-site.xml
1 | gedit mapred-site.xml |
注意:必须先复制mapred-site.xml.template文件更名为mapred-site.xml
添加代码:
1 | <property> |
编辑yarn-site.xml
1 | gedit yarn-site.xml |
添加代码:
1 | <property> |
编辑master
1 | gedit master |
添加代码:
1 | master |
编辑slaves
1 | gedit slaves |
添加代码:
1 | master |
4.将配置好的文件复制到slave1、slave2中
1 | cd |
5.启动集群
1 | cd |
6.检查集群情况
1 | jps |
三台虚拟机如下所示: