`

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_tutorial hadoop入门经典

    hadoop_tutorial hadoop入门经典 Hadoop 是一个能够对大量数据进行分布式处理的软件框架。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。...

    hadoop入门经典书籍

    hadoop的经验入门书籍,适合刚刚开始了解学习hadoop技术的人

    Hadoop入门实战手册

    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入门到精通

    Hadoop入门到精通(带目录)--很不错的HADOOP学习资料

    Hadoop入门教程

    Hadoop入门教程 Hadoop开发者 2010入门专刊 出品Hadoop技术论坛

    hadoop 入门

    hadoop入门,新手入门(InfoQ Hadoop基本流程与应用开发,InfoQ Hadoop中的集群配置和使用技巧,InfoQ 分布式计算开源框架Hadoop介绍)

    Hadoop入门手册

    Hadoop入门手册 chm格式的 很适合初学者.Hadoop入门手册.zip

    hadoop入门

    hadoop入门是初学者,这只是一个入门的教程,让你了解hadoop到底是什么。

    Hadoop入门实战手册 中文版)

    Hadoop入门实战手册,本手册是中文版,且较详细

    大数据技术之Hadoop(入门).doc

    hadoop入门技术,详细讲解大数据技术中的hadoop入门基础

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

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

    非常好的hadoop入门资料

    非常好的hadoop入门资料;非常好的hadoop入门资料;非常好的hadoop入门资料;非常好的hadoop入门资料;非常好的hadoop入门资料;非常好的hadoop入门资料;非常好的hadoop入门资料;非常好的hadoop入门资料;非常好的...

    Hadoop入门程序java源码

    Hadoop集群搭建好后,这是用于测试用的入门级java程序源码,也是我博文的一个补充,欢迎查看下载

    hadoop从入门到精通课件pdf

    hadoop从入门到精通课件pdf,手把手带你飞(yarn,hdfs,mapreduce)

    Hadoop权威指南(中文第3版)

    Hadoop权威指南(中文第3版) hadoop入门经典指南 Hadoop权威指南(中文第3版) hadoop入门经典指南 Hadoop权威指南(中文第3版) hadoop入门经典指南

    hadoop快速入门.doc

    hadoop快速入门.doc hadoop快速入门.doc hadoop快速入门.doc

    hadoop入门学习文档

    Hadoop入门常识, 包括Hadoop平台的搭建及环境变量的配置

Global site tag (gtag.js) - Google Analytics