摘要:本文介绍Hadoop伪分布模式操作,适合于Hadoop学习、开发和调试。

关键词:Hadoop    伪分布式   文件配置

启动Hadoop支持三种模式操作,分别是单机模式操作、伪分布模式操作和全分布模式操作。

单机模式操作是Hadoop的默认操作模式,当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,会保守地选择最小配置,即单机模式。该模式主要用于开发调试MapReduce程序的应用逻辑,而不会和守护进程交互,避免增加额外的复杂性。

伪分布模式操作是指在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式操作之上多了代码调试功能,可以查阅内存的使用情况、HDFS的输入输出以及守护进程之间的交互。

全分布模式操作是指一种实际意义上的Hadoop集群,其规模可从几个节点的小集群到成百上千个节点的大集群,甚至是成千上万的超大集群。

单机模式操作和伪分布模式操作均用于开发与调试的目的。真实的Hadoop 集群是全分布模式操作。

伪分布模式操作Hadoop集群,具体步骤如下。

第一步:前期工作

1 设置静态IP,完毕后,重启网卡,执行命令:service network restart。验证是否成功,执行命令:ifconfig。

2 查阅并修改主机名。

1)查阅当前会话的主机名,执行命令:hostname。

2)修改当前会话的主机名,执行命令:hostname   hadoop。

   该修改只能在本次操作生效。

3)通过配置文件修改主机名,执行命令:vi  /etc/sysconfig/network

   该修改长期有效。

验证:重启机器

3  把主机名和ip进行绑定,执行命令: vi   /etc/hosts

增加一行内容  ip   主机名

保存退出

验证: ping  主机名

4  关闭防火墙

执行命令  service  iptables stop

验证:service iptables status

6  关闭防火墙的自动运行

执行命令  chkconfig   iptables  off

验证:chkconfig  - - list  | grep  iptables

第二步:SSH 免密码登录

对Linux进行操作 通过Shell。

a)执行命令  ssh-keygen   -t  rsa  产生密钥,位于~/.ssh文件夹中

b)执行命令 cp  ~/.ssh/id_rsa.pub   ~/.ssh/authorized_keys

验证:ssh  localhost

第三步:安装JDK软件

a)执行命令rm  -rf  /usr/local/*  删除所有内容

b)使用小工具Winscp把jdk文件从Windows环境下复制到Linux下的/usr/local目录下

c)执行命令  chmod   u+x  jdk-6u24-linux-i586.bin 授予执行权限

d)执行命令  ./jdk-6u24-linux-i586.bin  解压缩到当前目录下

e)执行命令 mv jdk1.6.0_24   jdk

f)执行命令 vi /etc/profile  设置环境变量,增加了两行内容

export   JAVA_HOME=/usr/local/jdk

export   PATH=.:$JAVA_HOME/bin:$PATH

保存退出

执行命令 source    /etc/profile   让该设置立即生效。

验证:java –version

第四步:伪分布模式操作Hadoop

1 执行命令  tar  -zxvf  hadoop-1.1.2.tar.gz进行解压缩

2 执行命令  mv  hadoop-1.1.2  hadoop  重命名hadoop

3 执行命令 vi /etc/profile  设置环境变量,增加了一行内容

export   HADOOP_HOME=/usr/local/hadoop

修改了一行内容

export   PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

保存退出,执行命令:wq

执行命令 source    /etc/profile   让该设置立即生效。

4  修改hadoop配置文件,位于$HADOOP_HOME/conf目录下的4个文件,分别是hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml

a)配置hadoop-env.sh文件,把JAVA_HOME设置为Java安装根路径。

b)配置core-site.xml文件

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://hadoop:9000</value>

<description>change your own hostname</description>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop/tmp</value>

</property>

</configuration>

c)配置hdfs-site.xml文件

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

d)配置mapred-site.xml文件

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>hadoop:9001</value>

<description>change your own hostname</description>

</property>

</configuration>

d)执行命令hadoop  namenode  -format   对hadoop进行格式化

f)执行命令 start-all.sh启动

验证:

(1)执行命令jps会有5个进程,分别是NameNode、

DataNode、SecondaryNameNode、JobTracker,

TaskTracker。

(2)通过Linux下的浏览器查看,输入网址

http://hadoop:50070

http:// hadoop:50030

(3)通过Windows下的浏览器查看,可以修改windows的hosts文件