数据来源:1、主动获取 2、被动获取
技术选择:1、storm (官方的、淘宝的):过来的数据要及时处理
2、flume :缺陷:处理流数据非常慢,优势:对流可以实施多层过滤
3、kafka :包括了flume的基本功能,对流的处理更快,缺陷:不能加过滤器(解决方案:flume+kafka)
4、speak streaming:实时性不太高,性能相对稳定
技术方案:爬虫数据:1:存储 or 交给flume做分流 2、kafka处理后到存储介质 3、spark Streaming 4、ML/AI 5、SQL (备注:每种技术不是必须的,顺序不定)
数据存储:1、本地 2、关系型数据库(最慢:千万级数据之内) 3、hdfs 4、redis(数据缓冲,减缓数据处理压力) 5、kafak 6、Hbase 7、es 8、solr(不是结构化的数据) 维护者:AI
redis定期存储到HDFS or 存储到kafka,通过flume写入到HDFS
Hbase:能不用尽量不用,开发维护的成本很高。优点:当集群足够大,roleKey匹配。替代者:小数据量:redis,数据量大:Cassandra+caidy , cudu(原子操作)+inpala(亿级别,速度不快),presto(面向PB、TB级别:京东(有中文文档))
Hive(数据仓库)与数据库:仓库不支持修改(需要删除重新写)