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的平台需要的软件包括如下:
必须安装Java,推荐的Java版本已经在HadoopJavaVersion中进行描述了。
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.
格式化文件系统:
$ bin/hdfs namenode -format
启动名称节点和数据节点进程
$ sbin/start-dfs.sh
Hadoop 进程日志的输出会写到$HADOOP_LOG_DIR目录中(默认是$HADOOP_HOME/logs)
创建HDFS目录,需要执行MapReduce jobs:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
复制输入的文件到分布式文件系统
$ bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input
运行如下提供的一些例子:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar grep input output 'dfs[a-z.]+'
查看输出文件:从分布式文件系统中复制输出文件到本地的文件系统中并查看它们:
$ bin/hdfs dfs -get output output
$ cat output/*
或者在分布式文件系统中直接查阅它们:
$ bin/hdfs dfs -cat output/*
当你所有都做完了,你可以使用如下命令来结束进程:
$ sbin/stop-dfs.sh
单节点的YARN
你可以设置一些参数以使用伪分布式模式在YARN之上运行MapReduce job ,此外也可以运行资源管理器和节点管理器。
跟随下面的步骤并确认上述1~4的步骤已经操作并执行通过:
按如下进行参数配置:
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>
启动资源管理器进程和节点管理器进程
$ sbin/start-yarn.sh
运行一个MapReduce Job
当你完成以上所有步骤,可以运行如下命令来停止进程。
$ sbin/stop-yarn.sh
完全分布式模式
关于搭建完全分布式模式集群的更多信息,请参看Cluster Setup
↓↓↓ 点击"阅读原文" 【进入官网】
以上是关于1 - Hadoop搭建单个节点的主要内容,如果未能解决你的问题,请参考以下文章
hadoop生态搭建(3节点)-17.sqoop配置_单节点