lol总决赛竞猜

登录 | 注册 | English

资讯中心

lol总决赛竞猜  >  资讯中心  >  产品动态

车联网大数据平台架构设计-软硬件选型

1.App选型建议

1.1     数据传输

        处理并发链接 的传统方式为:为每个链接创建一个线程并由该线程负责所有 的数据处理业务逻辑。这种方式 的好处在于代码简单明了,逻辑清晰。而由于操作系统 的限制,每台服务器可以处理 的线程数是有限 的,因为线程对CPU 的处理器 的竞争将使系统整体性能下降。随着线程数变大,系统处理延时逐渐变大。此外,当某链接中没有数据传输时,线程不会被释放,浪费系统资源。为解决上述问题,可使用基于NIO 的技术。

1.1.1     Netty

        Netty是当下十分流行 的Java NIO框架。 Netty框架中使用了两组线程:selectors与workers。其中Selectors专门负责client端(列车车载设备)链接 的建立并轮询监听哪个链接有数据传输 的请求。针对某链接 的数据传输请求,相关selector会任意挑选一个闲置 的worker线程处理该请求。处理结束后,worker自动将状态置回‘空闲’以便再次被调用。两组线程 的最大线程数均需根据服务器CPU处理器核数进行配置。另外,netty内置了大量worker功能可以协助程序员轻松解决TCP粘包,二进制转消息等复杂问题。

1.1.2     IBM MessageSight

        MessageSight是IBM 的一款软硬一体 的商业产品。其极限处理能力可达百万client并发,每秒可进行千万次消息处理。

 

1.2     数据预处理

1.2.1     流式数据处理

        对于流式数据 的处理不能用传统 的方式先持久化存储再读取分析,因为大量 的磁盘IO操作将使数据处理时效性大打折扣。流式数据处理工具 的基本原理为将数据切割成定长 的窗口并对窗口内 的数据在内存中快速完成处理。值得注意 的是,数据分析 的结论也可以被应用于流式数据处理 的过程中,即可完成模式预判等功能还可以对数据分析 的结论进行验证。

1.2.1.1     Storm

        Storm是被广泛应用 的开源产品中,其允许用户自定义数据处理 的工作流(Storm术语为Topology),并部署在Hadoop集群之上使之具备批量、交互式以及实时数据处理 的能力。用户可使用任意变成语言定义工作流。

 

1.2.1.2     IBM Streams

        IBM 的Streams产品是性能非常可靠 的流式数据处理工具。不同于其他基于Java 的开源项目,Streams是用C++开发 的,性能也远远高于其他流式数据处理 的工具。另外IBM还提供了各种数据处理算法插件,包括:曲线拟合、傅立叶变换、GPS距离等。

1.2.2     数据推送

        为了实现推送技术,传统 的技术是采用‘请求-响应式’轮询策略。轮询是在特定 的 的时间间隔(如每1秒),由浏览器对服务器发出请求,然后由服务器返回新数据给客户端 的浏览器。这种传统 的模式带来很明显 的缺点,即浏览器需要不断 的向服务器发出请求,然而HTTP request 的header是非常长 的,里面包含 的数据可能只是一个很小 的值,这样会占用很多 的带宽和服务器资源。

        面对这种状况,HTML5定义了WebSockets协议,能更好 的节省服务器资源和带宽并达到实时通讯。应用Websockets技术,服务器可以通过一个双工通道主动推送数据至客户端浏览器。

1.3     数据存储

