Hadoop学习笔记-Hadoop初识

2019-03-28 13:19|来源: 网络

序言:

其实Hadoop本人早就想进行一下系统的了解,一直被自己的懒惰给无限的推迟。最终还是鼓起勇气将自己放入到其中。本人了解的Hadoop的所有内容均来自于《Hadoop权威指南》,只是想通过这种方式来记录自己的学习历程,以方便以后的温习。文中的一些观点纯属我个人的看法,并不一定具有参考意见。

数据时代

信息化发展到当今,互联网的数据量是不断地增加,那么如何很好的处理以及利用这些数据可能是未来的一个发展方向,这也之所以产生了各种平台的云计算。对于互联网而言,大数据量可分为两种:第一、大访问量请求;第二、大数据量处理。大访问量请求这个事应用端应该思考的问题,如何很好的处理大的访问量,如何实现应用端的负载均衡这个不是我这里讨论的话题。大访问量将会带来大数据量的处理,因为用户的请求一般都会带来后端的处理,于是给以用户的响应,那么后端的处理比较牵扯到数据的处理。对于一个大访问量的系统,那么它的数据量必定会是庞大的,那么如何很好的处理这些庞大的数据,Hadoop是其中一种处理方式,也是当前比较流行的处理方式。故而趁工作之余学习一下Hadoop,从而丰富一下解决问题的方法。

Hadoop基本概念

Hadoop的核心模块是MapReduce以及HDFS(Hadoop Filesystem)。随着Hadoop的发展也出现了其他的一些模块例如:Pig、Hive以及HBase等等,通过这些模块达到丰富了Hadoop的生态圈。

MapReduce就是对数据分析处理的一个过程,它基于键值对的方式来分析处理数据,从而达到数据的分块处理,而HDFS是一个分布式文件系统。通过这两个模块就可以完成对数据的分析以及存储。MapReduce对数据的处理分为两个部分,一个是Map方法所处理的过程,这里主要是对数据进行键/值处理,需要确定数据的哪些属性为键,哪些属性为值,所以这里的键/值对数据并没有要求,而是开发人员自己挑选,顾从这里可以看出Hadoop对待处理数据的结构没有限制。那么另一个是Reduce方法,这里就是收集Map分类好的数据,进行分析然后进行处理。那么这两个方法的调用全部都丢给Hadoop的一个Job任务来执行。这就是Hadoop处理数据的一个基本过程。

Hadoop和传统的关系型数据库区别

Hadoop从存储的数据类型是非结构化或者是半结构化的存储,而关系型数据库是存储结构化的数据。下面一张表描述了它们两者间的区别:

从该表中可以看出Hadoop适合做一次写入多次读取的数据处理,并不适合实时更新的数据,通过这张表就可以很好地定位hadoop在开发中所处理的问题。

本文只是对Hadoop的一个基本认识,并没有太多关于Hadoop的内部信息或者如果实现以及搭建Hadoop的环境。下一节将讲述如何在Windows下利用Cygwin搭建Hadoop。

相关阅读:Hadoop权威指南(中文第2版)PDF http://www.linuxidc.com/Linux/2012-07/65972.htm

相关问答

更多
  • 怎么学习hadoop[2023-07-22]

    hadoop的学习是需要java1-2年工作经验才能去更好的学习 我有套很好的hadoop基础开始学习的教程,可以从基础开始学习hadoop平台搭建与管理,需要的加我779,591,710
  • 1、安装:HADOOP安装在LINUX下,测试的话,安装在windows的cpywin下也可。 2、开发:HADOOP开发,也就是MAPREDUCE开发。 要有java基础,理解mapreduce编程理念。开发环境可以是ECLIPSE。不需要学hibernate,struts,SPRING等框架。 3、参考:http://www.hadoopor.com网站上,看看更多的内容。 希望对你有帮助 参考资料http://zhidao.baidu.com/question/357576874.html
  • 如何学习hadoop[2022-01-15]

    推荐一些Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。   一、学习路线图   Hadoop家族学习路线图 开篇必读   Hive学习路线图   Mahout学习路线图    ...
  • 我不是高手,但我可以告诉你我怎么学习。①选择一个Hadoop的版本,然后阅读文档了解Hadoop:What's Hadoop, Why Hadoop exists;②安装Hadoop,三种方式都试下;③在Hadoop文档里面有Hadoop Command的资料,I.hdfs command,II.job command,尽量试试这两方面的命令;④Hadoop Files,看看Hadoop文件的概念,关注它的分布式特点,然后看看Reduce函数输出的文件;⑤自己写WordCount与Advanced Word ...
  • Hadoop 是一个大数据处理平台,由google 开发,Hadoop 是当前相较于其他大数据平台而言,优点明显,应对当下数据挖掘的首选平台
  • 我不是高手,但我可以告诉你我怎么学习。①选择一个Hadoop的版本,然后阅读文档了解Hadoop:What's Hadoop, Why Hadoop exists;②安装Hadoop,三种方式都试下;③在Hadoop文档里面有Hadoop Command的资料,I.hdfs command,II.job command,尽量试试这两方面的命令;④Hadoop Files,看看Hadoop文件的概念,关注它的分布式特点,然后看看Reduce函数输出的文件;⑤自己写WordCount与Advanced Word ...
  • 英语要好 只要有毅力就OK 。最好是有Java基础,因为hadoop是用java编写的,所以懂java能够帮助理解hadoop原理,当然Hadoop也提供了其他语言的api。不过看楼主是从事javaee的,所以完全没问题,至于Linux只要会基本的cd,ll就差不多了,会安装文件,也就是解压软件,不过不会也没关系,网上多了去了。其实最主要就是能够坚持
  • 如何学习hadoop[2021-07-23]

    1.选择一个Hadoop的版本,然后阅读文档了解Hadoop:What's Hadoop, Why Hadoop exists; 2.安装Hadoop; 3.在Hadoop文档里面有Hadoop Command的资料,I.hdfs command,II.job command,执行这两方面的命令; 4.Hadoop Files,看看Hadoop文件的概念,关注它的分布式特点,然后看看Reduce函数输出的文件; 5.写WordCount与Advanced WordCount; 6.写HDFS io,如cop ...
  • 第一我建议你先学linux, 最起码 linux的常用命令 熟悉 第二 javaee方面不出要精通,但最好有一定的java基础肯定有好处, 而且要看你打算研究 hadoop的那一块 hadoop是一个生态体系,里面许多东西
  • 你的分析是用hadoop执行mapreduce程序呢? 还是只用hbase? 前者的话最好看看书,赶时间可以看看软件自带的程序 后者的话就当数据库用吧,只是查询语言可能有点不一样,他是用HSql