分享

做个hadoop的项目要哪些软件,谁帮解释下各个软件的作用

395455030 发表于 2015-12-9 15:52:45 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 7660
    大数据开发中要用到很多软件,现在只会用hadoop、spark,看了一下相关的还有hive、hbase、impala、pig、redis、sqoop、flume、zookeeper、storm这么一长串的软件。想问一下这些都是做什么用的,哪位大神做过hadoop、spark的项目,一个项目中要用到这些软件中的哪几个?下面说一下我对这些软件已有的认识,希望大神给点指正或补充。
    hive、hbase、impala、pig、redis这5个都是数据库,本来hadoop里处理数据是用类似linux的shell语法来操作的,使用这些就可以使用SQL或类似SQL的语言来操作,如果不想用类似SQL的语言就不需要这些了。什么叫数据库?hadoop也能存数据,为什么不是数据库?
    sqoop用于使hadoop可以和oracle之类的数据库交换数据。
    flume和写日志相关,但不知什么关系。向hadoop导入日志也不需要什么软件吧,就像导入记事本一样导入就可以了。不用什么软件hadoop也能生成一些错误、警告的日志吧。
    zookeeper可以使集群使用相同配置时,改一台机上的配置其他机跟着改。主节点掉线时能自动从其他节点中找一台来做新的主节点。
    storm使用流式处理。hadoop、spark是批量处理,数据存入磁盘,再从磁盘读入内存进行计算。流式处理不经过磁盘直接在内存计算。那么流式处理不用存到磁盘,光内存那点空间存储的数据不是比磁盘小得多?
    spark streaming是把spark的全部数据读完才做一次批量处理,改成每隔一段时间比如1秒做一次批量处理的方式达到类似实时的流式处理。

已有(2)人评论

跳转到指定楼层
easthome001 发表于 2015-12-9 16:47:51
hadoop可以理解为分布是磁盘
我们的磁盘也能存数据,但是不是数据库,数据库里面的存的数据有有关系的。
sqoop可以在关系数据库和非关系数据库之间导入导出数据
flume是搜集日志的,搜集之后到storm,kafka等,比如网站生成日志,而且想随时把这些日志分析。我们可以通过flume搜集后,传给storm或则mapredcue分析。
storm,spark可以使用磁盘,由于实时的不会hadoop那样,需要大量的空间。
各有所长,hadoop适合离线批处理,什么是在线,什么是离线
比如当前网站正在运行,然后立即分析当前情况,用spark或则storm。
昨天产生了1T数据,今天对1T数据分析,可以使用hadoop。


做一个项目,可能需要多种技术,也并不是固定的。
比如hadoop,hbase,hive可以做一个项目,实时要求高了,外加spark,kafka等。
没有说哪个项目必须使用哪个技术


更多技术,参考
大数据架构师基础:hadoop家族,Cloudera产品系列等各种技术
http://www.aboutyun.com/thread-6842-1-1.html



回复

使用道具 举报

395455030 发表于 2015-12-9 21:14:49
easthome001 发表于 2015-12-9 16:47
hadoop可以理解为分布是磁盘
我们的磁盘也能存数据,但是不是数据库,数据库里面的存的数据有有关系的。
...

看了一下,据说可以从外界读数据到kafka,kafka再传入hdfs,不能直接从外界读数据到hdfs吗?kafka是起个什么作用的?
hive、hbase、pig之类的是不是都是数据库?数据库只要一个可以吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条