目的
本文档介绍如何设置和配置单节点Hadoop安装,以便您可以使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)快速执行简单的操作。
先决条件
支持的平台
支持GNU / Linux作为开发和生产平台。已经在具有2000个节点的GNU / Linux群集上演示了Hadoop。
Windows也是一个支持的平台,但以下步骤仅适用于Linux。要在Windows上设置Hadoop,请参阅Wiki页面。
所需的软件
所需的Linux软件包括:
Java™必须安装。推荐的Java版本Hadoop推荐使用的java版本介绍在中描述。
必须安装ssh,并且必须运行sshd以使用管理远程Hadoop守护进程的Hadoop脚本。
下载
要获得Hadoop发行版,请从其中一个Apache下载镜像下载最新的稳定版本。
准备启动Hadoop集群
解压下载的Hadoop发行版。在发行版中,编辑文件etc / hadoop / hadoop-env.sh来定义一些参数,如下所示:
#设置为Java安装的根目录 导出JAVA_HOME = / usr / java / latest
尝试以下命令:
$ bin / hadoop
这将显示hadoop脚本的使用文档。
现在您已经准备好以三种支持模式之一启动Hadoop集群:
独立操作
默认情况下,Hadoop被配置为以非分布模式运行,作为单个Java进程。这对调试很有用。
以下示例将解压缩的conf目录复制为输入,然后查找并显示给定正则表达式的每个匹配项。输出写入给定的输出目录。
$ mkdir输入 $ cp etc / hadoop / *。xml输入 $ bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-2.9.0.jar grep input output'dfs [az。] +' $ cat输出/ *
伪分布式操作
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>
设置passphraseless 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 。
格式化文件系统:
$ bin / hdfs namenode -format
启动NameNode守护进程和DataNode守护进程:
$ sbin / start-dfs.sh
hadoop守护进程日志输出被写入$ HADOOP_LOG_DIR目录(默认为$ HADOOP_HOME / logs)。
浏览NameNode的Web界面; 默认情况下它可用于:
- NameNode - http:// localhost:50070 /
制作执行MapReduce作业所需的HDFS目录:
$ bin / hdfs dfs -mkdir / user $ bin / hdfs dfs -mkdir / user / <username>
将输入文件复制到分布式文件系统中:
$ bin / hdfs dfs -put etc / hadoop input
运行一些提供的例子:
$ bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-2.9.0.jar grep input output'dfs [az。] +'
检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们:
$ bin/hdfs dfs -get output output $ cat output/*
要么
查看分布式文件系统上的输出文件:
$ bin / hdfs dfs -cat output / *
当你完成后,停止守护进程:
$ sbin / stop-dfs.sh
YARN在单个节点上
您可以通过设置几个参数并运行ResourceManager守护进程和NodeManager守护进程,以伪分布模式在YARN上运行MapReduce作业。
以下说明假设已经执行了上述指令的 1〜4个步骤。
配置参数如下:etc / hadoop / mapred-site.xml:
<结构> <属性> <名称> mapreduce.framework.name </名称> <值>纱</值> </属性> </配置>
etc / hadoop / yarn-site.xml:
<结构> <属性> <名称> yarn.nodemanager.aux服务</名称> <值> mapreduce_shuffle </值> </属性> </配置>
启动ResourceManager守护进程和NodeManager守护进程:
$ sbin / start-yarn.sh
浏览ResourceManager的Web界面; 默认情况下它可用于:
- ResourceManager - http:// localhost:8088 /
运行MapReduce作业。
当你完成后,停止守护进程:
$ sbin / stop-yarn.sh