`

Hadoop入门实验

阅读更多

一、实验目的

了解Hadoop MapeReduce 工作原理

 

二、实验内容

实现基于单机的伪分布式运行模拟

 

三、实验需要准备的软件和源

1 Jdk1.6 以上 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html

2 Cygwin        下载地址: http://www.cygwin.com/

3、稳定版 hadoop   下载地址: http://hadoop.apache.org/common/releases.html#Download

 

四、实验步骤

1、了解 Hadoop 工作机制

a Hadoop 整体框架运行机制介绍

请参见http://hi.baidu.com/wongxuelei/blog/item/c1642050cfb56d481138c2fd.html

b Hadoop MapReduce 部分执行流程

请参见http://www.blogjava.net/shenh062326/archive/2011/01/14/342959.html

c Hadoop 在线中文技术文档

请参见http://hadoop.apache.org/common/docs/r0.18.2/cn/

 

个人意见:

    a b 说的非常详细,刚入门可以大体了解 Hadoop HDFS MapeReduce 工作框架,等做完实验后再回过头来看这个会更清楚; c 上有实例的说明和代码。

 

2、安装 JDK 到本地机器

安装目录最好不要有空格(如果有在配置Hadoop JAVA_HOME 时有点麻烦,下面会具体介绍)

 

3、安装 Cygwin

请参见《Hadoop 开发者入门》第 11 页 —— > Windows 上安装 Hadoop 教程

 

个人意见:

    a、注意选择上面说的需在 Cygwin 中安装的包;

    b、上面说到的 http://www.cygwin.cn 好像链接不上了,目前内陆最快的是源有

http://mirrors.163.com/cygwin/   http://mirrors.sohu.com/cygwin/  会到30 k/s 左右,其他的速度一般只有 3 5 k/s

c、如果没装成功,最好运行 regedit.exe 进入注册表,删除 Cygwin 文件,目录所在位置如图 1

d、环境变量配置仅需把平时我们陪 JDK 的方法配好, Cygwin 仅需把 bin 所在目录加入, usr 下的不用配;

e、安装好 sshd 后,该服务可以在装好的 Cygwin 中输入 net start sshd 命令启动。

 

 

 

 

4、安装 Hadoop

a、下载 Hadoop 的稳定版本,我选择的是 hadoop-0.18.3.tar.gz (最新版本不太好用),然后解压到任意盘下;

b、配置 Hadoop 用于在单机环境上运行的配置文件在最后, 来源http://hi.baidu.com/shirdrn/blog/item/33c762fecf9811375c600892.html

 

注意事项:

    a、在配置完 JAVA_HOME 后,如果路径有空格,运行 $ bin/hadoop namenode -format命令也可能会出错,最好的办法是将Windows 下的 JDK 映射到 Cygwin 中,命令如下:

LN  -s  /cygdrive/c/Program\ Files/Java/<jre name>  /usr/local/<jre name>

其中

/cygdrive/c/Program\ Files/Java/<jre name>表示在Windows 中的 JDK 路径,

/usr/local/<jre name>表示你想映射到的Cygwin 路径。

然后在把JAVA_HOME 配置成  export  JAVA_HOME="/usr/local/<jre name>"

 

        b、运行“  $ bin/hadoop dfs -put ./input input”命令时可能会出现让你把hadoop-site.xml中的“ localhost:9000”改成“  hdfs:\\localhost:9000”的问题。未解决,据网上了解说是因为单机运行的问题。

 

 

 

来源http://hi.baidu.com/shirdrn/blog/item/33c762fecf9811375c600892.html

首先进行Hadoop 配置:

1 conf/hadoop-env.sh 文件中最基本需要指定 JAVA_HOME ,例如我的如下:

export JAVA_HOME="D:\Program Files\Java\jdk1.6.0_07"



如果路径中存在空格,需要使用双引号。

2、只需要修改 conf/hadoop-site.xml 文件即可,默认情况下, hadoop-site.xml 并没有被配置,如果是基于单机运行,就会按照 hadoop-default.xml 中的基本配置选项执行任务。

hadoop-site.xml 文件修改为如下所示:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
    <name>fs.default.name</name>
    <value>localhost:9000</value>
</property>
<property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
</configuration>



实现过程

1、认证配置

启动cygwin ,同时使用下面的命令启动 ssh

$ net start sshd

 

接着,需要对身份加密认证这一部分进行配置,这也是非常关键的,因为基于分布式的多个Datanode 结点需要向 Namenode 提供任务执行报告信息,如果每次访问 Namenode 结点都需要密码验证的话就麻烦了,当然我要说的就是基于无密码认证的方式的配置,可以参考我的其他文章。

生成RSA 公钥的命令如下:

$ ssh-keygen

 

上面执行到如下步骤时需要进行设置:

Enter file in which to save the key (/home/SHIYANJUN/.ssh/id_rsa):



直接按回车键即可,按照默认的选项将生成的RSA 公钥保存在 /home/SHIYANJUN/.ssh/id_rsa 文件中,以便结点之间进行通讯认证。

继续执行,又会提示进行输入选择密码短语passphrase ,在如下这里:

Enter passphrase (empty for no passphrase):



直接按回车键,而且一定要这么做,因为空密码短语就会在后面执行过程中免去结点之间通讯进行的认证,直接通过RSA 公钥 ( 事实上,我们使用的是 DSA 认证,当然 RSA 也可以进行认证,继续看后面 ) 认证。

RSA公钥主要是对结点之间的通讯信息加密的。如果 RSA 公钥生成过程如上图,说明正确生成了 RSA 公钥。

接着生成DSA 公钥,使用如下命令:

$ ssh-keygen -t dsa

然后,需要将DSA 公钥加入到公钥授权文件 authorized_keys 中,使用如下命令:

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

到此,就可以进行Hadoop 的运行工作了。

2 Hadoop 处理的数据文件准备

我使用的是hadoop-0.16.4 版本,直接拷贝到 G:\ 根目录下面,同时,我的 cygwin 直接安装在 G:\Cygwin 里面。

在目录G:\hadoop-0.16.4 中创建一个 input 目录,里面准备几个 TXT 文件,我准备了 7 个,文件中内容就是使用空格分隔的多个英文单词,因为是运行 WordCount 这个例子,后面可以看到我存入了多少内容。

3、运行过程

下面,切换到G:\hadoop-0.16.4 目录下面

$ cd http://www.cnblogs.com/cygdrive/g/hadoop-0.16.4



其中通过cygdrive( 位于 Cygwin 根目录中 ) 可以直接映射到 Windows 下的各个逻辑磁盘分区中。

在执行任务中,使用HDFS ,即 Hadoop 的分布式文件系统,因此这时要做的就是格式化这个文件系统,使用下面命令可以完成:

$ bin/hadoop namenode -format

 

此时,应该启动Namenode Datanode SecondaryNamenode JobTracer ,使用这个命令启动:

$ bin/start-all.sh

如果你没有配置前面ssh 的无密码认证,或者配置了但是输入了密码短语,那么到这里就会每启动一个进程就提示输入密码,试想,如果有 N 多进程的话,那岂不是要命了。

然后,需要把上面我们在本地的input 目录中准备的文件复制到 HDFS 中的 input 目录中,以便在分布式文件系统管理这些待处理的数据文件,使用下面命令:

$ bin/hadoop dfs -put ./input input



执行上述命令如果没有信息输出就复制成功。

现在,才可以执行Hadoop 自带的 WordCount 列子了,使用下面命令开始提交任务,进入运行:

$ bin/hadoop jar hadoop-0.16.4-examples.jar wordcount input output



最后面两个参数分别为数据输入目录和数据处理完成后的输出目录,这里,不能在你的G:\hadoop-0.16.4 目录中存在 output 这个目录,否则会报错的。

 

最后查看执行任务后,处理数据的结果,使用的命令行如下所示:

$ bin/hadoop dfs -cat output/part-00000

最后,停止Hadoop 进程,使用如下命令:

$ bin/stop-all.sh

以上就是全部的过程了。

 

更多信息请查看 java进阶网 http://www.javady.com

分享到:
评论

相关推荐

    Linux运维入门Hadoop实验参照手册二(安装Hadoop)

    Linux运维入门Hadoop实验参照手册二(安装Hadoop)

    分布式计算开源框架Hadoop入门实践.pdf

    【分布式计算开源框架Hadoop入门实践】 Hadoop是Apache开源组织开发的一款分布式计算框架,它在业界得到了广泛应用,尤其在大型互联网公司如亚马逊、Facebook和Yahoo等中扮演着重要角色。Hadoop的核心设计理念是...

    Linux运维入门Hadoop实验参照手册一(安装VMware与CentOS)

    2. 安装Hadoop:将Hadoop安装到CentOS系统中,包括下载Hadoop软件包、配置Hadoop环境变量、设置HDFS和MapReduce等核心组件。 3. 运行Hadoop:启动Hadoop集群,并运行一些基本的Hadoop命令来验证安装是否成功,如...

    Hadoop大数据管理实验详细参考文档

    在本套“Hadoop大数据管理实验详细参考文档”中,我们涵盖了从初识Hadoop到进行实际操作的全过程,旨在帮助新手快速入门大数据处理的世界。Hadoop是一个开源框架,主要用于处理和存储海量数据,它的核心组件包括HDFS...

    8.Hadoop入门进阶课程_第8周_Hive介绍和安装部署.pdf

    根据提供的文件信息,以下是有关Hadoop入门进阶课程中Hive介绍和安装部署的知识点: 1. Hive介绍: - Hive是Facebook开发的数据仓库工具,运行于Hadoop集群之上。 - 提供类SQL的HQL(Hive Query Language)查询...

    实验2-在Hadoop平台上部署WordCount程序1

    【描述】:本实验旨在让学生掌握如何在Hadoop平台上部署并运行WordCount程序,这是Hadoop入门的经典案例,旨在统计文本中的单词出现次数。通过实践,学生将了解Hadoop分布式文件系统(HDFS)的工作原理以及MapReduce...

    Hadoop单机伪分布完全分布实验文档

    单机伪分布模式是Hadoop初学者入门的常见方式,它模拟了分布式环境,但所有进程都在同一台机器上运行。这种模式下,Hadoop的各个组件如NameNode、DataNode、JobTracker和TaskTracker等都在一个Java进程中运行,方便...

    Hadoop学习总结

    **Map-Reduce入门** Map-Reduce是Hadoop的另一核心组件,用于大规模数据集的并行计算。它分为两个主要阶段:Map阶段和Reduce阶段。 1. **Map阶段**:在这个阶段,输入数据被分割成多个小片(split),然后分配给...

    4.Hadoop入门进阶课程_第4周_HDFS原理及操作.pdf

    Hadoop是一个流行的开源框架,允许分布在商业硬件上的分布式存储和计算。Hadoop的核心部分是HDFS(Hadoop ...此外,通过Hadoop入门进阶课程的实践,可以更深入地理解和掌握HDFS的操作以及Hadoop整个生态系统的应用。

    hadoop 入门

    ### Hadoop入门知识点详解 #### 一、Hadoop概述与目标 **Hadoop**是一种能够处理海量数据的大规模分布式计算框架。本课程旨在使学员掌握Hadoop的基本安装配置与管理,能够熟练地在Hadoop环境中处理数据,并具备...

    实验2-在Hadoop平台上部署WordCount程序-孙淼1

    7. **WordCount程序**:这是Hadoop的入门示例,用于统计文本文件中单词的出现次数。程序包括Mapper和Reducer两个阶段,使用Java编写。Mapper将输入文本分割成单词,Reducer则计算每个单词的总数并写入输出文件。 8....

    Hadoop1.0&2.0快速入门

    Hadoop的快速入门需要掌握其架构和运行原理。对于初学者来说,理解HDFS、MapReduce、YARN等核心组件的工作方式是关键。此外,了解如何在集群上部署和配置Hadoop,以及如何运行基本的MapReduce作业也是必要的。通过...

    6.Hadoop入门进阶课程_第6周_MapReduce应用案例.pdf

    该系列课程由实验楼整理编写,提供了学习Hadoop的新方式,即可以边看博客边上机实验。课程地址为***。需要注意的是,该系列课程所使用的安装包、测试数据和代码都可以在百度网盘下载,具体下载地址为***。 综上所述...

    实验2-Hadoop安装与HDFS基础实践.nbn.zip

    在本实验中,我们将深入探讨Hadoop的安装过程及其核心组件HDFS...总之,Hadoop的安装和HDFS基础实践是大数据技术入门的关键步骤。通过这次实验,你将掌握Hadoop的基本操作,为后续的大数据处理和分析打下坚实基础。

    hadoop 运行成功代码(wordcount)

    WordCount是Hadoop入门的经典示例,用于统计文本中单词出现的次数。本项目将详细介绍如何在Hadoop环境中成功运行WordCount程序,以及涉及到的相关知识点。 首先,`Hadoop`是一个基于Java的框架,设计用来处理和存储...

    Hadoop应用开发-实验指导书.doc

    主要分为以下几个部分:Hadoop环境准备与本地模式、Hadoop伪分布式集群模式、Hadoop完全分布式集群模式、HDFS Shell命令以及MapReduce入门案例wordcount。 ### Hadoop环境准备及本地模式 #### 实验目的 - 掌握...

Global site tag (gtag.js) - Google Analytics