zoukankan      html  css  js  c++  java
  • 配置Hadoop

    Hadoop的各个组件是通过XML配置的。
    2.0以后,配置文件的位置发生了小变化。我安装的Hadoop 2.4.1,配置文件的位置在$HADOOP_INSTALL/etc/hadoop/
    在初期执行MapReduce DEMO时,我们仅仅需关注三个基本配置就好:
    core-site.xml
    hdfs-site.xml
    yarn-site.xml(2.0后的版本号,MapReduce执行在yarn上)


    Hadoop有三种执行模式:本地模式(Standalone or local mode)。伪分布式模式(Pseudodistributed mode)和分布式模式(Fully distributed mode)。




    Standalone mode不须要配置。也不须要启动Daemon进程,学习时能够使用这个模式,Pseudodistributed mode和Fully distributed mode本质是一样的,仅仅只是Pseudodistributed mode是仅仅有一台机器的Fully distributed mode.


    以下说一下Pseudodistributed mode怎样配置:
    core-site.xml中配置:fs.default.name = hdfs://localhost/


    hdfs-site.xml中配置:dfs.replication = 1


    yarn-site.xml中配置:yarn.resourcemanager.address = localhost:8032, yarn.nodemanager.aux-services = mapreduce.shuffle




    接下来,我们须要配置SSH。由于Pseudodistributed mode和Fully distributed mode没有差别,仅仅只是是仅仅有一个节点的分布式而已。而Hadoop通过SSH来启动各个节点的Daemon,所以我们须要让SSH可以不须要输入password而登录当前localhost。详细做法例如以下:
    先安装SSH,假设是在Ubuntu下,能够使用命令:
    安装:sudo apt-get install openssh-server
    服务:
    sudo service ssh start/stop/restart/status
    生成key
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    将key存入~/.ssh/authorized_keys。这样下次登录时就不须要输入password了。
    这时,我们输入:ssh localhost,假设不须要输入password,直接登录成功。就能够了。




    以下插一段,我用的是64位的Ubuntu,而hadoop官网提供的版本号是基于32位环境编译的,必须下载源代码,在64位系统下又一次编译才干正确执行以下命令。编译的方法我是參考这篇文章的:http://blog.csdn.net/tianfei_1984/article/details/20030383
    事实上就是要编译完之后生成的$HADOOP_INSTALL/lib/native/眼下下的那个动态库。


    接下来是format hdfs,就像使用一块新硬盘一样,要对其进行格式化。
    运行命令:hadoop namenode -format


    启动daemon进程:
    start-dfs.sh
    start-yarn.sh
    结束daemon进程:
    stop-dfs.sh
    stop-yarn.sh


    这四个命令脚本位于$HADOOP_INSTALL/sbin/文件夹下。由于之前我们配置环境变量时把这个文件夹加到PATH下了。所以能够直接执行。


    有可能遇到JAVA_HOME找不到的问题,不了解原因。我配置JAVA_HOME环境变量。但还是找不到,不知道为什么。最后在$HADOOP_INSTALL/etc/hadoop/下找到hadoop-env.sh脚本。打开看里面有
    export JAVA_HOME=${JAVA_HOME}
    按理说这就应该能够呀,可是把它凝视掉,改成JAVA_HOME的真实路径
    export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67
    问题就攻克了。


    用jps命令能够确认hadoop daemon进程启动是否成功。


    jps是jdk提供的工具,类似于Linux里的ps命令,查看虚拟机进程。




    看到ResourceManager, DataNode, SecondaryNameNode都执行起来了


    通过浏览器訪问:localhost:8088,能够看到ResourceManager的Web UI.











  • 相关阅读:
    第一课 GCC入门
    第二课客户端链接Linux系统
    2014目标!!!!
    第一课Linux系统安装知识(2)
    android开发系列之ContentObserver
    android开发系列之数据存储
    android开发系列之视频断点续传
    稻盛和夫系列之活法一
    android开发系列之使用xml自定义控件
    android开发系列之MVP设计模式
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6993385.html
Copyright © 2011-2022 走看看