zoukankan      html  css  js  c++  java
  • Hadoop环境搭建2_hadoop安装和运行环境

    1 运行模式:

    单机模式(standalone):  单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。

    伪分布模式(Pseudo-Distributed Mode):  伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

    全分布模式(Fully Distributed Mode):   Hadoop守护进程运行在一个集群上。

    2 下载Hadoop:------------------笑一个------------------------ 

    获取安装包后
    在home/user目录下创建一个文件夹hadoop, 便于管理hadoop;
    更改该文件夹的所有者:sudo chown -R user:usergroup hadoop
    有了这步后,更改文件夹,就可以在Ubuntu界面下来操作来

    3 配置的过程:

      1修改配置文件:

        five@ubuntu:~/hadoop/conf$ gedit hadoop-env.sh   

        添加如下:

    export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64 (视你机器的java安装路径而定)
    export HADOOP_HOME=/home/five/hadoop
    export PATH=$PATH:/home/five/hadoop/bin

    生效:source hadoop-env.sh 

    提示:当然你可以在用户环境变量中添加第二个第三个,以便在任意路径下都可以快速执行hadoop命令

    2修改文件:

      文件1:--------------------------- 

        conf/core-site.xml文件内容修改为下面内容:
    
      <configuration>
    
         <!-- global properties 以下部分可以不用添加,在1.2.1的示例运行的时候回出现问题-->
         <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/five/hadoop/tmp</value>
       </property>
    
        <!-- file system properties -->  hadoop核心配置文件,HDFS 的地址和端口号
       <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
       </property>
      </configuration>

    文件2:---------------------------

     conf/hdfs-site.xml文件内容修改为下面内容:(replication默认为3,如果不修改,datanode少于三台就会报错)
      <configuration>
       <property>
        <name>fs.replication</name>
        <value>1</value>
       </property>
      </configuration>

    文件3:---------------------------

        这是Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
      conf/mapred-site.xml文件内容修改为下面内容:
      <configuration>
       <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
       </property>
      </configuration>

    3 格式化Hadoop文件系统,在命令行输入命令:

      bin/hadoop namenode -format

      显示:15/03/16 15:43:46 INFO common.Storage: Storage directory /home/five/hadoop/hdfs/name has been successfully formatted.

      上面命令如果有错,hadoop目录下执行,或者在环境变量中添加:hadoop的bin目录后,运行:hadoop namenode -format

    、启动Hadoop,在命令行输入命令:

        bin/start-all.sh
        ./start-all.sh
        用bin/start-all.sh;也可以用bin/start-dfs.sh和bin/start-mapred.sh)

      5

    隔10秒后,因为可能会报错:
    然后在命令行下输入:jps
    发现有:
    4574 TaskTracker
    4630 Jps
    2865 JobTracker
    4237 DataNode
    4394 SecondaryNameNode
    4092 NameNode

    验证Hadoop是否安装成功,在浏览器中输入下面网址,如果正常打开说明安装成功。

      http://localhost:50030 (mapreduce的web页面)
      http://localhost:50070 (hdfs的web页面)

     


    错误信息:

    1 http://localhost:50070 ,第二个打不开:

    查看Logs:
    2015-03-16 16:43:20,701 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode:
    java.net.UnknownHostException: Invalid hostname for server: master

      打开core-site.xml中的主机:看是不是正确,由于我之前写错了,


      2 jps命令后,发现没有DataNode:可能是由于多次格式化NameNode造成

        ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs 

    1.进入每个datanode的 dfs.data.dir 的 current目录,修改里面的文件VERSION

    #Fri Nov 23 15:00:17 CST 2012
    namespaceID=246015542
    storageID=DS-2085496284-192.168.1.244-50010-1353654017403
    cTime=0
    storageType=DATA_NODE
    layoutVersion=-32

    里面有个 namespaceID 将其修改成为报错信息中的

    namenode namespaceID = 971169702

    相同的 namespaceID .

    然后重新启动 datanode全部都能正常启动了。


    4 运行示例: 

    (1)先在本地磁盘建立两个输入文件 file01和file02
    $echo "Hello World Bye World" > file01
    $echo "Hello Hadoop Goodbye Hadoop" > file02
    例如:我的是:/home/five/input : file01 file02

    (2)在hdfs中建立一个input目录:$hadoop fs -mkdir input
    (3)将file01和file02拷贝到hdfs中:
    $hadoop fs -copyFromLocal /home/five/input/file0* input
    (4)执行wordcount:
    $hadoop jar hadoop/hadoop-examples-1.2.1.jar wordcount input hadoop/output

    hadoop jar hadoop-examples-1.0.4.jar (指定例子所在jar包 ) wordcount (指定程序的名字) /user/hadoop/test-examples/world-count(输入参数)  /user/hadoop/test-examples/world-count-result(输出结果)

    Error:1:需要是安装目录下对应的版本:hadoop-examples-1.2.1.jar

        2:如果提示创建Tem文件夹失败:删除那个在文件conf/core-site.xml中的属性

      

    (5)完成之后,查看结果
    $hadoop fs -cat hadoop/output/part-r-00000

    显示如下信息:
    .....
    .....
    15/03/17 15:16:24 INFO mapred.JobClient: map 0% reduce 0%
    15/03/17 15:16:32 INFO mapred.JobClient: map 100% reduce 0%
    15/03/17 15:16:40 INFO mapred.JobClient: map 100% reduce 33%
    15/03/17 15:16:41 INFO mapred.JobClient: map 100% reduce 100%

     

     

    5:参考:

    http://www.linuxidc.com/Linux/2013-06/86106p2.htm
    http://blog.csdn.net/wyswlp/article/details/10564847
    http://www.cnblogs.com/forfuture1978/category/300670.html
    http://www.linuxidc.com/Linux/2012-01/50880p2.htm 

     

     

  • 相关阅读:
    Fast data loading from files to R
    php的循环与引用的一个坑
    让我安静的写会儿代码
    chrome一个奇怪的问题
    用原生js给DOM元素添加、删除一个类名
    在ie浏览器下背景图片不显示的解决办法
    伪元素选择器之 ::placeholder
    基础版放大镜--面向对象
    元素尺寸大全
    如何解决PC端和移动端自适应问题?
  • 原文地址:https://www.cnblogs.com/foreverzd/p/4347765.html
Copyright © 2011-2022 走看看