java技术栈是什么 技术栈是什么


java技术栈是什么 技术栈是什么

文章插图
相信很多学Java的同学都有想转大数据或者学大数据的想法,但是一看到网上那些大数据的技术栈,就一脸懵逼,什么Hadoop、HDFS、MapReduce、Hive、Kafka、Zookeeper、HBase、Sqoop、Flume、Spark、Storm、Flink等等技术 。
童鞋们可能一下子就慌了,想学Java的也就SSM、Springboot、Spring Cloud、MySQL这些,线路清晰明了,所以学习起来相对也比较直白,但是大数据就不一样了,技术栈太多了,刚入门的时候可能就被吓在门外了 。今天博主就以Java技术栈对比大数据技术栈,和大家介绍一下大数据的这些技术栈到底都是用来干嘛的 。
架构图
在开始讲解之前,我们先来看一下,下面这副图:
Sqoop
我们按照图的顺序一个个来介绍,首先是Sqoop,Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中 。
如果非要从功能上面对比的话,和阿里的Canal组件很像,都是用来同步数据的 。
Flume
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并达到各种数据接受方(可定制)的能力 。
Flume的功能和ELK(日志实时检索系统)中的Logstash很像,都是用来传输和处理日志数据的 。
Kafka
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据 。
说白了就是一个MQ消息系统,和Java中常用RabbitMQ、RocketMQ是一样的,只是各自的侧重点不一样,Kafka侧重点在高吞吐量,可以处理海量的数据 。
HDFS
Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System) 。它和现有的分布式文件系统有很多共同点 。但同时,它和其他的分布式文件系统的区别也是很明显的 。HDFS是一个高度容错性的系统,适合部署在廉价的机器上 。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用 。
像Java项目不可避免地会涉及到文件上传下载,这个时候要么自己搭建一个分布式文件系统,要么使用第三方 。自己搭建的话一般有GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等,如果用第三方的一般会用七牛云、腾讯云OSS对象存储、阿里云OSS对象存储 。
Hive
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制 。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行 。
如果对比Java的话,有点类似MySQL(不太准确),既可以存储表结构数据,又可以通过SQL来查询这些数据,只是不能进行修改,只能进行离线操作 。
HBase
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群 。
HBase其实就是一种NoSQL,和Java中常用的Redis很像,只是他们的底层实现不一样而已 。
Zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件 。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: