一、测试环境准备
由于个人硬件环境的限制,在测试过程中我是以VMware开虚拟机来替代真实的机器,宿主机和虚拟机配置如下:
宿主机:
CPU: Intel i5-3470 CPU 3.20GHz 内存: 8.00 GB 操作系统: Windows 7 旗舰版 (64位/Service Pack 1)
虚拟机:
操作系统: Ubuntu 14.04.1 LTS 32bit 内存: 2.00 GB CPU核数: 1 网络模式: host-only
在准备好Linux环境之后,下面进行一些前期的准备工作,主要包括虚拟机网络模式设置、修改Linux主机名、修改IP、修改主机名和IP的映射关系以及关闭防火墙,下面一一介绍具体操作步骤:
1. 修改虚拟机网络模式
在测试过程中为方便操作Linux虚拟机,这里我们把虚拟机与宿主机的网络连接方式改为host-only模式(这里虚拟机不需要连接外网),当然选择NAT、桥接模式也是可以的。具体的设置方式为:
(1). 点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.50.0 子网掩码:255.255.255.0 -> apply -> ok
(2). 回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.50.10 子网掩码:255.255.255.0 -> 点击确定
(3). 在虚拟软件上 --My Computer -> 选中虚拟机 -> 右键 -> settings -> network adapter -> host only -> ok
当然修改虚拟机网络的方式有好多种,只要配置连接方式为host-only,设置好相应的IP就行了,这里我采用的是192.168.50.0网段,连接Windows一端的IP我设置成了192.168.50.10,Linux自身的IP设置为192.168.50.128,如有疑问也可以参考其他文章进行操作。
2. 修改Linux主机名
为了操作方便,这里我们修改一下Linux主机名。设置方式为:
sudo vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hyman ###
3. 修改Linux自身IP
修改Linux环境IP,有两种方式,喜欢使用图形界面操作的可以选择方式一,对于那些高大上的熟悉命令行操作的朋友可以选择方式二(个人认为,玩Linux还是推荐命令行模式比较好)。
方式一:通过Linux图形界面进行修改
进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.50.128 子网掩码:255.255.255.0 网关:192.168.50.1 -> apply
方式二:修改配置文件方式(###代表修改的部分,其他的可以不变)
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ###
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR="192.168.50.128" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.168.50.1" ###
修改完成后,重启网络,sudo service network restart,看到一切OK说明网络设置成功,如果出现Feild删除网络连接再进行上述配置(这时候图形模式就体现优势了),最后通过ping进行验证是否设置成功。
4. 修改主机名和IP的映射关系
sudo vim /etc/hosts
192.168.50.128 hyman
5. 关闭防火墙
#查看防火墙状态
sudo service iptables status
#关闭防火墙
sudo service iptables stop
#查看防火墙开机启动状态
sudo chkconfig iptables --list
#关闭防火墙开机启动
sudo chkconfig iptables off
6. 配置ssh免登陆
生成ssh免登陆密钥
cd ~,进入到我的home目录
cd .ssh/
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
或
ssh-copy-id -i localhost
7. 重启Linux
sudo reboot
到此,安装Hadoop的准备工作已经完毕,下面分析Hadoop伪分布式配置的详细过程。
二、安装jdk
1. 上传jdk安装包
到oracle官网http://www.oracle.com/technetwork/java/javase/downloads/index.html下载一个相对应的jdk安装包,这里使用的是jdk1.7.0_55 32bit linux版本,上传到Linux虚拟机中。
2. 解压jdk
#创建文件夹
sudo mkdir /usr/java
#解压
sudo tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/
3. 将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/usr/java/jdk1.7.0_55
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile
三、安装Hadoop
1. 上传hadoop安装包
到Hadoop官网http://mirrors.cnnic.cn/apache/hadoop/common/下载Hadoop2.2.0安装包,上传Hadoop2.2.0.tar.gz文件到虚拟机中。
2. 解压hadoop安装包
sudo mkdir ~/hadoop
#解压到~/hadoop/目录下
tar -zxvf hadoop-2.2.0.tar.gz -C ~/hadoop/
3. 修改配置文件(这里需要修改5个)
第一个:hadoop-env.sh
#在27行修改
export JAVA_HOME=/usr/java/jdk1.7.0_55
第二个:core-site.xml
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hyman:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>~/hadoop/hadoop-2.2.0/tmp</value>
</property>
</configuration>
第三个:hdfs-site.xml
<configuration>
<!-- 设置hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第四个:mapred-site.xml.template 需要重命名: mv mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
第五个:yarn-site.xml
<configuration>
<!-- reducer取数据的方式是mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4. 将hadoop添加到环境变量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_55
export HADOOP_HOME=~/hadoop/hadoop-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
source /etc/profile
5. 格式化HDFS(namenode)第一次使用时要格式化
hadoop namenode -format
6. 启动hadoop
先启动HDFS
sbin/start-dfs.sh
再启动YARN
sbin/start-yarn.sh
7. 验证是否启动成功
使用jps命令验证
12402 NameNode
13512 Jps
23137 SecondaryNameNode
21464 NodeManager
15303 ResourceManager
21517 DataNode
http://192.168.50.128:50070 (HDFS管理界面)
在这个文件中添加linux主机名和IP的映射关系
C:\Windows\System32\drivers\etc\hosts
192.168.50.128 hyman
http://192.168.50.128:8088 (MR管理界面)
到此,hadoop2.2.0伪分布式搭建已经完成,大家可以用一下操作进行验证。
1. 验证HDFS
向hdfs上传一个文件,然后查看hdfs中是否存在
hadoop fs -put /etc/profile /profile
hadoop fs -ls /
2. 验证YARN
运行一下hadoop提供的demo中的WordCount程序:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /profile /out
OK,大功告成!!!