zoukankan      html  css  js  c++  java
  • hadoop 2.5.1单机安装部署伪集群

    环境:ubuntu 14.04 server 64版本

    hadoop 2.5.1

    jdk 1.6

    部署的步骤主要参考了http://blog.csdn.net/greensurfer/article/details/39450369这篇文章。

    1 安装java,配置好环境变量 JAVA_HOME CLASSPATH

    具体步骤参考网上linux安装jdk

    2 配置信任关系

    ssh-keygen

    一直回车就好了

    然后将~/.ssh/id_rsa.pub文件拷贝到需要无密码登录的机器用户下

    是在不会,再网上找吧

    3 解压了下载的hadoop包后,修改里面的配置文件

    tar -zxvf hadoop-2.5.1.tar.gz
    cd hadoop-2.5.1

    修改${HADOOP_HOME}/etc/hadoop/core-site.xml

    <configuration></configuration>之间填写配置

    <configuration>
       <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/files/hadoop/temp</value>
       </property>
       <property>
          <name>fs.defaultFS</name>
          <value>hdfs://hadoop:9000</value>
       </property>
       <property>
          <name>io.file.buffer.size</name>
          <value>4096</value>
       </property>
    </configuration>

    hadoop.tmp.dir这个是一个hadoop运行时的临时文件的目录,上面写的/opt/files/hadoop/temp这个目录需要用户自己先创建

    同样,修改hdfs-site.xml配置文件

    <configuration>
       <property>
          <name>dfs.nameservices</name>
          <value>hadoop</value>
       </property>
       <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>hadoop:50090</value>
       </property>
       <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:///opt/files/hadoop/name</value>
       </property>
       <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:///opt/files/hadoop/data</value>
       </property>
       <property>
          <name>dfs.replication</name>
          <value>1</value>
       </property>
       <property>
          <name>dfs.webhdfs.enabled</name>
          <value>true</value>
       </property>
       <property>
          <name>dfs.permissions.enabled</name>
          <value>false</value>
       </property>
    </configuration>

    dfs.namenode.name.dir 和 dfs.datanode.data.dir两个的目录,都需要用户自己首先创建好

    注意,这里 dfs.replication 为1 ,数据备份数为1 ,这是由于我是只有单台机器来部署伪集群,但是一般的集群环境,都是建议用户配置为3,让数据有3副本

    同样的,secondnamenode也是和namenode部署时同一台机器,这个都是在实际的部署上不可取的,希望读者了解这个。

    dfs.permissions.enabled设置为false,代表关闭HDFS的权限校验,允许任何人对HDFS上的文件进行增山查改。

    配置yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
       <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
       </property>
       <property>
          <name>yarn.resourcemanager.address</name>
          <value>hadoop:8032</value>
       </property>
       <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>hadoop:8030</value>
       </property>
       <property>
          <name>yarn.resourcemanager.resource-tracker.address</name>
          <value>hadoop:8031</value>
       </property>
       <property>
          <name>yarn.resourcemanager.admin.address</name>
          <value>hadoop:8033</value>
       </property>
       <property>
          <name>yarn.resourcemanager.webapp.address</name>
          <value>hadoop:8088</value>
       </property>
    </configuration>

    这里的配置,完全是参考其他博主的

    配置mapred-site.xml

    <configuration>
       <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
       </property>
       <property>
          <name>mapreduce.jobtracker.http.address</name>
          <value>hadoop:50030</value>
       </property>
       <property>
          <name>mapreduce.jobhistory.address</name>
          <value>hadoop:10020</value>
       </property>
       <property>
          <name>mapreduce.jobhistory.webapp.address</name>
          <value>hadoop:19888</value>
       </property>
    </configuration>

    修改hadoop-env.sh 和 yarn-env.sh 文件,找到JAVA_HOME字段,修改为用户自己的路径

    hadoop-env.sh

    export JAVA_HOME=/opt/jdk1.6.0_45

    yarn-env.sh

    export JAVA_HOME=/opt/jdk1.6.0_45

    配置slaves节点,这里只写本机的hostname

    hadoop

    4 格式化namenode

    bin/hdfs namenode -format 

    输出:

    /************************************************************  
    SHUTDOWN_MSG: Shutting down NameNode at nameNode/127.0.0.1  
    ************************************************************/  

    这个就是成功了

    5 启动节点

    sbin/start-all.sh

    起来之后,jps一下,看看是否都起来了,正常的节点

    15569 DataNode
    15800 ResourceManager
    15927 NodeManager
    15440 NameNode
    15957 Jps

    6 跑一下wordcount程序

    简单的写个临时文件,上存到hdfs上,临时文件test.txt

    chen fool
    chen good

    在hdfs上新建一个目录

    bin/hadoop fs -mkdir -p /test/in

    上存文件

    bin/hadoop fs -put test.txt /teset/in/

    执行测试程序

    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount /test/in /test/out

    检查运行结果

    bin/hadoop fs -ls /test/out
    bin/hadoop fs -cat /test/out/part-r-00000

    chen 2

    fool 1

    good 1

    结果正确,证明部署成功了

    7 web查看运行状况

    浏览器访问:http://hadoop:50070 查看各个节点的运行状态

    浏览器访问:http://hadoop:8088/ 查看各个job的运行情况,并且可以查看job的输出与错误信息

    注:

    hadoop 都是指 hostname 的意思,请大家根据自己的真实情况进行修改

    参考博客:http://blog.csdn.net/greensurfer/article/details/39450369

    http://blog.csdn.net/licongcong_0224/article/details/12972889

    hadoop 2.4 介绍博客:http://blog.csdn.net/skywalker_only/article/details/38849989

  • 相关阅读:
    WEBAPP开发技巧
    手机中的javascript事件
    I6下实现FIXED
    vim 使用帮助
    javascript小技巧
    webkitbox & translate CSS3动画详解
    backbone中的实例中文注释
    getClientRect和getBoundingClientRect获取节点的屏幕距离
    javascript判定不同浏览器
    jQuery中的trigger(type, [data]) 原生实现方法
  • 原文地址:https://www.cnblogs.com/chenfool/p/4083400.html
Copyright © 2011-2022 走看看