Hadoop 2.x单节点部署学习。

 

 

1 环境 hadoop-2.5.2  ubuntu 64位服务器  jdk1.7.0_72(tar文件,直接解压到usr/local ,配置环境变量)

2 所需要的软件,不同linux安装软件方式可能不一样 :

  $ sudo apt-get install ssh

  $ sudo apt-get install rsync

3 下载hadoop:http://www.apache.org/dyn/closer.cgi/hadoop/common/

4 解压hadoop 到要安装的目录

5 编辑hadoop所需要环境 etc/hadoop/hadoop-env.sh

  其中jdk环境设置成自己安装的绝对路径,不能用环境变量的代替

6  执行 bin/hadoop  ,会打印一些hadoop的一些执行参数信息,安装完成 

 

hadoop三种模式:1 本地模式  2 伪分布模式  3 分布模式 

一、hadoop模式就是本地模式,作为java的一个进程

   在/web/hadoop 这个目录中执行 

  $ mkdir input

  $ cp etc/hadoop/*.xml input

  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'

  $ cat output/*

二、伪分布模式

  hadoop每个进程运行在单独的java线程中  

  1)配置 etc/hadoop/core-site.xml 

   

<configuration>
   <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
   </property>

 <property>
    <name>hadoop.tmp.dir</name>
    <value>/web/hadoop-2.5.2/tmp/hadoop-${user.name}</value>
    <description>临时文件的目录,根据情况修改.</description>
 </property>
</configuration>

 

 

   2)配置etc/hadoop/hdfs-site.xml 

  

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
</configuration>

 

 

   3)检查ssh是否可以无密码登录 到本机

$ ssh localhost 

如果需要输入密码则需要设置无密码登录 

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

$ export HADOOP\_PREFIX=/usr/local/hadoop

    4)格式化文件系统,系统会清理临时文件目录,并重新生成一些目录 

      bin/hdfs namenode -format 

      或 bin/hadoop namenode -format  (配置环境变量以后可以直接用hadoop来执行命令不使用目录)

     格式化过程会创建hadoop.tmp.dir 指定的数据文件目录,并且会产生管理datanode元数据的文件 

    5) 开启名称节点线程和数据节点进程

      $ sbin/start-dfs.sh

     

      启动过程看log是否有错误: $HADOOP_HOME/logs

    6) 将地址换成hadoop的ip地址然后在浏览器中访问下面地址,可以浏览文件系统的一些信息:

     集群监控:    http://localhost:50070/

      mapreduce监控:   http://cloud1:8088/ 

    7) 创建mapreduce所需要的目录 

$ bin/hdfs dfs -mkdir /user

$ bin/hdfs dfs -mkdir /user/root(用户名)

拷贝目录文件到文件系统中 

$ bin/hdfs dfs -put etc/hadoop input

运行mapreduce例子,注意修改jar版本

        $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'

检查输出文件

$ bin/hdfs dfs -cat output/*

     8)停止dfs进程  $ sbin/stop-dfs.sh 

 

三、伪分布模式下在YARN中运行MapReduce job 

  1)etc/hadoop/mapred-site.xml 

  

<configuration>
   <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
   </property>
</configuration>

 

</configuration>

   2)etc/hadoop/yarn-site.xml ,resourceManager和NodeManager的配置

       Map程序产生的数据以shuffle形式传给reduce  

       resourceManager访问地址

       

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>cloud1</value>
    </property>
 
</configuration>

 

 

   3)启动ResourceManager 和NodeManager 线程

    $ sbin/start-yarn.sh

 

   4)执行例子程序 

      hadoop jar hadoop-mapreduce-examples-2.4.1.jar wordcount /wordcount/input /wordcount/output 

    

 

环境变量设置:

  

export HADOOP_PREFIX=/web/hadoop-2.5.2
export PATH=$PATH:$HADOOP_PREFIX/bin
export PATH=$PATH:$HADOOP_PREFIX/sbin
export HADOOP_MAPRED_HOMD=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export YARN_HOME=${HADOOP_PREFIX}
export HADOOP_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop

 

 

 

查看hdfs中所有的目录: bin/hdfs dfs -lsr /

运行dfs和yarn后, 执行jdk下面的jps命令,查看java线程会有以下线程,则运行成功 

  

7313 SecondaryNameNode
7570 NodeManager
7467 ResourceManager
7129 DataNode
7029 NameNode
7675 Jps

来源: 

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation

 

 

 

猜你喜欢

转载自username2.iteye.com/blog/2267662