Hadoop、HDFS 、MR 、HIVE等通俗理解



Hadoop

  1. HDFS
  2. MapReduce

HDSF:分布式文件系统

简单理解就是存储文件的系统,就像百度云盘一样的东西。我们搭建好HDFS就相当于自己做了一个百度云盘,就可以将我们自己的一些文件上传到自己的HDFS中。

MapReduce:分布式计算框架

简单的讲自己编写一个从一堆文件中查找出自己想要的数据(例如:统计单词数,就是将一个文件中的单词进行统计),有些类似mysql中在一张表中查找出自己想的数据,只是mr是从文件中找。MR1:没有集成yarn框架,只包含mapreduce,

MR2中包含mapreduce+yarn框架

Yarn

资源管理器,为各类应用程序进行资源管理和调度;简单的讲就是分配和管理任务,每一个MR任务都要消耗资源,通过它管理后就会让集群更好的运行,不会存在把所有的任务都给一个节点处理的情况

HIVE

1、可以将hive看成一个关系型数据库,但是它不是关系型数据库

2、hive可以将本地或者HDFS上的文件(txt等结构化数文件)映射为一张关系型数据库(mysql)中的一张表(就是把一个txt文件转成一张表,可以使用SQL语句进行查找文件中的内容),而且可以使用类似SQL语句的方式去查询这个加载文件中的一些数据。

3、hive 底层是将Hql语句(sql语句)转换为MR任务使只会sql语句的人也可使用MR操作文件

问题:为什么非要使用MR(MapReduce)去操作文件而直接将文件加载到关系型数据库(myslq或者oracle数据库)中进行sql操作?

1、因为文件大(大数据呀,对吧!),关系型数据装不下(自己这样理解的)

2、因为MR是分布式计算框架,可以很多电脑一起进行计算。而关系型数据库面对大量数据的时候就算的相对很慢。

HBASE

1、hbase是一个非关系型分布式数据库(NoSQL)

这要怎么讲呢?我只能给自己总结了以后再改

2、分布式文件存储系统、面向列、随机读取、高可靠性、可伸缩

3、并没有用到mr只用到了hdfs(对HBASE的操作不是像对关系型数据库的sql操作)

KAFKA

消息系统(连接两个系统之间的连接)

解决的问题是:

由于生产者生产的数据量太大,如果直接放入到下一个系统会把系统搞崩,或者当下游系统宕机后不影响上游的正常业务流程,然后就需要一个KAFKA(消息中间件、消息系统),用KAFKA存这些数据就是小意思没问题,下游系统之接在KAFKA中去数据,取多少可以自定义,这样下游的就可以慢慢消费,就可以保证系统不崩溃。

FLUME

flume:是一个实时日志采集系统

SQOOP

sqoop:将关系型数据(MySQL、sqlsever、oracle等)导入到HADOOP集群(Hive、Hbase等)中;也可以反向导出将大数据平台中的数据导出到关系型数据工具。

大白话:sqoop就是一个导入、导出数据的工具(关系型数据库<-->HAOOP集群)。

SCALA

scala是一门语言,就和java、c++等语言一样运行在jvm中

scala是一门函数式编程和面向对象编程结合的语言

SPARK

1、Spark (Spark core)

Spark是一个计算框架、类似于MR框架,不过Spark框架是基于内存的计算、可以进行迭代计算。

2、Spark SQL

3、Spark Streaming

STORM

和Spark Streaming类似的计算框架

当前理解是这样的,以后还会有部分修改。有理解不对的地方还请多多指教!

警告!只适合通俗理解,不是很专业回答。

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值