Hadoop学习01_Single Node Setup

陌路散爱 提交于 2019-12-01 11:33:31

目的

本文的目的主要是为了说明如何单点配置hadoop,从而能使用单个节点进行Hadoop MapReduce 和Hadoop Distributed File System (HDFS)运算。

先决条件

平台支持

  • GNU/Linux 作为开发和生产环境. Hadoop 已经在 GNU/Linux 上验证了 2000 个节点的集群.
  • Win32  也可以作为开发环境. 分布式操作不能再 Win32上进行很好的测试, 所以不能作为生产环境。

必要的软件

无论在Linux 还是在 Windows都需要如下软件:

  1. JavaTM 1.6.x, 最好使用Sun的,一定要安装.
  2. ssh 一定要安装并且 sshd 一定要处于运行状态,从而使Hadoop scripts可以管理远程Hadoop实例(Hadoop daemons).

另外 Windows 环境还需要安装如下软件:

  1. Cygwin - 为以上安装的软件提供shell脚本支持.

安装软件

如果你的集群没有安装必要的软件,请安装他们.

Ubuntu Linux 的一个例子:

$ sudo apt-get install ssh
$ sudo apt-get install rsync
在 Windows上, 如果在你安装cygwin的时候你没有安装必要的软件, 开启cygwin安装软件选择如下文件夹:


  • openssh - the Net category

下载

从这里下载一个稳定版本 stable release .

准备开始配置Hadoop

解压下载的Hadoop distribution文件. 编辑 conf/hadoop-env.sh 定义 JAVA_HOME 到你的安装目录.

尝试使用如下命令:

$ bin/hadoop
将展示出对于使用 hadoop script 有用的文档信息.


现在你可以开始以下三种中的一种你的开启你的 Hadoop cluster :

  • 单机模式(Local (Standalone) Mode)
  • 伪分布式模式(Pseudo-Distributed Mode)
  • 全分布式模式(Fully-Distributed Mode)

单机模式操作

在默认情况下会以非分布式模式(non-distributed mode)作为一个Java进程运行.这样做的好处是有利于调试..

The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.

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

伪分布式模式操作

Hadoop也可以运行一个单点,每个Hadoop 实例(daemon) 以一个独立的Java进程运行,从而使Hadoop以伪分布式模式运行。

配置如下

使用如下配置:

conf/core-site.xml:

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


conf/hdfs-site.xml:

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


conf/mapred-site.xml:

<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>

设置无密码 ssh

检查您可以通过 ssh登录 localhost 不适用密码:

$ ssh localhost


If you cannot ssh to localhost without a passphrase, execute the following commands:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


运行

格式化一个分布式文件系统:

$ bin/hadoop namenode -format
运行hadoop daemons:
$ bin/start-all.sh


hadoop daemon 把日志输出在 ${HADOOP_LOG_DIR} 指定的目录下 (默认在 ${HADOOP_HOME}/logs).

浏览NameNode和JobTracker的web接口,默认情况下在:

拷贝文件到分布式系统:

$ bin/hadoop fs -put conf input


运行提供的例子:

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'


检查输出的文件:

拷贝输出的文件到本地文件系统,并且检查他们:

$ bin/hadoop fs -get output output
$ cat output/*
或者,你也可以这么做,

浏览分布式系统上输出的文件:

$ bin/hadoop fs -cat output/*
当你完成工作之后,使用如下命令停止daemons:
$ bin/stop-all.sh
以上是本人个人为了学习hadoop,对官方的文档的翻译,如有差错,请大家指正!谢谢。

官网该篇的地址是:http://hadoop.apache.org/docs/stable/single_node_setup.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!