热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hdoop入门

一、背景1、起源MapReduce编程模型的思想来源于函数式编程语言Lisp,由Google公司于2004年提出并首先应用于大型集群。同时,Google

一、背景

1、起源

MapReduce编程模型的思想来源于函数式编程语言Lisp,由Google公司于2004年提出并首先应用于大型集群。同时,Google也发表了GFS、BigTable等底层系统以应用MapReduce模型。在2007年,Google’s MapReduce Programming Model-Revisted论文发表,进一步详细介绍了Google MapReduce模型以及Sazwall并行处理海量数据分析语言。Google公司以MapReduce作为基石,逐步发展成为全球互联网企业的领头羊。

2、项目起源和发展

Hadoop作为Apache基金会资助的开源项目,由Doug Cutting带领的团队进行开发,基于Lucene和Nutch等开源项目,实现了Google的GFS和Hadoop能够稳定运行在20个节点的集群;2006年1月,Doug Cutting加入雅虎公司,同年2月Apache Hadoop项目正式支持HDFS和MapReduce的独立开发。同时,新兴公司Cloudera为Hadoop提供了商业支持,帮助企业实现标准化安装,并志愿贡献社区。Hadoop的最新版本是0.21.0,说明其还在不断完善发展之中。

二、Hadoop基础原理

1、定义

Hadoop原来是Apache Lucene下的一个子项目,它最初是从Nutch项目中分离出来的专门负责分布式存储以及分布式运算的项目。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。

2、组成

Hadoop由分布式存储HDFS和分布式计算MapReduce两部分组成。HDFS是一个master/slave的结构,就通常的部署来说,在master上只运行一个Namenode,而在每一个slave上运行一个Datanode。MapReduce是Google的一项重要技术,它是一个编程模型,用以进行大数据量的计算。MapReduce的名字源于这个模型中的两项核心操作:Map和Reduce。Map是把一组数据一对一的映射为另外的一组数据,Reduce是对一组数据进行归约,映射和归约的规则都由一个函数指定。

三、国内外应用

1、国外应用

2008年2月,雅虎宣布搭建出世界上最大的基于Hadoop的集群系统—Yahoo! Search Webmap,另外还被广泛应用到雅虎的日志分析、广告计算、科研实验中;Amazon的搜索门户A9.com中的商品搜索的索引生成就是基于Hadoop完成的;互联网电台和音乐社区网站Last.fm使用Hadoop集群运行日志分析、A/B测试评价、AdHoc处理和图表生成等日常作业;著名SNS网站Facebook用Hadoop构建了整个网站的数据仓库,它目前有320多台机器进行网站的日志分析和数据挖掘。 UC Berkeley等著名高校也对Hadoop进行应用和研究,以提高其整体性能,包括Matei Zaharia等人改进了Hadoop的推测式执行技术并发表了Improving MapReduce Performance in Heterogeneous Environment;Tyson Condie等人改进了MapReduce体系,允许数据在操作之间用管道传送,开发了Hadoop Online Prototype(HOP)系统,并发表了MapReduce Online。

2、国内应用

2008年之后,国内应用和研究Hadoop的企业也越来越多,包括淘宝、百度、腾讯、网易、金山等。淘宝是国内最先使用Hadoop的公司之一;百度在Hadoop上进行广泛应用并对它进行改进和调整,同时赞助了HyperTable的开发。总之,互联网企业是Hadoop在国内的主要使用力量。同样的,很多科研院所也投入到Hadoop的应用和研究中,包括中科院、清华大学、浙江大学和华中科技大学等。

四、文档说明

1、来源

该文档在编写的过程中添加了hadoop自带的中文说明文档,同时也借鉴了网上一些朋友编写资料。主要目的就是将这里信息汇总,方便查阅和推广。

2、环境

该文档中涉及的例子我采用的都是Linux操作系统、Apache发布的Hadoop版本0.20.2、JDK使用的是1.6,Hive使用的是0.5、HBase使用的是0.20.5

Hadoop入门(二)——安装

一、安装准备

1、所需软件

hadoop 0.20.2地址:http://www.apache.org/dist/hadoop/core/hadoop-0.20.2/

JDK版本:jdk-6u26-linux-i586.rpm.bin (必须是1.6)

操作系统:CentOS

三台机器:10.2.33.151(master),10.2.33.152(slave),10.2.33.153(slave)

二、安装操作

1、软件安装

拷贝以上文件到Linux的“/opt/”目录下。

安装JDK,此步省略……。

解压hdaoop:tar -zxvf hadoop-0.20.2.tar.gz

配置151机器可以通过SSH直接访问152和153。

