相信很多学java的同学都有转大数据或者学大数据的想法,但是在网上看到大数据的技术栈,就看了一下,比如hadoop,hdfs,mapreduce,hive,卡夫卡,zookeeper,hbase,sqoop,flume,spark,storm,flink等等 。
童鞋可能突然慌了,想学java的有ssm,跳羚,春云,mysql等 。台词很清楚,所以学起来相对简单,但是大数据就不一样了 。技术栈太多,刚开始可能会被吓到外面 。,博主们把大数据技术栈和java技术栈进行对比,告诉你这些大数据技术栈是为了什么 。
架构图
在我们开始解释之前,让我们看一下下图:
数据连接器模块
我们按照图的顺序逐一介绍 。第一,sqoop(发音:skup)是一个开源工具,主要用于hadoop(hive)和传统数据库(mysql、postgresql、……)之间的数据传输,可以从一个关系型数据库(比如mysql、oracle、postgres等)导入数据 。)到hadoophdfs
如果非要比较功能的话,很像阿里的canal组件,用来同步数据 。
水道
水槽是一个高度可用、可靠和分布式的系统,用于收集、聚合和传输cloudera提供的大量日志 。水槽支持定制日志系统中的各种数据发送器,用于收集数据;同时,flume提供了简单处理数据和到达各种数据接收者(可定制)的能力 。
水槽的功能类似于elk(日志实时检索系统)中的logstash,用于传输和处理日志数据 。
卡夫卡
卡夫卡是一个高吞吐量的分布式发布订阅消息系统,可以处理网站中消费者的所有动作流数据 。
说白了就是一个mq消息传递系统,和java常用的rabbitmq、rocketmq一样,只是侧重点不同 。卡夫卡专注于高吞吐量,能够处理海量数据 。
分布式文件系统
hadoop分布式文件系统(hdfs)是指设计为在商用硬件上运行的分布式文件系统 。它与现有的分布式文件系统有许多共同之处 。但同时也明显不同于其他分布式文件系统 。hdfs是一个高容错系统,适合部署在廉价的机器上 。hdfs可以提供高吞吐量的数据访问,非常适合大规模数据集 。
像java这样的项目,不可避免的会涉及到文件上传和 。此时,您要么自己构建分布式文件系统,要么使用第三方 。一般来说,gfs、hdfs、lustre、ceph、gridfs、mogilefs、tfs、fastdfs等 。如果用第三方,一般会用七牛云,腾讯云oss对象存储,阿里巴巴云oss对象存储 。
储备
hive是基于hadoop的数据仓库工具,用于数据的提取、转换和加载 。它是一种能够存储、查询和分析hadoop中存储的大规模数据的机制 。hive数据仓库工具可以将结构化数据文件映射成数据库表,提供sql查询功能,将sql语句转换成mapreduce任务执行 。
与java相比,有点类似于mysql(不太准确),它不仅可以存储表结构数据,还可以通过sql查询这些数据,但不能修改,只能离线操作 。
数据库
hadoop数据库是一个高度可靠、高性能、面向列和可扩展的分布式存储系统 。通过使用hbase技术,可以在廉价的pc服务器上构建大规模的结构化存储集群 。
糖化血红蛋白实际上是一种nosql,类似于java中常用的redis,只是它们的底层实现不同 。
动物园管理员
zookeeper是一个分布式、开源的分布式应用协调服务,是googlechubby的开源实现,是hadoop和hbase的重要组成部分 。它是为分布式应用提供一致服务的软件,功能包括配置维护、域名服务、分布式同步、群组服务等 。
zookeer在java里也很有名,基于dubbo的注册中心一般都是用zookeer实现的 。类似的有:尤里卡、执政官等等,都是著名的微服注册中心 。
大数据
hadoop是apache基金会开发的分布式系统基础设施 。用户可以开发分布式程序,而不知道分布式的底层细节 。充分利用集群的力量进行高速计算和存储 。hadoop实现了hadoop分布式文件系统(简称hdfs) 。
- 西瓜坏了是什么味道
- 口红雨衣涂在口红前面还是后面◎口红雨衣的正确使用方法是什么
- 拍立得是什么
- 古代女子张王氏是什么意思
- 电商运营的基本流程是什么?
- ppsx是什么格式
- 铁粉是什么意思
- 卡口是什么意思
- 亚欧分界线是什么海峡
- 一碗香是什么