当前位置: 首页 > news >正文

大数据hadoop领域技术总体介绍(各个组件的作用)

2019/2/16 星期六

大数据领域技术总体介绍(各个组件的作用)
1、大数据技术介绍
大数据技术生态体系:
Hadoop 元老级分布式海量数据存储、处理技术系统,擅长离线数据分析
Hbase 基于hadoop 的分布式海量数据库,离线分析和在线业务通吃
Hive sql 基于hadoop 的数据仓库工具,使用方便,功能丰富,使用方法类似SQL
Zookeeper 集群协调服务
Sqoop 数据导入导出工具
Flume 数据采集框架 //经常会结合kafka+flume数据流 或者用于大量的日志收集到hdfs上 日志收集分析大多数企业用elk
Storm 实时流式计算框架,流式处理领域头牌框架
Spark 基于内存的分布式运算框架,一站式处理all in one,新秀,发展势头迅猛
sparkCore //应用开发
SparkSQL //sql操作 类似hive
SparkStreaming //类似于storm

机器学习:
Mahout 基于mapreduce 的机器学习算法库
MLLIB 基于spark 机器学习算法库

大数据hadoop领域技术总体介绍(各个组件的作用)

大数据hadoop领域技术总体介绍(各个组件的作用)

由上图可以看出,大数据hadoop生态圈中类似于一个动物园,zookeeper组件就类似于一个管理者,管理这些动物。//大数据生态圈的组件很多,不知我们上面提到的组件,图中展示的为基本组件。

2、需要由潜到深
一、理解该框架的功能和适用场景
二、使用(安装部署,编程规范,API)
三、运行机制
四、结构原理
五、源码

3、hadoop基本介绍
(1)hadoop 是用于处理(运算分析)海量数据的技术平台,且是采用分布式集群的方式;
(2)hadoop 两个大的功能:
 提供海量数据的存储服务;
 提供分析海量数据的编程框架及运行平台;
(3)Hadoop 有3大核心组件:
 HDFS---- hadoop 分布式文件系统海量数据的存储(集群服务),
 MapReduce----分布式运算框架(编程框架)(导jar 包写程序),海量数据运算分析(替代品:storm /spark 等)
 Yarn ----资源调度管理集群(可以理解为一个分布式的操作系统,管理和分配集群硬件资源)
(4)使用Hadoop:
 可以把hadoop 理解为一个编程框架(类比:structs、spring、hibernate/mybatis),有着自己特定的API 封装和用户编程规范,用户可借助这些API 来实现数据处理逻辑;从另一个角度,hadoop 又可以理解为一个提供服务的软件(类比:数据库服务
oracle/mysql、索引服务solr,缓存服务redis 等),用户程序通过客户端向hadoop集群请求服务来实现特定的功能;
(5)Hadoop 产生的历史
最早来自于google 的三大技术论文:GFS/MAPREDUCE/BIG TABLE
(为什么google 会需要这么一种技术?)
后来经过doug cutting 的“山寨”,出现了java 版本的hdfs mapreduce 和hbase
并成为apache 的顶级项目hadoop ,hbase
经过演化,hadoop 的组件又多出一个yarn(mapreduce+ yarn + hdfs)
而且,hadoop 外围产生了越来越多的工具组件,形成一个庞大的hadoop 生态体系

为什么需要hadoop
在数据量很大的情况下,单机的处理能力无法胜任,必须采用分布式集群的方式进行处理,而用分布式集群的方式处理数据,实现的复杂度呈级数增加,所以,在海量数据处理的需求下,一个通用的分布式数据处理技术框架能大大降低应用开发难度和减少工作量。

hadoop业务的整体开发流程:见图
flume数据采集--->MapReduce清洗---->存入hbase或者hdfs---->hive统计分析---->存入hive表中--->sqoop导入导出--->mysql数据库--->web展示

大数据hadoop领域技术总体介绍(各个组件的作用)

提示:其中我们当数据量非常大的时候,我们可以在flume数据采集节点加入kafka消息队列形成缓存区;在数据清洗阶段我们可以用spark 或者storm flink等内存和实时流算法框架(针对不同的业务场景);存入hadoop中的HBASE或者hdfs中;在数据分析阶段,我们可以用hive或者impala等计算工具;web展示的时候,可以把数据用elk中kabina//数据可视化工具kabina或者Grafana

转载于:https://blog.51cto.com/12445535/2350948

相关文章:

  • 使用git时候,屏蔽gitignore自身
  • 【VMCloud云平台】拥抱Docker(四)定制属于自已的镜像
  • vue ----自定义指令Vue.directive(),实现拖拽
  • Scalaz(14)- Monad:函数组合-Kleisli to Reader
  • 微软以白金会员加入 OpenChain 开源组织
  • 数学公式
  • 彻底搞懂浏览器Event-loop
  • jQuery插件 -- Cookie插件jquery.cookie.js(转)
  • Hbulider MUI
  • 快速有效的增加App真实评论的简单方法!
  • Spring Cloud 入门教程5、服务容错监控:Hystrix Dashboard
  • rabbitmq单机多实例集群搭建
  • j2EE监听器-listener
  • jQuery EasyUI使用教程之使用虚拟滚动视图显示海量数据
  • DevOps团队结构类型汇总:总有一款适合你
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Java多线程(4):使用线程池执行定时任务
  • Js基础——数据类型之Null和Undefined
  • Leetcode 27 Remove Element
  • LeetCode18.四数之和 JavaScript
  • Promise面试题2实现异步串行执行
  • Python利用正则抓取网页内容保存到本地
  • React+TypeScript入门
  • 初探 Vue 生命周期和钩子函数
  • 当SetTimeout遇到了字符串
  • 对JS继承的一点思考
  • 力扣(LeetCode)21
  • 模型微调
  • 如何设计一个微型分布式架构?
  • 微信支付JSAPI,实测!终极方案
  • 运行时添加log4j2的appender
  • 智能合约Solidity教程-事件和日志(一)
  • 自制字幕遮挡器
  • AI算硅基生命吗,为什么?
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​一些不规范的GTID使用场景
  • ###项目技术发展史
  • (06)Hive——正则表达式
  • (二)hibernate配置管理
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .axf 转化 .bin文件 的方法
  • .java 9 找不到符号_java找不到符号
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET 简介:跨平台、开源、高性能的开发平台