目录
1. 简介
2. 所需软件
3. 安装环境配置
4. 安装JDK
5. 安装Hadoop2.2.0
6. 启动Hadoop
7. 验证HDFS是否可用
8. 设置免密码登
1. 简介
本文主要是介绍Hadoop2.2.0的伪分布式的搭建,通过伪分布式的搭建来认识Hadoop2.2.0主要进程,最后实现一个WordCount的单词计数。
2. 所需软件
1) 准备虚拟机VMware Workstation、CentOS6.4
2) Hadoop2.2.0的安装包,该安装包可以直接去Apache的官网上下载hadoop-2.2.0.tar.gz
3) jdk-6u24-linux-i586.bin 安装包
3. 安装环境配置
注意:为了操作方便,以下软件安装及操作均使用root用户进行操作,实际的生产环境是不可以使用root用户的。
1) 修改虚拟机IP
[root@localhost Desktop]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ### 修改
HWADDR="00:50:56:2A:0E:A4"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="2d678a8b-6c40-4ebc-8f4e-245ef6b7a969"
IPADDR="192.168.80.110" ### 修改
NETMASK="255.255.255.0" ### 修改
GATEWAY="192.168.80.1" ### 修改
2) 修改主机名
[root@localhost Desktop]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hd01 ### 修改hd01可以自定义但是要和3)步骤中的映射保持一致
3) 修改主机名与IP的映射关系
[root@localhost Desktop]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.80.110 hd01 ## 添加ip与主机名的映射中间用空格或者tab键分割均可
4) 查看防火墙状态
5) 如果防火墙开启则关闭防火墙
[root@localhost Desktop]# service iptables stop
6) 设置防火墙开机不启动
[root@localhost Desktop]# chkconfig iptables off
7) 查看防火墙的状态(如果全是off则为开机不启动防火墙)
[root@localhost Desktop]# chkconfig iptables --list
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
8) 重启机器
[root@localhost Desktop]# reboot
9) 验证ip及主机名是否修改完成
Windows 下面使用ping 192.168.80.110 是否能ping通虚拟机
反过来用虚拟机ping 一下Windows的IP
10) 在Linux的根目录下面创建一个cloud目录,使用ftp工具上传jdk及hadoop安装包到该目录
至此安装环境准备完毕!!!
4. 安装JDK
使用root用户进入cloud目录
1) 安装jdk执行命令:
./jdk-6u24-linux-i586.bin
如果./jdk-6u24-linux-i586.bin无权限则授予可执行权限:chmod u+x ./jdk-6u24-linux-i586.bin
2) 配置jdk的环境变量
[root@hd01 ~]# vi /etc/profile
#### 在该文件下添加如下配置
export JAVA_HOME=/cloud/jdk1.6.0_24
export PATH=$PATH:$JAVA_HOME/bin
3) 刷新配置文件
[root@hd01 ~]# source /etc/profile
4) 验证安装jdk成功
[root@hd01 ~]# java -version
5. 安装Hadoop2.2.0
使用root用户进入cloud目录
1) 解压hadoop-2.2.0的压缩包
tar -zxvf hadoop-2.2.0.tar.gz
2) 配置Hadoop2.2.0的伪分布式,需要修改路径:/cloud/hadoop-2.2.0/etc/hadoop 下面的 5个配置文件
第一个:hadoop-env.sh (修改第27行)
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_60
第二个:core-site.xml
vi core-site.xml
<configuration>
<!-- 用来指定HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hd01:9000</value>
</property>
<!-- 用来指定Hadoop用行时产生文件的存放目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/cloud/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 (首先改名:mv mapred-site.xml.template mapred-site.xml)
然后修改mapred-site.xml
<configuration>
<!-- 告诉Hadoop以后MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
第五个:yarn-site.xml
<configuration>
<!-- NodeManager获取数据的方式是shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hd01</value>
</property>
</configuration>
3) 将Hadoop添加到环境变量中
vi /etc/profile
export HADOOP_HOME=/cloud/hadoop-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
4) 刷新配置:
source /etc/profile
5) 验证Hadoop是否安装成功:
[root@hd01 hadoop]# hadoop version
6. 启动Hadoop
1) 格式化hadoop
[root@hd01 cloud]# hdfs namenode –format
2) 启动HDFS和YARN (需要多次输入root用户密码)
[root@hd01 sbin]# ./start-all.sh
3) 启动完成验证进程是否启动成功(可以看到如下5个进程则启动成功)
[root@hd01 sbin]# jps
4) 使用浏览器验证:
HDFD的管理界面: http://hd01:50070/dfshealth.jsp
YARN的管理界面:http://hd01:8088/cluster
7. 验证HDFS是否可用
1) 将/root/install.log上传到HDFS的根目录下面
[root@hd01 sbin]# hadoop fs -put /root/install.log hdfs://hd01:9000/
2) 通过浏览器查看是否上传成功
成功!!!
3) 运行Hadoop2.2.0安装包提供的wordcount对hdfs://hd01:9000/install.log进行单词计数
[root@hd01 mapreduce]# hadoop jar /cloud/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount hdfs://hd01:9000/install.log /out
4) 验证输出结果
至此Hadoop2.2.0的伪分布式搭建完成!!!
8. 设置免密码登录
1) 进入/root/.ssh
[root@hd01 ~]# cd ~/.ssh
2) 在~/.ssh中执行命令ssh-keygen -t rsa (一路回车下去):
[root@hd01 .ssh]# ssh-keygen -t rsa
3) 然后执行以下命令(输入一次密码):
[root@hd01 .ssh]# ssh-copy-id hd01
4) 此时在~/.ssh中将生成公私玥信息
[root@hd01 sbin]# cd ~/.ssh
[root@hd01 .ssh]# ll
5) 再次启动Hadoop将无需输入密码