看了上一节,这节我们来讲解一下:
数据可视化
在大数据的海洋中,如何更直观对数据进行探索和可视化也是目前最值得关注的方向,这类开源项目包括D3,Chart.js, Arbor, DC.js, Sigma.js, Zeppelin等,熟悉前端技术的攻城师可以分分钟利用这些优秀的library将大数据直接以图表形式展示给人们。
================================================================================================
以下为个人评价:
1、当前的数据仓库产品,又发生了较大变化,kylin和durid的成熟,为OLAP提供了更好的解决方案,另外在数据分析中spark也愈发成熟
2、MADlib已经成为apache的顶级项目,另外HAWQ也发布到了2.2.0.0,相信很快会成为顶级项目
3、GemFire是个不错的东东,抽空研究下,其版权属于Pivotal(EMC与VMware/GE合资公司),Redis的创始人Salvatore Sanfilippo 现在也供职于Pivotal。当前主要应用银行、社保、12306等交易系统。
大数据开源框架
- ElasticSearch
1.1 ElasticSearch的优点:
高并发。实测es单机分配10g内存单实例,写入能力1200qps,60g内存、12核CPU起3个实例预计可达到6000qps。
同机房单条数据写入平均3ms(比mysql慢,mg不清楚)
容错能力比mg强。比如1主多从,主片挂了从片会自动顶上
满足大数据下实时读写需求,无需分库(不存在库的概念)。
易扩展。实例间做下配置即可扩展并发性和容积,自动分配的写入机制,无需操心传统db中多主同步的诟病
支持较复杂的条件查询,group by、排序都不是问题
具有一定的关系性,但不用担心大字段的问题
1.2 ElasticSearch的缺点:
不支持事务;
读写有一定延时;
无权限管理.
-
Lucene
Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作。
2.1 Lucene的优点
成熟的解决方案,有很多的成功案例。apache 顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求;经过优化,可以支持 10亿+ 量级的搜索。
2.2 Lucene的缺点
需要额外的开发工作。所有的扩展,分布式,可靠性等都需要自己实现;非实时,从建索引到可以搜索中间有一个时间延迟,而当前的“近实时”(Lucene Near Real Time search)搜索方案的可扩展性有待进一步完善。
- Redis
3.1 Redis的优点
读写性能优异
支持数据持久化,支持AOF和RDB两种持久化方式
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
数据结构丰富:除了支持string类型的value外还支持string、hash、set、sortedset、list等数据结构。
3.2 Redis的缺点
Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。
Redis的主从复制采用全量复制,复制过程中主机会fork出一个子进程对内存做一份快照,并将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够多的空余内存。若快照文件较大,对集群的服务能力会产生较大的影响,而且复制过程是在从机新加入集群或者从机和主机网络断开重连时都会进行,也就是网络波动都会造成主机和从机间的一次全量的数据复制,这对实际的系统运营造成了不小的麻烦。
Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
- HBase
4.1 HBase的优点
列的可以动态增加,并且列为空就不存储数据,节省存储空间.
Hbase自动切分数据,使得数据存储自动具有水平scalability.
Hbase可以提供高并发读写操作的支持
4.2 HBase的缺点
不能支持条件查询,只支持按照Row key来查询。
暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉。
- Hadoop
5.1 Hadoop的优点
Hadoop集群的扩展性是其一大特点,Hadoop可以扩展至数千个节点,对数据持续增长,数据量特别巨大的需求很合适。
Hadoop的成本是其另一大优势,由于Hadoop是开源项目,而且不仅从软件上节约成本,硬件上的要求也不高。目前去IOE潮流风行,低成本的Hadoop也是一大推手。
Hadoop生态群活跃,其周边开源项目丰富,HBase, Hive,Impala等等基础开源项目众多。
6.5.2 Hadoop的缺点
全量场景,任务内串行
重吞吐量,响应时间完全没有保证
中间结果不可见,不可分享
单输入单输出,链式浪费严重
链式MR不能并行
粗粒度容错,可能会造成陷阱
图计算不友好
迭代计算不友好
不能支持秒级计算,只适合做离线数据分析任务
这些只是本人的一些见解,如果有什么不对的随时可以指出。
以后会更新一些其他的关于大数据的文章。
很多人都知道我有大数据培训资料,都天真的以为我有全套的大数据开发、hadoop、spark等视
频学习资料。我想说你们是对的,我的确有大数据开发、hadoop、spark的全套视频资料。
如果你对大数据开发感兴趣可以加口群领取免费学习资料: 763835121