技术标签: hadoop
首先我们先了解一下Hadoop的起源。然后介绍一些关于Hadoop生态系统中的具体工具的使用方法。如:HDFS、MapReduce、Yarn、Zookeeper、Hive、HBase、Oozie、Mahout、Pig、Flume、Sqoop。
Doug Cutting是Hadoop之父 ,起初他开创了一个开源软件Lucene(用Java语言编写,提供了全文检索引擎的架构,与Google类似),Lucene后来面临与Google同样的错误。于是,Doug Cutting学习并模仿Google解决这些问题的办法,产生了一个Lucene的微缩版Nutch。
后来,Doug Cutting等人根据2003-2004年Google公开的部分GFS和Mapreduce思想的细节,利用业余时间实现了GFS和Mapreduce的机制,从而提高了Nutch的性能。由此Hadoop产生了。
Hadoop于2005年秋天作为Lucene的子项目Nutch的一部分正式引入Apache基金会。2006年3月份,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入Hadoop的项目中。
关于Hadoop名字的来源,是Doug Cutting儿子的玩具大象。
Hadoop是一个开源框架,可编写和运行分布式应用处理大规模数据。 Hadoop框架的核心是HDFS和MapReduce。其中 HDFS 是分布式文件系统,MapReduce 是分布式数据处理模型和执行环境。
在一个宽泛而不断变化的分布式计算领域,Hadoop凭借什么优势能脱颖而出呢?
1. 运行方便:Hadoop是运行在由一般商用机器构成的大型集群上。Hadoop在云计算服务层次中属于PaaS(Platform-as-a- Service):平台即服务。
2. 健壮性:Hadoop致力于在一般的商用硬件上运行,能够从容的处理类似硬件失效这类的故障。
3. 可扩展性:Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。
4. 简单:Hadoop允许用户快速编写高效的并行代码。
上面的图可能有些乱,下面我们用一个简易的Hadoop生态系统图谱来描述Hadoop生态系统中出现的各种数据工具。
Hadoop1.0时代的生态系统如下:
Hadoop2.0时代的生态系统如下:
由上图可以看出Hadoop1.0与Hadoop2.0的区别。Hadoop1.0的核心由HDFS(Hadoop Distributed File System)和MapReduce(分布式计算框架)构成。而在Hadoop2.0中增加了Yarn(Yet Another Resource Negotiator),来负责集群资源的统一管理和调度。
HDFS源自于Google发表于2003年10月的GFS论文,也即是说HDFS是GFS的克隆版。
此处只是HDFS的概述,如果想了解HDFS详情,请查看HDFS详解这篇文章。
HDFS具有如下特点:
HDFS的基本原理
HDFS的应用场景
Yarn是Hadoop2.0新增的系统,负责集群的资源管理和调度,使得多种计算框架可以运行在一个集群中。
此处只是Yarn的概述,如果想了解Yarn详情,请查看Yarn详解这篇文章。
Yarn具有如下特点:
MapReduce源自于Google发表于2004年12月的MapReduce论文,也就是说,Hadoop MapReduce是Google MapReduce的克隆版。
此处只是MapReduce的概述,如果想了解MapReduce详情,请查看MapReduce详解这篇文章。
MapReduce具有如下特点:
Hive由facebook开源,最初用于解决海量结构化的日志数据统计问题;是一种ETL(Extraction-Transformation-Loading)工具。它也是构建在Hadoop之上的数据仓库;数据计算使用MR,数据存储使用HDFS。
Hive定义了一种类似SQL查询语言的HiveQL查询语言,除了不支持更新、索引和实物,几乎SQL的其他特征都能支持。它通常用于离线数据处理(采用MapReduce);我们可以认为Hive的HiveQL语言是MapReduce语言的翻译器,把MapReduce程序简化为HiveQL语言。但有些复杂的MapReduce程序是无法用HiveQL来描述的。
Hive提供shell、JDBC/ODBC、Thrift、Web等接口。
此处只是Hive的概述,如果想了解Hive详情,请查看Hive详解这篇文章。
Pig由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc数据分析工具。它通常用于进行离线分析。
Pig是构建在Hadoop之上的数据仓库,定义了一种类似于SQL的数据流语言–Pig Latin,Pig Latin可以完成排序、过滤、求和、关联等操作,可以支持自定义函数。Pig自动把Pig Latin映射为MapReduce作业,上传到集群运行,减少用户编写Java程序的苦恼。
Pig有三种运行方式:Grunt shell、脚本方式、嵌入式。
此处只是Pig的概述,如果想了解Pig详情,请查看Pig详解这篇文章。
Mahout是基于Hadoop的机器学习和数据挖掘的分布式计算框架。它实现了三大算法:推荐、聚类、分类。
HBase源自Google发表于2006年11月的Bigtable论文。也就是说,HBase是Google Bigtable的克隆版。
HBase可以使用shell、web、api等多种方式访问。它是NoSQL的典型代表产品。
此处只是HBase的概述,如果想了解HBase详情,请查看HBase详解这篇文章。
下面简要介绍一下:
Zookeeper源自Google发表于2006年11月的Chubby论文,也就是说Zookeeper是Chubby的克隆版。
Zookeeper解决分布式环境下数据管理问题:
Sqoop是连接Hadoop与传统数据库之间的桥梁,它支持多种数据库,包括MySQL、DB2等;插拔式,用户可以根据需要支持新的数据库。
Sqoop实质上是一个MapReduce程序,充分利用MR并行的特点,充分利用MR的容错性。
此处只是Sqoop的概述,如果想了解Sqoop详情,请查看Sqoop详解这篇文章。
Flume是Cloudera开源的日志收集系统。
目前计算框架和作业类型种类繁多:如MapReduce、Stream、HQL、Pig等。这些作业之间存在依赖关系,周期性作业,定时执行的作业,作业执行状态监控与报警等。如何对这些框架和作业进行统一管理和调度?
解决方案有多种:
推荐使用2.x.x版本
下载地址:http://hadoop.apache.org/releases.html
推荐使用CDH5版本
下载地址:http://archive.cloudera.com/cdh5/cdh/5/
详细安装步骤查看文章:搭建5个节点的hadoop集群环境(CDH5)
推荐使用HDP2.x版本
下载地址:http://zh.hortonworks.com/downloads/#data-platform
最后建议:关于不同发行版在架构、部署和使用方法一致,不同之处仅在于内部实现。建议选择公司发行版,比如CDH或者HDP,因为它们经过集成测试,不会面临版本兼容性问题。
微信公众号【程序员黄小斜】新生代青年聚集地,程序员成长充电站。作者黄小斜,职业是阿里程序员,身份是斜杠青年,希望和更多的程序员交朋友,一起进步和成长!专注于分享技术、面试、职场等成长干货,这一次,我们一起出发。
关注公众号后回复“2020”领取我这两年整理的学习资料,涵盖自学编程、求职面试、算法刷题、Java技术学习、计算机基础和考研等8000G资料合集。
微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,专注于 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!
关注公众号后回复“PDF”即可领取200+页的《Java工程师面试指南》强烈推荐,几乎涵盖所有Java工程师必知必会的知识点。
本章节主要介绍了Thinkphp与YII YII与Ci框架的综合对比
前言在日常的Android开发中,每个开发者或多或少都会遇到过OutOfMemoryError这样崩溃信息。如果工程稍微大一些,在monkey测试的崩溃日志也是比较常见的一种。如下是比较常见的一些报错信息:Android:java.lang.OutOfMemoryError: Failed to allocate a 1340012 byte allocation with 72503 free ...
在LINUX中,经常要删除文件,大多时候使用rm命令就足以应付了,有的时候需要用-f,强制删除,碰到有子目录的时候,需要加-r参数,也就是说,不考虑安全问题,rm -rf filename就可以解决绝大部分问题
链接:https://pan.baidu.com/s/1WAdXE64SA7iPbcd1VDdFGQ提取码:3n5t复制这段内容后打开百度网盘手机App,操作更方便哦
创维(Skyworth)电视型号:43G7200(8H87)品类:GLED AirTV OS:酷开64位6.20.80601-806061 兼容Android LCPU:四核 Cortex A53 64位 64/32-bit ARMv8-A屏幕:4K 3840x2160 43英寸 无毒广色域更多参数介绍:中关村 -- 【创维43G7200参数】更多参数详...
前言作为一个多端开发框架,Taro 从项目发起时就已经支持编译到 H5 端。随着 Taro 多端能力的不断成熟,我们对 Taro H5 端应用的要求也不断提升。我们已经不再满足于“能跑”,更希望 Taro 能跑得快。我们经常收到用户反馈:为什么使用 Taro 脚手架创建的空项目,打包后代码体积却有 400KB+;也有用户在 Issue 中提到,Taro 的部分 Api 占用空间巨大,事实上功能却并...
在响应WM_CREATE消息响应函数的时候,对话框及子控件还未创建完成,亦是说只是通知系统说要开始创建窗口啦,这个消息响应完之后,对话框和子控件才开始创建。因此在此消息响应函数中无法对控件进行修改和初始化。而WM_INITDIALOG消息响应函数是在程序运行时,当其对话框和子控件全部创建完毕,将要显示内容的时候发送的消息。因此可以在WM_INITDIALOG消息响应函数中添加对编辑框控件的初始
参考链接:https://blog.csdn.net/stories_untold/article/details/78521925https://blog.csdn.net/triloo/article/details/52767412安装显卡驱动主要有两种方式:1.ubuntu自带软件和更新应用中附加驱动页面添加私有驱动,但这种方式安装后会存在无法使用nvidia-smi命令等...
前面我们分析了设备驱动模型中的device和driver,device和driver本来是不相关的东西,只因为bus的存在,才被联系到了一起。本节就来看看设备驱动模型中起枢纽作用的bus。本节的头文件在include/linux/device.h和drivers/base/base.h,实现代码主要在bus.c中。因为在bus中有很多代码时为了device找到driver或者driver找到dev
2018 高教社杯全国大学生数学建模竞题问题B 智能RGV的动态调度策略Author:YXPEmail:[email protected]更多数模赛题:Amoiensis-CUMCUMhttps://github.com/Amoiensis/Mathmatic_Modeling_CUMCM赛题+论文+代码+思路:Amoiensis-Githubhttp...
unity开发 --------- NGUIExecuteInEditMode属性的作用是在EditMode下也可以执行脚本。Unity中默认情况下,脚本只有在运行的时候才被执行,加上此属性后,不运行程序,也能执行脚本。与PlayMode不同的是,函数并不会不停的执行。Update : 只有当场景中的某个物体发生变化时,才调用。OnGUI : 当Ga