zoukankan      html  css  js  c++  java
  • Ubuntu下用hadoop2.4搭建集群(伪分布式)

             要真正的学习hadoop,就必需要使用集群,可是对于普通开发人员来说,没有大规模的集群用来測试,所以仅仅能使用伪分布式了。以下介绍怎样搭建一个伪分布式集群。

       为了节省时间和篇幅,前面一些步骤不再叙述。本文是在基于单机模式的前提下进行得搭建。若不会搭建单机模式。请看我的前一篇文章。Ubuntu下用hadoop2.4搭建集群(单机模式)

       第一步 配置hdfs-site.xml

        /usr/local/hadoop/etc/hadoop/hdfs-site.xml用来配置集群中每台主机都可用,指定主机上作为namenode和datanode的文件夹。

       通过命令打开文件

    sudo  gedit  /usr/local/hadoop/etc/hadoop/hdfs-site.xml

     

      改动文件内容

       在该文件的<configuration></configuration>之间添加例如以下内容

     <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/hadoop/hdfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/hadoop/hdfs/data</value>
     </property>

      保存、关闭编辑窗体

      然后在hadoop 文件夹下新建文件夹。

    这些都能够自定义的,仅仅只是须要注意一点的是。在hdfs-site.xml里面所写的路径名须要和你建的文件名称一样。

    不要搞错这一点就没问题。

      通过命令新建目录。

      一个命令就可搞定。当然分开写也是能够的。(记得是在hadoop目录以下)


     第二步 配置core-site.xml

       这个文件包括了hadoop启动时候的配置信息  文件在这个文件夹下usr/local/hadoop/etc/hadoop/core-site.xml 

       首先通过命令打开配置文件

    sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml


      在该文件的<configuration></configuration>之间添加例如以下内容。

    这里我要特别的说明一下,能够使用以下三个都实验一下。笔者优先推荐第一个,这一个一般不会有问题。有的时候可能和hadoop的版本号以及系统本身一些问题。假设配置结束后不能启动,大家能够试试以下两个。

      第一种:   

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

     另外一种:

     <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    defaultFS是新版本号得一种写法,假设使用前面的default.name一般没有问题。有时候会提示你过期,让你使用defaultFS。能够都试一下。
    第三种:

     <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/tmp</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>

    这样的配置的目的是有个说法是如没有配置 hadoop.tmp.dir 參数。此时 Hadoop 默认的使用的暂时文件夹为 /tmp/hadoo-hadoop,而这个文件夹在每次重新启动后都会被干掉。必须又一次运行 format 才行(未验证),所以伪分布式配置中不妨设置一下。

    我也没有验证过。读者能够尝试一下。

    第三步 配置yarn-site.xml

          /usr/local/hadoop/etc/hadoop/yarn-site.xml包括了MapReduce启动时的配置信息。之前的hadoop版本号是没有这个的。启动都时候仅仅用bin/start-all.sh就能够,如今使用了yarn框架后须要对它进行配置。

    我可是配置2.4都时候。使用了曾经配置1.1时候的方法。结果搞了半天。白白浪费了时间。

        编辑器中打开此文件

    sudo gedit    /usr/local/hadoop/etc/hadoop/yarn-site.xml

       

    在该文件的<configuration></configuration>之间添加例如以下内容:

       <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
       </property>

        保存、关闭编辑窗体

    第四步 配置mapred-site.xml

          默认情况下,/usr/local/hadoop/etc/hadoop/目录下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。之前的有些版本号直接使用里面就有mapred.xml文件,2.4版本号,仅仅是提供了一个模板,所以我们须要自己复制一个mapred.xml文件。

          复制并重命名(注意路径)

    cp mapred-site.xml.template mapred-site.xml

        编辑器打开此新建文件

    sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml


        在该文件的<configuration></configuration>之间添加例如以下内容:

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

        保存、关闭编辑窗体  

     第五步 格式化分布式文件系统并启动hadoop

        使用例如以下命令(路径要在hadoop文件夹下,新手可能easy忽视这些问题。包含前面的都须要注意路径问题。)

      hdfs namenode -format    


       仅仅须要运行一次就可以,假设在hadoop已经使用后再次运行,会清除掉hdfs上的全部数据。

       经过上文所描写叙述配置和操作后。以下就能够启动这个单节点的集群    

        运行启动命令:

    sbin/start-dfs.sh    

        首次运行得话,假设有yes /no提示,输入yes,回车就可以。   结果例如以下

     

        接下来,运行:

        sbin/start-yarn.sh 

       结果例如以下

     

        执行完这两个命令后,Hadoop会启动并执行    

        运行 jps命令。会看到Hadoop相关的进程,例如以下图。假设不完整的话,就是配置没有正确了。

     

       同一时候我们也能够在浏览器上查看。

      浏览器打开 http://localhost:50070/会看到hdfs管理页面


      浏览器打开http://localhost:8088,会看到hadoop进程管理页面。


     

     第六步 通过wordcount程序来检查执行结果。

        在介绍步骤之前,有必要了解,bin/hadoop是一个命令,如今也能够用bin/dfs 。

        首先创建一个目录。这不是普通的目录,创建完毕后你是不能在目录以下看到的,须要用hadoop文件系统指令才干够看到。

    当然。使用Eclipse开发的话就能够看到文件系统里面的文件。下一篇博客我将会解说怎样使用Eclispe搭建hadoop环境。

       bin/hadoop fs -mkdir -p input

     

       把hadoop文件夹下的README.txt复制到dfs新建的input里,也能够拷贝其它的文件。对vim比較熟悉的也可自己写入。

       hadoop fs -copyFromLocal README.txt input

     

       -copyFromLocal是hadoop文件系统的一个操作指令。

        执行WordCount

     hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output
    
    
     

    能够看到执行过程。

     

    能够看到执行结果。

     

      执行完成后,查看单词统计结果

     hadoop fs -cat output/*

      

      结果是:

     

     第二次执行之前,请先删除output文件。否则会报错。

    使用命令:

    hadoop fs -rm -R ./output

     

     细心的读者应该发现了我得截图中。一直存在这样一个异常。

     提示WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

    这是由于hadoop native library是32位系统编译的,在64位系统上会有这个提示,须要下载hadoop的源代码又一次编译,可參考http://stackoverflow.com/questions/19943766/hadoop-unable-to-load-native-hadoop-library-for-your-platform-error-on-centos

    我编译了问题还是没有解决。可能和我系统本身有一些关系。

     详细能够參考这个博客。在文章的末尾作者讲得非常清楚

    http://dblab.xmu.edu.cn/blog/powerxing/install-hadoop-2-4-1-single-node/







  • 相关阅读:
    C#-MessageBox全部函数重载形式及举例
    在软件开发中应用80:20原则
    C# 程序员最常犯的 10 个错误
    关于vs2013调试的偶然错误发现与总结(vs2013的承载进程)---ShinePans
    C#好书盘点
    C#中 父类与子类相互强制转换之实验
    如何用C#语言构造蜘蛛程序
    C#创建word,操作、读写
    Linux less/more命令详解
    Linux 环境变量详解
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7125240.html
Copyright © 2011-2022 走看看