2、系统SSH配置

在151、152、153三台机器上分别执行以下操作:

ssh-keygen -t dsa

直接回车,完成后会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。这两个是成对出现,类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件):

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

注:若想多台机器登陆一台机器,则将3台机器的id_dsa.pub合并为1个authorized_keys,换行分割即可。

完成后可以实现无密码登录:

$ ssh root@IP

3、系统环境变量配置

JAVA_HOME=/usr/java/jdk1.6.0_26

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

HADOOP_HOME=/opt/hadoop-0.20.2

PATH=$JAVA_HOME/bin:$HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH

export PATH HADOOP_HOME CLASSPATH JAVA_HOME

最后记得source /etc/profile生效。

4、系统HOSTS配置

修改ect/hosts配置文件,内容如下:

127.0.0.1       localhost

10.2.33.151     test-01

10.2.33.152     test-02

10.2.33.153     test-03

注:以上hosts信息很重要,每台机器都要配置,test-01为服务器名

5、Hadoop配置

修改/opt/hadoop-0.20.2/conf/目录下的master文件,内容如下:

10.2.33.151

修改/opt/hadoop-0.20.2/conf/目录下的slaves文件,内容如下:

10.2.33.152

10.2.33.153

修改/opt/hadoop-0.20.2/conf/hadoop-env.sh文件的环境变量:

# The java implementation to use.  Required.

export JAVA_HOME=/usr/java/jdk1.6.0_26

拷贝/opt/hadoop-0.20.2/src/core/core-default.xml到/opt/hadoop-0.20.2/conf/core-site.xml,修改部分内容如下:

  hadoop.tmp.dir

  /hadoopdata

  fs.default.name

  hdfs://10.2.33.151:9000

拷贝/opt/hadoop-0.20.2/src/hdfs/hdfs-default.xml到/opt/hadoop-0.20.2/conf/hdfs-site.xml配置文件,内容不变。

拷贝/opt/hadoop-0.20.2/src/mapred/mapred-default.xml到/opt/hadoop-0.20.2/conf/mapred-site.xml配置文件,修改部分内容如下:

  mapred.job.tracker

  10.2.33.151:9001

将/opt/hadoop-0.20.2拷贝到10.2.33.152和10.2.33.153对应的目录下。将/ect/profile和/etc/hosts也拷贝到152和153机器上。注意profile需要做生效操作。建议打包拷贝或者scp拷贝。

四、初始配置

1、格式化HDFS文件系统

进入/opt/hadoop-0.20.2/bin目录。执行:

hadoop namenode –format

2、启动/停止hadoop

启动hadoop。执行:

/opt/hadoop-0.20.2/bin/start-all.sh

停止hadoop。执行:

/opt/hadoop-0.20.2/bin/stop-all.sh

3、查看hadoop信息

在/opt/hadoop-0.20.2/bin目录下,执行:

hadoop fs -ls /

如果控制台返回结果,表示初始化成功。可以向里面录入数据。

通过WEB查看hadoop

查看集群状态:http://10.2.33.151:50070dfshealth.jsp

查看JOB状态:http://10.2.33.151:50030/jobtracker.jsp

五、注意事项

1、hadoop的安装千万记得修改/etc/hosts文件,而且要把所有master和slaves的内容都配置进去,所有机器的host配置,在hadoop方面是一样的。

2、master和slaves这2个配置文件可以不拷贝到152和153机器上,只在master上保存即可,保险起见,还是都拷贝下吧。

3、通过web查看hadoop的时候,如果使用IE一些图形工具显示不出来,建议使用opera或是chrome。


转载于:https://www.cnblogs.com/zhishan/archive/2013/04/25/3041724.html


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • Java开发实战讲解!字节跳动三场技术面+HR面
    二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ... [详细]
  • 虚拟化_深度:资源虚拟化
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了深度:资源虚拟化相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Hadoop之Yarn
    目录1Hadoop1.x和Hadoop2.x架构区别2Yarn概述3Yarn基本架构4Yarn工作机制5作业提交全过程6资源调度器7任务的推测执行1Hadoop1.x和Hadoo ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 伸缩性|发生_分布式文件系统设计,该从哪些方面考虑?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了分布式文件系统设计,该从哪些方面考虑?相关的知识,希望对你有一定的参考价值。点击上方关注“ ... [详细]
  • 本文_大数据之非常详细Sqoop安装和基本操作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了大数据之非常详细Sqoop安装和基本操作相关的知识,希望对你有一定的参考价值。大数据大数据之 ... [详细]
author-avatar
左手抽烟吹寂寞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有