1 - Hadoop搭建单个节点

Posted 大数据猿群

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1 - Hadoop搭建单个节点相关的知识,希望对你有一定的参考价值。

以下仅是译者,抽出闲暇时间进行翻译,由于本身能力有限,难免会有译错或者误解原作者意思。还请大家互相指正,互相学习。有兴趣可加译者微信:zmjdne  共同翻译Hadoop官网,一起遨游技术知识的海洋。

目的

这个文档描述了如何搭建和配置安装Hadoop,让你可以快速执行一些简单的操作来使用Hadoop MapReduce 和Hadoop的分布式文件系统。

预备知识

支持的平台

  • 作为开发和生产平台的GNU/Linux是完全被支持的,Hadoop曾经用2000个节 点来搭建过集群。

  • Windows 也是被支持的平台,但是下面的步骤仅适用于Linux。为了能够在Windows搭建Hadoop,请参看wiki page

所需软件

对于Linux的平台需要的软件包括如下:

  1. 必须安装Java,推荐的Java版本已经在HadoopJavaVersion中进行描述了。

  2. ssh 必须被安装和..此处未翻译..,此外,它也推荐pdsh最好被安装到ssh资源管理中去。

安装软件

如果你的集群当中没有所需的软件,你需要去安装它。  
在Ubuntu Linux 执行如下命令:

  • $ sudo apt-get install ssh

  • $ sudo apt-get install pdsh

下载

为了获得Hadoop distribution,从Apache Download Mirrors中下载一个最稳定的版本。

准备开始安装Hadoop集群

解压已下载的Hadoop distribution,在这个目录中,编辑文件etc/hadoop/hadoop-env.sh中的内容,定义如下一些参数:

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

尝试执行如下命令:

$bin/hadoop

这个将会显示Hadoop Script 的用例文档。  
现在你可以使用以下三种模式当中的一个启动Hadoop。

  • 本地(单节点)模式

  • 伪分布式模式

  • 完全分布式模式

单节点模式的操作

默认情况下,Hadoop是以没有分布式的模式运行的,就像是一个单进程java程序,进行debug调试是很有帮助的。
按照下面的案例,复制解压的conf目录中的文件到input目录 然后 筛选匹配出给定的正则表达式内容并输出到指定目录。

  $ mkdir input
 $ cp etc/hadoop/*.xml input
 $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.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>fs.defaultFS</name>
       <value>hdfs://localhost:9000</value>
   </property>
</configuration>

配置免密登录

使用 ssh  localhost,检查是否可以使用免密。

$ ssh localhost

如果你不能使用免密登录,执行如下命令:

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

Execution

以下的操作是运行一个本地的MapReduce job,如果你想要在YARN上执行job,请参看YARN on SIngle Node.

  1. 格式化文件系统:

$ bin/hdfs namenode -format
  1. 启动名称节点和数据节点进程

$ sbin/start-dfs.sh

Hadoop 进程日志的输出会写到$HADOOP_LOG_DIR目录中(默认是$HADOOP_HOME/logs)


  1. 创建HDFS目录,需要执行MapReduce jobs:

  $ bin/hdfs dfs -mkdir /user
 $ bin/hdfs dfs -mkdir /user/<username>


  1. 复制输入的文件到分布式文件系统

  $ bin/hdfs dfs -mkdir input
 $ bin/hdfs dfs -put etc/hadoop/*.xml input


  1. 运行如下提供的一些例子:

  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.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

你可以设置一些参数以使用伪分布式模式在YARN之上运行MapReduce job ,此外也可以运行资源管理器和节点管理器。

跟随下面的步骤并确认上述1~4的步骤已经操作并执行通过:

  1. 按如下进行参数配置:  
    etc/hadoop/mapred-site.xml:

<configuration>
   <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
</configuration>
<configuration>
   <property>
       <name>mapreduce.application.classpath</name>
       <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</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. 启动资源管理器进程和节点管理器进程

$ sbin/start-yarn.sh
  1. 运行一个MapReduce Job

  2. 当你完成以上所有步骤,可以运行如下命令来停止进程。

$ sbin/stop-yarn.sh

完全分布式模式

关于搭建完全分布式模式集群的更多信息,请参看Cluster Setup

↓↓↓ 点击"阅读原文" 【进入官网】  

以上是关于1 - Hadoop搭建单个节点的主要内容,如果未能解决你的问题,请参考以下文章

hadoop生态搭建(3节点)-17.sqoop配置_单节点

三节点Hadoop集群搭建

HDFS环境搭建(单节点配置)

搭建3节点hadoop集群

用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(下)-搭建Hadoop集群

Hadoop学习之路Hadoop集群搭建和简单应用