1.3.1     车载终端数据

        自2006年以来,基于谷歌提出 的MapReduce编程模型以及分布式文件系统 的开源项目Hadoop,得到了分布式计算领域 的广泛关注,近年来更是几乎成为了大数据行业 的标准框架。众多国际互联网企业如Yahoo!、Twitter、脸书、谷歌、alibaba等均开源发布了大量基于Hadoop框架 的App,从而使得此框架拥有其他大数据工具所不具备 的App生态圈。

        2013年底,Hadoop 2 发布,新一代 的计算框架YARN在兼容MapReduce之外,使得其他第三方计算工具可以更便捷 的与HDFS整合。同时HDFS也增加了HA(高可用)等新功能。

 

        Cloudera是一家美国 的HadoopApp发行商,其CDH提供了企业级 的服务支撑,超过50% 的Hadoop开源项目贡献来自于Cloudera 的工程师。lol全球总决赛下注目前使用 的是Cloudera 的CDH5。

        数据存入HDFS中时,Hadoop会自动将数据切分为block并均匀分布 的存储在集群 的各个数据节点。读取数据时,往往通过Map Reduce 的方式将数据汇总并提取。这种方式非常适用于对海量数据(eg. 100GB+)进行检索或分析 的场景。这是因为,首先海量数据很难用单机进行处理,因为大量数据需要先加载至内存;其次因为MapReduce(或基于YARN 的其他计算方式)可以充分利用整个集群中 的计算资源,任务 的实行效率远远快于单机。

        而对于交互应答及时性要求较高 的应用场景,比如查看某列 的骋皇倍 的车速变化曲线(涉及数据量相对较小)。用户往往希望指定检索条件后可得到秒级 的响应。但如果采用上述方式直接从HDFS取数据,整体集群任务派发与资源协调所需 的时间将远大于数据处理与展示 的时间。用户体验将会大幅下降,这种情况下一般会采用非结构型Nosql数据库。HBase是Hadoop生态圈中非结构型数据库 的代表,其架构参考了谷歌 的bigTable设计。旨在为客户提供基于HDFS,支撑快速写入与读取 的数据库。

        HBase 的一个典型应用场景便是车载终端数据存储,车载终端数据 的特点包括: 数据类型多样、数据具有时序性、车载终端有移动性以及数据粒度小。车载数据也符合上述特征,因此HBase相对于HDFS是一个更加合适 的选择。然而,HBase表 的设计对数据检索效率 的影响可谓巨大,因此必须紧密结合应用场景、数据结构以及数据 的元数据才能确保HBase 的性能满足应用需求。

1.3.2     应用数据

        应用数据一般则采用关系型数据库进行存储。常见 的关系型数据库包括:Mysql,SqlServer,Oracle等。

1.4     数据分析

1.4.1     基础运算功能

        大数据平台需根据数据类型 的相应特点封装基础运算功能。例如,对于布尔量,需提供某段时间区间内,0、1变化 的次数统计,0、1所占比例分布等功能;对递增量如列车里程,应提供某段时间区间内该信号 的变化率。而这些功能在分布式环境下主要是通过MapReduce 的思想实现。

        MapReduce是Hadoop 的核心组件之一。 所有计算任务都被分解为两个过程:Map与Reduce。其中Map过程 的核心思想为‘移动计算优于移动数据’,即将计算任务Mapper分发至数据所在计算节点。计算节点对本地数据进行计算并将计算结果记录在本地HDFS。Reduce过程,则由reducer去各个计算节点收集mapper 的中间计算结果再整理成最终结果。这一过程适合 的场景是大批量数据运算,而针对交互性较强 的应用,因整个计算过程涉及大量磁盘IO操作,很难做到及时响应。为此HadoopApp生态圈对MapReduce过程进行了大量优化,而Spark 的出现则进一步颠覆了MapReduce 的实现方式。

1.4.2     Apache Spark

        Spark将数据源封装为RDD(一种可伸缩 的分布式数据结构)。针对RDD 的Mapreduce过程,将所有中间结果都保存在内存,而不需读写HDFS,从而提高计算任务 的整体效率。除MapReduce外,Spark还提供许多其他数据操作。自2014年起,spark已经成为Apache开源社区中十分活跃 的开源项目。

1.4.3     SQL on Hadoop

        在传统关系型数据库中进行数据分析往往是依靠SQL语言。对于不熟悉分布式编程 的数据分析人员,SQL on Hadoop 的出现无疑为他们提供了一种便捷而强大数据分析工具。为Hbase提供SQL操作 的工具包括Hive,Impala与Pheonix。其中Hive与Impala都是为HDFS而设计同时提供了对Hbase 的接口;Pheonix则是专门为Hbase设计 的,底层实现完全依赖Hbase 的原生接口。

