`

Hadoop入门经典

阅读更多

 

    Hadoop你是否了解,还有它是如何运行的呢,本文向大家介绍Hadoop入门的内容,希望通过本文的介绍大家能够轻松掌握Hadoop的一些基础知识。

本节接着上节继续向大家介绍一下Hadoop入门方面的知识,主要内容有如何运行Hadoop程序和它的效率问题,欢迎大家一起来学习Hadoop入门,首先我们先看一下Hadoop的概念。

Hadoop简介

Hadoop一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。
简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。
Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。HDFS有着高容错性(fault- tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(highthroughput)来访问应用程序的 数据,适合那些有着超大数据集(largedataset)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样 可以流的形式访问(streamingaccess)文件系统中的数据。

一、运行Hadoop程序
Hadoop入门首先看一下如何运行Hadoop程序。Hadoop这方面的文档写得不全面,综合参考GettingStartedWithHadoop与NutchHadoopTutorial两篇后,再碰了很多钉子才终于完整的跑起来了,记录如下:

1.1local运行模式

完全不进行任何分布式计算,不动用任何namenode,datanode的做法,适合一开始做调试代码。
解压hadoop,其中conf目录是配置目录,hadoop的配置文件在hadoop-default.xml,如果要修改配置,不是直接修改该文件,而是修改hadoop-site.xml,将该属性在hadoop-site.xml里重新赋值。
hadoop-default.xml的默认配置已经是local运行,不用任何修改,配置目录里唯一必须修改的是hadoop-env.sh里JAVA_HOME的位置。
将编译好的HadoopGrep与RegMapper.class放入hadoop/build/classes/demo/hadoop/目录找一个比 较大的log文件放入一个目录,然后运行hadoop/bin/hadoopdemo.hadoop.HadoopGreplog文件所在目录任意的输出 目录grep的字符串。查看输出目录的结果,查看hadoop/logs/里的运行日志。在重新运行前,先删掉输出目录。我们看一下Hadoop入门中运 行Hadoop程序的第二种模式。


1.2单机集群运行模式

现在来搞一下只有单机的集群.假设以完成3.1中的设置,本机名为hadoopserver

第1步.然后修改hadoop-site.xml,加入如下内容: 

  1. <property> 
  2. <name>fs.default.name</name> 
  3. <value>hadoopserver:9000</value> 
  4. </property> 
  5. <property> 
  6. <name>mapred.job.tracker</name> 
  7. <value>hadoopserver:9001</value> 
  8. </property> 
  9. <property> 
  10. <name>dfs.replication</name> 
  11. <value>1</value> 
  12. </property> 

从此就将运行从local文件系统转向了hadoop的hdfs系统,mapreduce的jobtracker也从local的进程内操作变成了分布式的任务系统,9000,9001两个端口号是随便选择的两个空余端口号。
另外,如果你的/tmp目录不够大,可能还要修改hadoop.tmp.dir属性。

第2步.增加ssh不输入密码即可登陆。
因为Hadoop需要不用输入密码的ssh来进行调度,在不su的状态下,在自己的home目录运行ssh-keygen-trsa,然后一路回车生成密钥,再进入.ssh目录,cpid_rsa.pubauthorized_keys
详细可以man一下ssh,此时执行sshhadoopserver,不需要输入任何密码就能进入了。

3.格式化namenode,执行
bin/hadoopnamenode-format

4.启动Hadoop
执行hadoop/bin/start-all.sh,在本机启动namenode,datanode,jobtracker,tasktracker

5.现在将待查找的log文件放入hdfs,。
执行hadoop/bin/hadoopdfs可以看到它所支持的文件操作指令。
执行hadoop/bin/hadoopdfsputlog文件所在目录in,则log文件目录已放入hdfs的/user/user-name/in目录中

6.现在来执行Grep操作
hadoop/bin/hadoopdemo.hadoop.HadoopGrepinout
查看hadoop/logs/里的运行日志,重新执行前。运行hadoop/bin/hadoopdfsrmrout删除out目录。

7.运行hadoop/bin/stop-all.sh结束。单机集群运行模式介绍完毕,我们看一下Hadoop入门中运行Hadoop程序的第三种集群运行模式。

1.3集群运行模式
假设已执行完3.2的配置,假设第2台机器名是hadoopserver2

1.创建与hadoopserver同样的执行用户,将hadoop解压到相同的目录。

2.同样的修改haoop-env.sh中的JAVA_HOME及修改与3.2同样的hadoop-site.xml

3.将hadoopserver中的/home/username/.ssh/authorized_keys复制到hadoopserver2,保证hadoopserver可以无需密码登陆hadoopserver2
scp/home/username/.ssh/authorized_keysusername@hadoopserver2:/home/username/.ssh/authorized_keys

4.修改hadoop-server的hadoop/conf/slaves文件,增加集群的节点,将localhost改为
hadoop-server
hadoop-server2

5.在hadoop-server执行hadoop/bin/start-all.sh
将会在hadoop-server启动namenode,datanode,jobtracker,tasktracker
在hadoop-server2启动datanode和tasktracker

6.现在来执行Grep操作
hadoop/bin/hadoopdemo.hadoop.HadoopGrepinout
重新执行前,运行hadoop/bin/hadoopdfsrmrout删除out目录

7.运行hadoop/bin/stop-all.sh结束。


二、效率
经测试,Hadoop并不是万用灵丹,很取决于文件的大小和数量,处理的复杂度以及群集机器的数量,相连的带宽,当以上四者并不大时,hadoop优势并不明显。
比如,不用hadoop用java写的简单grep函数处理100M的log文件只要4秒,用了hadooplocal的方式运行是14秒,用了 hadoop单机集群的方式是30秒,用双机集群10M网口的话更慢,慢到不好意思说出来的地步。本节关于Hadoop入门方面的内容就介绍到这里。

 

  1. Hadoop起源及其四大特性详解
  2. Hadoop开源已经实现
  3. Hadoop集群与Hadoop性能优化
  4. Hadoop 从Yahoo向Google的技术转折
  5. Yahoo公布Hadoop的源代码

from: http://developer.51cto.com/art/201006/203554.htm

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

分享到:
评论

相关推荐

    hadoop入门经典书籍

    Hadoop是一个广泛使用的分布式数据处理框架,特别适合于处理大规模数据集。它最初是作为搜索引擎的核心数据缩减功能,但由于其架构设计为...而《Hadoop入门经典书籍》这类资料,对于新手来说,是非常有价值的入门参考。

    Hadoop入门手册.chm

    Hadoop入门手册 简单入门Hadoop入门手册 简单入门Hadoop入门手册 简单入门Hadoop入门手册 简单入门

    hadoop入门书籍1

    hadoop的入门书籍,本人认为一共有以下五本书比较好: 1.云计算资料大全(了解云计算者必读).pdf 2.Hadoop开发者入门专刊 3.Hadoop权威指南%28第2版%29中文版 4.hadoop实战中文版+电子版pdf 5.精通HADOOP 由于上传...

    hadoop入门教程.pdf

    【Hadoop入门教程】 Hadoop是一个开源的分布式计算框架,主要设计用于处理和存储大量数据。这个教程将指导你如何在Ubuntu 12.04操作系统上安装和配置Hadoop 1.0.4,这对于初学者来说是一个很好的起点。 **1. 安装...

    Hadoop入门到精通

    "Hadoop入门到精通"的学习资料旨在帮助初学者掌握这一强大的框架,并逐步晋升为专家。以下是对Hadoop及其相关概念的详细解读。 一、Hadoop概述 Hadoop是由Apache基金会开发的一个开源框架,主要用于处理和存储大...

    Hadoop入门程序java源码

    这个“Hadoop入门程序java源码”是为初学者准备的,目的是帮助他们快速掌握如何在Hadoop环境中编写和运行Java程序。Hadoop的主要组件包括HDFS(Hadoop分布式文件系统)和MapReduce,这两个部分将在下面详细介绍。 ...

    Hadoop入门教程

    本教程《Hadoop入门教程》旨在为初学者提供全面且深入的指导,帮助他们快速理解并掌握Hadoop的基本概念、架构及应用。教程由Hadoop技术论坛在2010年出版,为当时的开发者提供了宝贵的资源。 一、Hadoop简介 Hadoop...

    Hadoop入门实战手册 中文版)

    《Hadoop入门实战手册》是一本专为初学者设计的中文版指南,旨在帮助读者快速掌握Hadoop这一分布式计算框架的基础知识和实际操作技巧。Hadoop是Apache软件基金会的一个开源项目,它为海量数据处理提供了可靠的分布式...

    Hadoop入门手册

    【Hadoop入门手册】是一本专为初学者设计的指南,旨在帮助读者快速掌握Hadoop这一分布式计算框架的基础知识和核心概念。Hadoop是Apache软件基金会的一个开源项目,它的出现解决了大数据处理中的诸多挑战,包括数据...

    hadoop 入门

    【Hadoop 入门】 Hadoop 是一个由Apache基金会开发的开源分布式计算框架,它以其高效、可扩展和容错性著称,是大数据处理领域的重要工具。本篇将从Hadoop的基本流程、应用开发以及集群配置和使用技巧三个方面进行...

    hadoop从入门到精通课件pdf

    《Hadoop从入门到精通》课程的PDF课件是一份全面了解和掌握Hadoop技术体系的宝贵资源。这个课程涵盖了从Hadoop的基础概念到高级应用的方方面面,旨在帮助学习者逐步提升对Hadoop的理解和实战能力。以下是根据提供的...

    hadoop入门

    总之,Hadoop入门教程为初学者提供了对Hadoop核心概念的理解,帮助他们掌握如何安装和使用Hadoop进行数据存储与处理,并理解Hadoop的设计思想和体系架构。通过学习Hadoop,初学者可以入门到大数据处理的广阔天地中,...

    hadoop入门学习 天气数据 2002年整年数据

    hadoop入门学习 mapreduce求解 天气数据 2002年整年数据的最高气温

    hadoop入门教程.docx

    【Hadoop入门教程】 本文将带你逐步了解如何在Ubuntu虚拟机中安装配置Hadoop,并使用Eclipse进行Hadoop程序开发。教程适用于初学者,旨在帮助你快速掌握Hadoop的基础知识。 1. **JDK安装与配置** 在开始Hadoop的...

    Hadoop入门学习文档

    ### Hadoop入门学习文档知识点梳理 #### 一、大数据概论 ##### 1.1 大数据概念 - **定义**:大数据是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。 - **特点**: - **Volume(大量)...

    hadoop入门例子wordcount

    hadoop入门例子wordcount

Global site tag (gtag.js) - Google Analytics