Hadoop2.5.2安装——伪分布式模式

一、下载hadoop的的部署文件

我这里是使用当前的最高版本:2.5.2下载地址

http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.5.2/

部署hadoop伪分布式之前,请确保当前系统已经安装了jdk

二、新建hadoop用户

     当然你也可以使用root用户直接干,所以这步不是必须的,但是还是建议这么干。

    

useradd hadoop --新建hadoop用户
 passwd hadoop  --设置hadoop用户的密码

三、免密码ssh设置

 切换到hadoop用户执行

/usr/bin/ssh-keygen -t rsa  --执行完这句,按三次回车即可生成公钥与私钥
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 chmod 600 ~/.ssh/authorized_keys

 验证hadoop用户的ssh免登录认证

ssh localhost

 执行完后,没有提示输入密码,变切换到了hadoop用户的用户目录说明配置成功

四、安装Hadoop 2.5.2

1)将下载的hadoop-2.5.2.tar.gz安装包,解压到hadoop的用户目录(/home/hadoop)

[hadoop@localhost ~]$ tar -xzv -f hadoop-2.5.2.tar.gz

2)修改配置文件

hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的Java进程来运行,节点即NameNode也是DataNode。需要修改2个配置文件etc/hadoop/core-site.xml和etc/hadoop/hdfs-site.xml。

  • core-site.xml修改如下:
<configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://127.0.0.1:9000</value>
        </property> 
</configuration>

Hadoop自升级到2.x版本之后,有很多属性的名称已经被遗弃了,虽然这些被遗弃的属性名称目前还可以用,但是这里还是建议用新的属性名,主要遗弃的属性名称参考下面地址:http://www.iteblog.com/archives/923

(上面的fs.defaultFS在老版本中使用fs.default.name,现在还是可以用的,但是建议使用新的)

  配置说明:添加hdfs的指定URL路径,由于是伪分布模式,所以配置的是本机IP ,可为真实Ip、localhost。

  • hdfs-site.xml修改如下:
<configuration>
    <property>
         <name>dfs.replication</name>
         <value>1</value>
    </property>
    <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/home/hadoop/dfs/name</value>
    </property>
    <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/home/hadoop/dfs/data</value>
    </property>
</configuration>

 配置说明:主要是对namenode 和 datanode 存储路径的设置。其实默认是存储在file://${hadoop.tmp.dir}/dfs/name和data 下的。所以这里也不需配置的。但默认的是临时文件,重启就没有了,所以我这里还是设置了专门的路径保存。

  •  将mapred-site.xml.template重命名为mapred-site.xml,并添加如下内容

    目的:告诉hadoop,MapReduce是运行在yarn这个框架上

<property>
       <name>mapreduce.framework.name</name>
        <value>yarn</value>
 </property>
  •  yarn-site.xml
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

3)为hadoop指定jdk

修改etc/hadoop/hadoop-env.sh 文件,如下所示:

#export JAVA_HOME=${JAVA_HOME} --原来
export JAVA_HOME=/usr/local/jdk1.7.0_67 --修改后

 这步网上很多教程没有,但是我试过,虽然配置了环境jdk的环境变量,但是在启动hadoop时,会提示找不到jdk,所以这里改成决定路径就可以了。

 

5)2.5.0后需要添加环境变量

    在当前hadoop用户下面编辑$ vim ~/.bashrc添加如下代码

export HADOOP_HOME=/home/hadoop/hadoop-2.5.2
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

五、启动haoop

  • 切换到该安装目录下,首先格式化 namenode
bin/hdfs namenode -format
  •  开启NaneNode和DataNode守护进程
sbin/start-dfs.sh
  •  成功启动后,可以通过命令jps看到启动了如下进程NameNode、DataNode和SecondaryNameNode。
[hadoop@localhost hadoop]$ jps
12321 DataNode
12210 NameNode
13210 Jps
12555 SecondaryNameNode

 此时可以访问Web界面http://localhost:50070来查看Hadoop的信息。如下所示:


Hadoop2.5.2安装——伪分布式模式

  • 结束Hadoop进程,则切换到haood的安装目录执行
sbin/stop-dfs.sh

   温馨提示:下次再启动hadoop,无需进行HDFS的初始化,只需要运行 sbin/stop-dfs.sh 就可以!

  •  启动yarn,切换到hadoop的部署目录执行
$ sbin/start-yarn.sh

   再次查看使用jps查看java的后台进程可以看到如下所示:NodeManager跟ResourceManager进程

$ jps
27021 DataNode
27191 SecondaryNameNode
26899 NameNode
27367 ResourceManager
27487 NodeManager
28043 Jps

此时可以用过Web界面来查看NameNode运行状况,URL为 http://localhost:8088,如下图所示


Hadoop2.5.2安装——伪分布式模式

  •  停止yarn的命令如下

   切换到部署hadoop的目录执行

$ sbin/stop-yarn.sh

 

六、运行实例

将文件上传到hdfs上面的实例如下:

  • 切换到该安装目录下,建立要上传到hadoop的两个文件 test1.txt、test2.txt 
mkdir input
cd input
echo "hello world" > test1.txt
echo "hello hadoop" > test2.txt
  •  把input目录中的文件拷贝到hdfs上,并保存在in目录中
bin/hadoop dfs -put input /in

其中/in 中的/ 是hdfs下的目录,不加/ 上传将报错。

  • 查看hdfs中的文件
bin/hadoop dfs -ls /in

   同时也可以通过http://127.0.0.1:50070 查看节点下的文件

  •  运行自带的workcount统计
bin/hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar worddount  /in /out
  •  运行结果如下:


Hadoop2.5.2安装——伪分布式模式
 

 参考资料:

http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html

hadoop启动命令与停止命令参考

http://book.2cto.com/201401/39823.html

相关推荐