Hadoop单节点模式安装
官方教程:http://hadoop.apache.org/docs/r2.7.3/
本文基于:Ubuntu 16.04、Hadoop-2.7.3
一、概述
本文参考官方文档介绍Hadoop单节点模式(本地模式及伪分布式模式)安装(Setting up a Single Node Cluster)。
1、Hadoop安装的三种模式
(1)单机模式(standalone)
单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。
此程序一般不建议安装,网络上很少这方面资料。
(2)伪分布模式(Pseudo-Distributed Mode)
伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。
比如namenode,datanode,secondarynamenode,jobtracer,tasktracer这5个进程,都能在集群上看到。
(3)全分布模式(Fully Distributed Mode)
Hadoop守护进程运行在一个集群上。
意思是说master上看到namenode,jobtracer,secondarynamenode可以安装在master节点,也可以单独安装。slave节点能看到datanode和tasktracer
2、本文目的
本文介绍如何设置和配置本地模式及单节点伪分布式Hadoop安装,以便使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)快速执行简单操作。
3、平台支持
Hadoop支持GNU / Linux作为开发和生产平台。 Hadoop已经在具有2000个节点的GNU / Linux集群上演示。
Windows也是一个受支持的平台,但本文仅适用于Linux。
4、需要的其他软件(前提条件)
ssh
java
二、Hadoop下载与安装
下载:http://hadoop.apache.org/releases.html
先从官网下载响应的hadoop,然后解压:
- tar -zxvf hadoop-2.7.3.tar.gz
修改文件夹名字:
- mv hadoop-3.7.3 hadoop
配置环境变量,编辑profile文件:
- sudo gedit /etc/profile
然后在文件末尾追加如下内容:
- # hadoop
- export HADOOP_HOME=/usr/lib/java/hadoop
- export PATH=${HADOOP_HOME}/bin:$PATH
记得生效配置:
- source /etc/profile
查看是否安装成功:
- [email protected]:~$ hadoop version
- Hadoop2.7.3
- Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
- Compiledby root on 2016-08-18T01:41Z
- Compiledwith protoc 2.5.0
- From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
- This command was run using/usr/lib/java/hadoop/share/hadoop/common/hadoop-common-2.7.3.jar
三、集群前的准备工作
1、配置 hadoop/etc/hadoop/hadoop-env.sh文件
注释掉25行的#export JAVA_HOME=${JAVA_HOME},并在其后添加:
- export JAVA_HOME=/usr/lib/java/jdk1.8.0_111
现在可以输入命令测试,这里使用Hadoop/bin/hadoop:
- [email protected]:/$ /usr/lib/java/hadoop/bin/hadoop
这时会显示hadoop脚本的使用文档。
现在就可以以三种受支持的模式之一启动了:
① Local (Standalone) Mode:本地(独立)模式
② Pseudo-Distributed Mode:伪分布模式
③ Fully-Distributed Mode:全分布模式
四、本地模式的使用
默认情况下,Hadoop配置为作为单个Java进程在非分布式模式下运行。这对于调试非常有用。
以下示例复制解压缩的conf目录以用作输入,然后查找并显示给定正则表达式的每个匹配项,输出写入给定的输出目录:
- $ mkdir input
- $ cp etc/hadoop/*.xml input
- $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output ‘dfs[a-z.]+‘
- $ cat output/*
五、伪分布式的使用
Hadoop也可以在伪分布式模式下在单节点上运行,其中每个Hadoop守护程序在单独的Java进程中运行。
1、配置
各项配置如下所述:
(1)etc/hadoop/core-site.xml
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://localhost:9000</value>
- </property>
- </configuration>
(2)etc/hadoop/hdfs-site.xml
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- </configuration>
2、配置ssh免登录
首先检查ssh到本地是否需要密码:
- $ ssh localhost
如果执行需要密码,执行以下命令即可:
- $ ssh-keygen -t rsa -P ‘‘-f ~/.ssh/id_rsa
- $ cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
- $ chmod 0600~/.ssh/authorized_keys
3、运行
以下说明是在本地运行MapReduce。在YARN上执行一些操作将在后面部分介绍。
(1)格式化文件系统
- $ /usr/lib/java/hadoop/bin/hdfs namenode -format
(2)启动NameNode守护程序和DataNode守护程序
- $ /usr/lib/java/hadoop/sbin/start-dfs.sh
hadoop守护程序日志输出将写入$ HADOOP_LOG_DIR目录(默认为$ HADOOP_HOME / logs)
(3)浏览NameNode的Web界面
默认情况下地址为:
NameNode - http://localhost:50070/
(4)创建执行MapReduce作业所需的HDFS目录
- $ /usr/lib/java/hadoop/bin/hdfs dfs -mkdir /user
- $ /usr/lib/java/hadoop/bin/hdfs dfs -mkdir /user/<username>
(5)将输入文件复制到分布式文件系统中
- $ /usr/lib/java/hadoop/bin/hdfs dfs -put etc/hadoop input
(6)运行示例
- $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.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
4、单节点上的YARN配置
可以通过设置一些参数并运行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>
- </configuration>
(2)启动ResourceManager守护程序和NodeManager守护程序
- $ sbin/start-yarn.sh
(3)浏览ResourceManager的Web界面
默认情况下地址为:
ResourceManager - http://localhost:8088/
(4)运行MapReduce作业
(5)停止守护进程
- $ sbin/stop-yarn.sh
六、全分布式配置
该部分内容会独立一篇文章介绍,完成后此处会给出连接。
原文地址:https://www.cnblogs.com/RENQIWEI1995/p/8856088.html