1.4.4     机器学习算法

        数据挖掘中常用 的许多机器学习算法都是迭代式 的,当数据分布在集群中,传统 的单机算法实现将难以生效。Apache Mahout提供了多种机器学习算法基于MapReduce 的实现,包括聚类、拟合、协同过滤等。Spark也提供了Mlib组件并以Spark 的方式对上述算法进行了实现。

1.4.5     BI

        传统 的 的BI工具近年来也开始提供基于Hadoop 的数据计算接口,如Matlab提供了MapReduce 的接口(http://www.mathworks.com/discovery/matlab-mapreduce-hadoop.html)。而SPSS更是宣布除与Hadoop集成之外,还将于2015年完成与Spark 的集成。值得注意 的是,这些集成仅是底层实现 的集成,即仍然要求数据分析人员具备MapReduce 的编程思想并学习这些工具关于Mapreduce 的客户端接口。

1.4.6     工作流

        Oozie是Hadoop生态圈中一款关于计算流程规划 的工具。通过这款工具,开发人员可以将上述数据分析工具进行整合,以完成非常复杂 的数据统计任务。然而Oozie缺乏可视化 的工具对工作流进行设计,且调试十分不便。

Azkaban是由LinkedIn贡献 的一款类似 的开源工具并提供了用户友好 的可视化界面。

1.4.7     数据可视化

        由于前段 的框架采用 的是基于浏览器 的B/S架构,因此数据 的可视化可以依托于大量开源 的javascript工具库,例如D3(https://github.com/mbostock/d3/wiki/Gallery)、Highcharts(http://www.highcharts.com/demo)以及Baidu Echarts(http://echarts.baidu.com/doc/example.html)。

        以Echarts为例,其提供 的工具包括:折线(面积)图、 柱状(条形)图、 散点(气泡)图、 K线图、 饼(圆环)图、 雷达(面积)图、 和弦图、 力导向布局图、 地图、 仪表盘、 漏斗图。具体demo请参考上述链接。

2      硬件选型建议

2.1     服务器选型

2.1.1     配置

        Hadoop集群中DateNode 的推荐配置为:

•  12~24 块1~4TB 硬盘

•  2 ~8核 CPU, 频率2~2.5GHz

•  64-512GB 内存

•  10~100G以太网网口

        NameNode 的推荐配置为:

•  4~6 块1TB 硬盘 (操作系统1块, 文件系统2块,Zookeeper1块)

•  2 ~8核 CPU, 频率2~2.5GHz

•  64-128GB 内存

•  10~100G以太网网口

2.1.2     规模

        车载终端数据进入Hbase后,以Hfile 的形式存于HDFS。这意味着所有数据在整体集群中将会至少保存3个备份。规划集群规模时需考虑下列几个参数:

•  车载终端数量(车载数据采集设备)sensors

•  采集端口数量ports

•  采集频率 frequency

•  采集时间period

•  端口大小 size

•  备份数量 redundancy

        由于Hadoop集群支撑动态扩展,因此策划时可先按最小需求搭建物理集群。

   

关于lol总决赛竞猜
企业概况
企业理念
企业资质
资讯中心
lol总决赛竞猜在全球
诚聘英才
校园招聘
实习生招聘
社会招聘
走进lol总决赛竞猜
常见问题
市场活动
在线研讨会
线下活动
微信课堂
用户社区
资料下载
lol总决赛竞猜月刊
用户留言
个人中心
PMT留言
相关链接
达索企业
IBM-中国
联系大家
电话:010-64840808
邮箱:market_dept@hirain.com
版权所有 ? lol总决赛竞猜-电竞比赛竞猜-lol全球总决赛下注 京ICP备18000642号-1 京公网安备11010802017344号 网站地图 | 招聘信息 | 法律声明 | 隐私保护
XML 地图 | Sitemap 地图