zoukankan      html  css  js  c++  java
  • Hadoop--设置单一节点集群

    目的

    这篇文档描述如何安装和配置一个单一节点的Hadoop,以便你可以快速使用hadoop mapreduce和Hadoop Distributed File System (HDFS)的一些简单操作。

    先决条件

    支持平台
    • GNU/Linux 是受支持的开发和生成平台。Hadoop已经证明了2000各节点的GNU/Linux 集群。
    • Windows也是受支持的平台,但是一下步骤只是用于Linux。要在Windows上安装,情况 wiki page
    所需软件

    Linux平台所需软件包括:

    1. Java。推荐的Java版本在 HadoopJavaVersions中描述。
    2. ssh必须安装。推荐安装pdsh。

    安装软件

    如果你还没有安装这些软件:

      $ sudo apt-get install ssh
      $ sudo apt-get install pdsh
    

    下载

    获取最新的Hadoop发行版,从Apache Download Mirrors中选一个最新的稳定版下载。

    准本开始Hadoop集群

    解压下载的Hadoop,编辑etc/hadoop/hadoop-env.sh定义一些参数如下:

      # set to the root of your Java installation
      export JAVA_HOME=/usr/java/latest
    

    试下下面命令:

    $ bin/hadoop
    

    此处会显示hadoop脚本用法。
    现在你已经准备好了,Hadoop集群支持三种模式之一:

    • Local (Standalone) Mode(本地模式)
    • Pseudo-Distributed Mode(为分布模式)
    • Fully-Distributed Mode(全分布模式)

    Standalone操作

    默认情况下,Hadoop是以一个Java进程运行为非分布模式,有利于调试。
    下面示例复制解压的conf文件夹作为输入,然后查找显示每个匹配正则表达式的项,输出结果写到到output文件夹。

      $ mkdir input
      $ cp etc/hadoop/*.xml input
      $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha2.jar grep input output 'dfs[a-z.]+'
      $ cat output/*
    

    Pseudo-Distributed 操作

    Hadoop也可以伪分布的方式运行在一个节点中,每个Hadoop进程运行在单独的Java进程中。

    配置

    使用如下
    etc/hadoop/core-site.xml:

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

    etc/hadoop/hdfs-site.xml:

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

    设置ssh密码

    现在检查你是否可以不需要密码使用ssh登陆到本地。

     $ ssh localhost
    

    如果ssh需要密码登陆,执行下面命令:

      $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
      $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      $ chmod 0600 ~/.ssh/authorized_keys
    

    执行

    下面的说明是在本地运行MapReduce作业。如果你想基于YARN运行作业,请看YARN on Single Node.

    1. 格式化文件系统:
    $ bin/hdfs namenode -format
    
    1. 启动NameNode守护进程和DataNode守护进程:
    $ sbin/start-dfs.sh
    

    hadoop守护进程日志写在$HADOOP_LOG_DIR文件夹中(默认是 $HADOOP_HOME/logs)。
    3. 浏览NameNode的web接口;默认在:

    NameNode - http://localhost:9870/
    
    1. 为需要运行的MapReduce作业创建HDFS文件夹:
      $ bin/hdfs dfs -mkdir /user
      $ bin/hdfs dfs -mkdir /user/<username>
    
    1. 把input文件复制到分布式文件夹中:
      $ bin/hdfs dfs -mkdir input
      $ bin/hdfs dfs -put etc/hadoop/*.xml input
    
    1. 运行一些提供实例:
      $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha2.jar grep input output 'dfs[a-z.]+'
    
    1. 检查输出文件:把分布式文件系统中的输出文件拷贝到本地文件系统然后查看:
      $ bin/hdfs dfs -get output output
      $ cat output/*
    

    或者
    直接在分布式文件系统中浏览:

      $ bin/hdfs dfs -cat output/*
    
    1. 完成后,关闭守护进程:
     $ sbin/stop-dfs.sh
    

    YARN on a Single Node

    你可以在伪分布模式上通过设置一些参数和启动ResourceManager和NodeManager 守护进程执行基于YARN的MapReduce作业。
    以下说明假设你已经执行完上面1-4步骤。

    1. 配置参数如下:
      etc/hadoop/mapred-site.xml:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    

    etc/hadoop/yarn-site.xml:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
        </property>
    </configuration>
    
    1. 启动ResourceManager和NodeManager守护进程:
      $ sbin/start-yarn.sh
    
    1. 浏览ResourceManager的web接口,默认是:
    ResourceManager - http://localhost:8088/
    
    1. 运行一个MapReduce作业。
    2. 当你完成后,关闭守护进程:
      $ sbin/stop-yarn.sh
    

    全分布操作

    对于安装全分布而不是测试的集群的信息,请看集群安装

  • 相关阅读:
    贴一段微博上的小知识
    关于编译Qt以及驱动的一点总结吧
    一些服务器客户端的c例子
    android中DatePicker和TimePicker的使用
    Python标准库string模块《未完待续》
    Qt: SQL Programming
    和一个坑爹的项目组的经历
    linux一些杂项整理
    Qt中的QTableWidget
    Linux c学习进程基础学习
  • 原文地址:https://www.cnblogs.com/ximengchj/p/6423695.html
Copyright © 2011-2022 走看看