围炉网

一行代码,一篇日志,一个梦想,一个世界

创新项目学习资料集锦

  • 人脸识别

    • 现有厂商技术比较

  • 大数据项目

    • Apache Ignite 内存数据库

      • 分布式的内存平台,他可以实时地在大数据集中执行事务和计算,和传统的基于磁盘或者闪存的技术相比,性能有数量级的提升。

      • 功能特性有:

        • 分布式键值存储:Ignite数据网格是一个内存内的键值存储,分布式的分区化的哈希,集群中每个节点都持有所有数据的一部分,这意味着集群内节点越多,就可以缓存的数据越多。 Ignite通过可插拔的哈选算法来决定数据的位置,每个客户端都可以通过插入一个自定义的哈希函数来决定一个键属于那个节点,并不需要任何特殊的映射服务或者命名节点。

        • 内存优化:Ignite在内存中支持2种模式的数据缓存,堆内和堆外。当缓存数据占用很大的堆,超过了Java主堆空间时,堆外存储可以克服JVM垃圾回收(gc)导致的长时间暂停,但数据仍然在内存内。

        • SQL查询:Ignite支持使用标准的SQL语法(ANSI 99)来查询缓存,可以使用任何的SQL函数,包括聚合和分组。

        • 分布式关联:Ignite支持分布式的SQL关联和跨缓存的关联。

        • ACID事务:Ignite提供了一个完全符合ACID的分布式事务来保证一致性。 支持乐观和悲观的并发模型以及读提交、可复制读和序列化的隔离级别。 Ignite的事务使用了二阶段提交协议,适当地也进行了很多一阶段提交的优化。

        • 同写和同读:通写模式允许更新数据库中的数据,通读模式允许从数据库中读取数据。

        • 数据库异步更新:Ignite提供了一个选项,通过后写缓存来异步地执行数据库更新

        • 自动持久化:自动化地连接底层数据库并且生成XML的对象关系映射配置和Java领域模型POJO

        • 数据库支持:Ignite可以自动地与外部数据库集成,包括RDBMS、NoSQL和HDFS。

    • Spring integration vs Apache Camel

      • 都实现了著名的企业整合模式 Enteprise Integration Patterns(EIP ,http://www.eaipatterns.com),提供了一个标准化的集成应用程序的领域特定语言。

      • Spring Integration集成只提供了技术非常基础的支持,Apache Camel则提供了很多很多的进一步组件!集成是通过编写大量的XML代码(没有一个真正的DSL)实现的。

      • Apache Camel是一个基于规则路由和中介引擎

        • Camel提供基于规则的路由(Routing)引擎

                    from().to().to()

        • 这种表述可以使用Camel定义的DSL语言,xml语言以及scala语言。如下例:

        • from(“file:path").to("activemq:queue:queuename") 将某文件,读入并写入到ActiveMQ的JMS中。

        • from("file:path").to("ftp://url")将一个文件,读入并写入到ftp某目录中。

        • 集成项目的利器,针对应用集成场景的抽象出了一套消息交互模型,通过组件的方式进行第三方系统的接入,目前Apache Camel已经提供了300多种组件能够接入HTTP,JMS,TCP,WS-*,WebSocket 等多种传输协议。

    • Flink vs Spark

      • Spark 的数据模型是弹性分布式数据集 RDD(Resilient Distributed Datasets)。 比起 MapReduce 的文件模型,RDD 是一个更抽象的模型,RDD 靠血缘(lineage) 等方式来保证可恢复性。很多时候 RDD 可以实现为分布式共享内存或者完全虚拟化(即有的中间结果 RDD 当下游处理完全在本地时可以直接优化省略掉)。这样可以省掉很多不必要的 I/O,是早期 Spark 性能优势的主要原因。

      • Flink 的基本数据模型是数据流,及事件(Event) 的序列。数据流作为数据的基本模型可能没有表或者数据块直观熟悉,但是可以证明是完全等效的。流可以是无边界的无限流,即一般意义上的流处理。也可以是有边界的有限流,这样就是批处理。

      • 在 DAG 的执行上,Spark 和 Flink 有一个比较显著的区别。 在 Flink 的流执行模式中,一个事件在一个节点处理完后的输出就可以发到下一个节点立即处理。这样执行引擎并不会引入额外的延迟。与之相应的,所有节点是需要同时运行的。而 Spark 的 micro batch 和一般的 batch 执行一样,处理完上游的 stage 得到输出之后才开始下游的 stage。

      • Apache Flink提供事件级处理,也称为实时流。它与Storm模型非常相似。

      • Spark只有不提供事件级粒度的最小批处理(mini-batch)。这种方法被称为近实时。

      • Spark流式处理是更快的批处理,Flink批处理是有限的流处理。

      • Spark 和 Flink都提供库支持机器学习,图计算等。

  • 新闻舆情

  • 讯飞开放平台

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

沪ICP备15009335号-2