Hadoop(2015/8/19最新发行版2.7.1): 搭建一个单节点集群。官方文档翻译

duty 发布于 2015/08/19 17:56
阅读 735
收藏 4

根据官方文档边操作边翻译,如有谬误欢迎拍砖指正!大家一起学习。也欢迎推荐更多有用学习文档给我,谢谢! 

Hadoop: 搭建一个单节点集群。

  • Hadoop: 搭建一个单节点集群。
    • 目的
    • 先决条件
      • 操作系统支持
      • 必要软件
      • 安装软件
    • 下载Hadoop
    • 准备启动Hadoop集群
    • 独立操作
    • 伪分布式操作
    • 分布式操作

目的

本文介绍如何安装一个单节点Hadoop,并教你快速简单地使用 MapReduce 和 Hadoop Distributed File System (HDFS)。

先决条件

操作系统支持

  • GNU/Linux 在开发环境和生产环境可以完美支持。 Hadoop已经证明可以在2000个节点的 GNU/Linux 分布式环境下运行。

  • Windows 也是支持的平台之一,但是下面的搭建步骤只在linux环境可用。想要在Windows 平台搭建Hadoop,请查看 wiki page

必要软件

Linux下必要的软件包括:

  1. Java™ 。 从2.7.0版本开始,Hadoop不支持jdk1.6,只支持jdk1.7+。推荐的 Java 版本在 HadoopJavaVersions 有说明.

  2. ssh。并且sshd服务必须启动才可以使用Hadoop脚本管理远程的 Hadoop 守护进程(即使是单节点的伪集群也需要通过ssh管理)。

软件安装

如果你的集群节点上没有安装上述必须的软件,你要先安装之。

例如在 Ubuntu Linux系统下:

$ sudo apt-get install ssh
  $ sudo apt-get install rsync

下载

从离你最近的apache镜像网站上下载一个最新的稳定版本: Apache Download Mirrors.

准备启动Hadoop集群


解压刚刚下载的Hadoop发行版。在Hadoop根目录下,编辑 etc/hadoop/hadoop-env.sh脚本,添加如下参数:

# 设置JAVA_HOME到你的JDK安装目录,建议安装最新版
  export JAVA_HOME=/usr/java/latest

执行如下命令:

$ bin/hadoop

该命令将显示hadoop脚本的使用文档。

现在你已经准备好启动以下三种 Hadoop 集群模式的一种了:

单节点操作

     默认情况下,Hadoop以非分布式方式运行,就是一个单独Java进程。这对调试非常有益。

    下面的例子是拷贝未打包的的conf目录作为输入,并找到和显示所有符合给定正则表达式的内容。输出内容写入给定的“output”目录。

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

伪分布式操作(单节点模拟分布式)

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-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#/usr/local/hadoop在此处是你的hadoop的真实目录
$ export HADOOP\_PREFIX=/usr/local/hadoop

执行

以下的说明是以本地方式执行一个MapReduce job。如果你想在YARN上执行一个Job请查看后续章节:单节点上的YARN。

  1. 格式化文件系统:

    $ bin/hdfs namenode -format
  2. 启动NameNode守护程序和DataNodde守护程序:

    启动注意:如果多次执行了格式化命令,在启动的时候可能起不来datanode或namenode节点。这时候需要先停止dfs(sbin/stopt-dfs.sh),然后删除/tmp/hadoop*(ubuntu系统)。重新执行格式化命令。

    $ sbin/start-dfs.sh

    Hadoop守护程序日志放在 $HADOOP_LOG_DIR 目录 (默认是 $HADOOP_HOME/logs)。

  3. 浏览NameNode的web管理界面; 默认的url是:

    • NameNode - http://localhost:50070/
  4. 创建必要的HDFS目录以执行MapReduce jobs:

     
          
    #在dfs文件系统里创建目录
    $ bin/hdfs dfs -mkdir /user
      $ bin/hdfs dfs -mkdir /user/<username>
  5. 将输入文件拷贝纸分布式文件系统:

    $ bin/hdfs dfs -put etc/hadoop input
  6. 执行提供的示例命令:

    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'
  7. 查看输出结果文件:将输出结果文件从分布式文件系统拷贝至本地文件系统并查看:

    $ bin/hdfs dfs -get output output
      $ cat output/*

    或者

    直接在分布式文件系统内查看输出结果文件:

    $ bin/hdfs dfs -cat output/*
  8. 做完以后, 可以用以下命令停止程序。

    $ sbin/stop-dfs.sh

单节点上的YARN

你可以通过设置几个参数就可以在单节点的YARN上执行一个 MapReduce job,此外还可以运行ResourceManager 和 NodeManager。

下面假设上文 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>
    </configuration>
  2. 启动 ResourceManager 和 NodeManager:

    $ sbin/start-yarn.sh
  3. 查看 ResourceManager 的 web 管界面,默认的url是:

    • ResourceManager - http://localhost:8088/
  4. 执行一个 MapReduce job。

  5. 做完以后,可以使用如下命令停止程序。

    $ sbin/stop-yarn.sh

Fully-Distributed Operation

For information on setting up fully-distributed, non-trivial clusters see Cluster Setup.



加载中
返回顶部
顶部