资源描述
电力大数据处理存储与分析的调研报告
90
资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。
编号: SY-…….
密级: 受控
电力大数据处理、 存储与分析的调研报告
编制:
审核:
12月
目 录
1、 什么是大数据 4
1.1、 Volume( 体积) 4
1.2、 Variety( 多样) 4
1.3、 Velocity( 效率) 5
1.4、 Veracity( 价值) 5
2、 大数据关键技术 5
2.1、 大数据采集技术 6
2.2、 大数据预处理技术 6
2.3、 大数据存储及管理技术 7
2.4、 大数据分析及挖掘技术 7
2.5、 大数据展现与应用技术 8
3、 数据处理与分析 8
3.1、 传统方式 9
3.2、 Hadoop大数据新方法 10
3.3、 大规模并行分析数据库 11
3.4、 大数据方法的互补 12
3.5、 大数据使用案例 13
4、 展望电力大数据时代 14
4.1、 电力大数据价值分析 14
4.2、 电力大数据应用前景 14
4.3、 电力大数据发展与挑战 15
5、 迈向电力大数据时代 15
5.1、 电力大数据关健技术 16
5.2、 电力大数据发展策略 16
6、 电力大数据实践 16
6.1、 实时海量数据是坚强智能电网的重要资产 17
6.2、 对实时数据的接入、 存储与处理、 监测与智能分析 17
6.3、 电网实时数据调研现状 17
6.4、 大数据服务IT创新、 提高生产效率 19
7、 大数据技术实现 19
7.1、 物理架构图 19
7.2、 数据处理向大数据处理的过渡 20
7.3、 大数据核心技术—Hadoop 20
8、 Hadoop介绍与案例分析 20
8.1、 Hadoop介绍 21
8.2、 Hadoop核心技术 21
8.2.1、 HDFS 21
8.2.2、 MapReduce 23
8.3、 Hadoop优点和缺点 30
8.4、 NoSQL数据库介绍 31
8.4.1、 MongoDB 32
8.4.2、 CouchDB 33
8.4.3、 HBase 34
8.4.4、 Redis 35
8.4.5、 BaseX 35
9、 Hadoop数据存储—HBase 36
9.1、 HBase简介 36
9.2、 逻辑视图 37
9.3、 物理存储 37
9.4、 系统架构 41
9.5、 关键算法\流程 44
9.6、 访问接口 48
10、 Hadoop查询与分析工具 48
10.1、 Hive 48
10.2、 Mahout 56
1、 什么是大数据
大数据几乎已成为所有商业领域共有的最新趋势, 然而大数据究竟是什么? 事实上, 大数据是个非常简单的术语——就像它所说的一样, 是非常大的数据集。那么究竟有大多? 真实的答案就是”如你所想的那么大”!
那么为什么会产生如此之大的数据集? 因为当今的数据已经无所不在而且存在着巨大的回报: 收集通信数据的RFID传感器, 收集天气信息的传感器, 移动设备给社交网站发送的GPRS数据包, 图片视频, 在线购物产生的交易记录, 应有尽有! 大数据是一个巨大的数据集, 包含了任何数据源产生的信息, 当然前提是这些信息是我们感兴趣的。
然而大数据的含义绝不只与体积相关, 因为大数据还能够用于寻找新的真知、 形成新的数据和内容; 我们能够使用从大数据中提取的真知、 数据和内容去使商业更加灵活, 以及回答那些之前被认为远超当前范畴的问题。这也是大数据被从以下4个方面定义的原因: Volume( 体积) 、 Variety( 多样) 、 Velocity( 效率) 以及Veracity( Value, 价值) , 也就是大数据的4V。下面将简述每个特性以及所面临的挑战:
1.1、 Volume( 体积)
Volume说的是一个业务必须捕获、 存储及访问的数据量, 仅仅在过去两年内就生产了世界上所有数据的90%。现今的机构已完全被数据的体积所淹没, 轻易的就会产生TB甚至是PB级不同类型的数据, 而且其中有些数据需要被组织、 防护( 窃取) 以及分析。
1.2、 Variety( 多样)
世界上产生的数据有80%都是半结构化的, 传感器、 智能设备和社交媒体都是经过Web页面、 网络日志文件、 社交媒体论坛、 音频、 视频、 点击流、 电子邮件、 文档、 传感系统等生成这些数据。传统的分析方案往往只适合结构化数据, 举个例子: 存储在关系型数据库中的数据就有完整的结构模型。数据类型的多样化同样意味着为支持当下的决策制定及真知处理, 我们需要在数据储存和分析上面进行根本的改变。Variety代表了在传统关系数据库中无法轻易捕获和管理的数据类型, 使用大数据技术却能够轻松的储存和分析。
1.3、 Velocity( 效率)
Velocity则需要对数据进行近实时的分析, 亦称”sometimes 2 minutes is too late!”。获取竞争优势意味着你需要在几分钟, 甚至是几秒内识别一个新的趋势或机遇, 同样还需要尽可能的快于你竞争对手。另外一个例子是时间敏感性数据的处理, 比如说捕捉罪犯, 在这里数据必须被收集后就完成被分析, 这样才能获取最大价值。对时间敏感的数据保质期往往都很短, 这就需求组织或机构使用近实时的方式对其分析。
1.4、 Veracity( 价值)
经过分析数据我们得出如何的抓住机遇及收获价值, 数据的重要性就在于对决策的支持; 当你着眼于一个可能会对你企业产生重要影响的决策, 你希望获得尽可能多的信息与用例相关。单单数据的体积并不能决定其是否对决策产生帮助, 数据的真实性和质量才是获得真知和思路最重要的因素, 因此这才是制定成功决策最坚实的基础。
2、 大数据关键技术
大数据技术, 就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新的技术, 它们成为大数据采集、 存储、 处理和呈现的有力武器。
大数据处理关键技术一般包括: 大数据采集、 大数据预处理、 大数据存储及管理、 大数据分析及挖掘、 大数据展现和应用( 大数据检索、 大数据可视化、 大数据应用、 大数据安全等) 。
2.1、 大数据采集技术
数据是指经过RFID射频数据、 传感器数据、 社交网络交互数据及移动互联网数据等方式获得的各种类型的结构化、 半结构化( 或称之为弱结构化) 及非结构化的海量数据, 是大数据知识服务模型的根本。重点要突破分布式高速高可靠数据爬取或采集、 高速数据全映像等大数据收集技术; 突破高速数据解析、 转换与装载等大数据整合技术; 设计质量评估模型, 开发数据质量技术。
大数据采集一般分为大数据智能感知层: 主要包括数据传感体系、 网络通信体系、 传感适配体系、 智能识别体系及软硬件资源接入系统, 实现对结构化、 半结构化、 非结构化的海量数据的智能化识别、 定位、 跟踪、 接入、 传输、 信号转换、 监控、 初步处理和管理等。必须着重攻克针对大数据源的智能识别、 感知、 适配、 传输、 接入等技术。基础支撑层: 提供大数据服务平台所需的虚拟服务器, 结构化、 半结构化及非结构化数据的数据库及物联网络资源等基础支撑环境。重点攻克分布式虚拟存储技术, 大数据获取、 存储、 组织、 分析和决策操作的可视化接口技术, 大数据的网络传输与压缩技术, 大数据隐私保护技术等。
2.2、 大数据预处理技术
主要完成对已接收数据的辨析、 抽取、 清洗等操作。1) 抽取: 因获取的数据可能具有多种结构和类型, 数据抽取过程能够帮助我们将这些复杂的数据转化为单一的或者便于处理的构型, 以达到快速分析处理的目的。2) 清洗: 对于大数据, 并不全是有价值的, 有些数据并不是我们所关心的内容, 而另一些数据则是完全错误的干扰项, 因此要对数据经过过滤”去噪”从而提取出有效数据。
2.3、 大数据存储及管理技术
大数据存储与管理要用存储器把采集到的数据存储起来, 建立相应的数据库, 并进行管理和调用。重点解决复杂结构化、 半结构化和非结构化大数据管理与处理技术。主要解决大数据的可存储、 可表示、 可处理、 可靠性及有效传输等几个关键问题。开发可靠的分布式文件系统( DFS) 、 能效优化的存储、 计算融入存储、 大数据的去冗余及高效低成本的大数据存储技术; 突破分布式非关系型大数据管理与处理技术, 异构数据的数据融合技术, 数据组织技术, 研究大数据建模技术; 突破大数据索引技术; 突破大数据移动、 备份、 复制等技术; 开发大数据可视化技术。
开发新型数据库技术, 数据库分为关系型数据库、 非关系型数据库以及数据库缓存系统。其中, 非关系型数据库主要指的是NoSQL数据库, 分为: 键值数据库、 列存数据库、 图存数据库以及文档数据库等类型。关系型数据库包含了传统关系数据库系统以及NewSQL数据库。
开发大数据安全技术。改进数据销毁、 透明加解密、 分布式访问控制、 数据审计等技术; 突破隐私保护和推理控制、 数据真伪识别和取证、 数据持有完整性验证等技术。
2.4、 大数据分析及挖掘技术
大数据分析技术。改进已有数据挖掘和机器学习技术; 开发数据网络挖掘、 特异群组挖掘、 图挖掘等新型数据挖掘技术; 突破基于对象的数据连接、 相似性连接等大数据融合技术; 突破用户兴趣分析、 网络行为分析、 情感语义分析等面向领域的大数据挖掘技术。
数据挖掘就是从大量的、 不完全的、 有噪声的、 模糊的、 随机的实际应用数据中, 提取隐含在其中的、 人们事先不知道的、 但又是潜在有用的信息和知识的过程。数据挖掘涉及的技术方法很多, 有多种分类法。根据挖掘任务可分为分类或预测模型发现、 数据总结、 聚类、 关联规则发现、 序列模式发现、 依赖关系或依赖模型发现、 异常和趋势发现等等; 根据挖掘对象可分为关系数据库、 面向对象数据库、 空间数据库、 时态数据库、 文本数据源、 多媒体数据库、 异质数据库、 遗产数据库以及环球网Web; 根据挖掘方法分, 可粗分为:机器学习方法、 统计方法、 神经网络方法和数据库方法。机器学习中, 可细分为:归纳学习方法(决策树、 规则归纳等)、 基于范例学习、 遗传算法等。统计方法中, 可细分为:回归分析(多元回归、 自回归等)、 判别分析(贝叶斯判别、 费歇尔判别、 非参数判别等)、 聚类分析(系统聚类、 动态聚类等)、 探索性分析(主元分析法、 相关分析法等)等。神经网络方法中, 可细分为:前向神经网络(BP算法等)、 自组织神经网络(自组织特征映射、 竞争学习等)等。数据库方法主要是多维数据分析或OLAP方法, 另外还有面向属性的归纳方法。
从挖掘任务和挖掘方法的角度, 着重突破: 1.可视化分析。数据可视化无论对于普通用户或是数据分析专家, 都是最基本的功能。数据图像化能够让数据自己说话, 让用户直观的感受到结果。2.数据挖掘算法。图像化是将机器语言翻译给人看, 而数据挖掘就是机器的母语。分割、 集群、 孤立点分析还有各种各样五花八门的算法让我们精炼数据, 挖掘价值。这些算法一定要能够应付大数据的量, 同时还具有很高的处理速度。3.预测性分析。预测性分析能够让分析师根据图像化分析和数据挖掘的结果做出一些前瞻性判断。4.语义引擎。语义引擎需要设计到有足够的人工智能以足以从数据中主动地提取信息。语言处理技术包括机器翻译、 情感分析、 舆情分析、 智能输入、 问答系统等。5.数据质量和数据管理。数据质量与管理是管理的最佳实践, 透过标准化流程和机器对数据进行处理能够确保获得一个预设质量的分析结果。
2.5、 大数据展现与应用技术
大数据技术能够将隐藏于海量数据中的信息和知识挖掘出来, 为人类的社会经济活动提供依据, 从而提高各个领域的运行效率, 大大提高整个社会经济的集约化程度。在中国, 大数据将重点应用于以下三大领域: 商业智能、 政府决策、 公共服务。例如: 商业智能技术, 政府决策技术, 电信数据信息处理与挖掘技术, 电网数据信息处理与挖掘技术, 气象信息分析技术, 环境监测技术, 警务云应用系统( 道路监控、 视频监控、 网络监控、 智能交通、 反电信诈骗、 指挥调度等公安信息系统) , 大规模基因序列分析比对技术, Web信息挖掘技术, 多媒体数据并行化处理技术, 影视制作渲染技术, 其它各种行业的云计算和海量数据处理应用技术等。
3、 数据处理与分析
3.1、 传统方式
传统上, 为了特定分析目的进行的数据处理都是基于相当静态的蓝图。经过常规的业务流程, 企业经过CRM、 ERP和财务系统等应用程序, 创立基于稳定数据模型的结构化数据。数据集成工具用于从企业应用程序和事务型数据库中提取、 转换和加载数据到一个临时区域, 在这个临时区域进行数据质量检查和数据标准化, 数据最终被模式化到整齐的行和表。这种模型化和清洗过的数据被加载到企业级数据仓库。这个过程会周期性发生, 如每天或每周, 有时会更频繁。
( ETL, 是英文 Extract-Transform-Load 的缩写, 用来描述将数据从来源端经过抽取( extract) 、 转换( transform) 、 加载( load) 至目的端的过程。ETL是构建数据仓库的重要一环, 用户从数据源抽取出所需的数据, 经过数据清洗, 最终按照预先定义好的数据仓库模型, 将数据加载到数据仓库中去。)
在传统数据仓库中, 数据仓库管理员创立计划, 定期计算仓库中的标准化数据, 并将产生的报告分配到各业务部门。她们还为管理人员创立仪表板和其它功能有限的可视化工具。
同时, 业务分析师利用数据分析工具在数据仓库进行高级分析, 或者一般情况下, 由于数据量的限制, 将样本数据导入到本地数据库中。非专业用户经过前端的商业智能工具对数据仓库进行基础的数据可视化和有限的分析。传统数据仓库的数据量很少超过几TB, 因为大容量的数据会占用数据仓库资源而且降低性能。
从时间或成本效益上看, 传统的数据仓库等数据管理工具都无法实现大数据的处理和分析工作。也就是说, 必须将数据组织成关系表( 整齐的行和列数据) , 传统的企业级数据仓库才能够处理。由于需要的时间和人力成本, 对海量的非结构化数据应用这种结构是不切实际的。另外, 扩展传统的企业级数据仓库使其适应潜在的PB级数据需要在新的专用硬件上投资巨额资金。而由于数据加载这一个瓶颈, 传统数据仓库性能也会受到影响。
( 1ZB=1024EB , 1EB = 1024PB, 1PB = 1024TB , 1TB = 1024GB)
3.2、 Hadoop大数据新方法
在Hadoop 出现之前, 高性能计算和网格计算一直是处理大数据问题主要的使用方法和工具, 它们主要采用消息传递接口( Message Passing Interface, MPI) 提供的API 来处理大数据。高性能计算的思想是将计算作业分散到集群机器上, 集群计算节点访问存储区域网络SAN 构成的共享文件系统获取数据, 这种设计比较适合计算密集型作业。当需要访问像PB 级别的数据的时候, 由于存储设备网络带宽的限制, 很多集群计算节点只能空闲等待数据。而Hadoop却不存在这种问题, 由于Hadoop 使用专门为分布式计算设计的文件系统HDFS, 计算的时候只需要将计算代码推送到存储节点上, 即可在存储节点上完成数据本地化计算, Hadoop 中的集群存储节点也是计算节点。在分布式编程方面, MPI 是属于比较底层的开发库, 它赋予了程序员极大的控制能力, 可是却要程序员自己控制程序的执行流程, 容错功能, 甚至底层的套接字通信、 数据分析算法等底层细节都需要自己编程实现。这种要求无疑对开发分布式程序的程序员提出了较高的要求。相反, Hadoop 的MapReduce 却是一个高度抽象的并行编程模型, 它将分布式并行编程抽象为两个原语操作, 即map 操作和reduce 操作, 开发人员只需要简单地实现相应的接口即可, 完全不用考虑底层数据流、 容错、 程序的并行执行等细节。这种设计无疑大大降低了开发分布式并行程序的难度。
Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、 变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构, 将大数据处理引擎尽可能的靠近存储, 对例如像ETL( Extract-Transform-Load ) 这样的批处理操作相对合适, 因为类似这样操作的批处理结果能够直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎, 并将碎片任务(Map)发送到多个节点上, 之后再以单个数据集的形式加载(Reduce)到数据仓库里。
3.3、 大规模并行分析数据库
不同于传统的数据仓库, 大规模并行分析数据库能够以必须的最小的数据建模,快速获取大量的结构化数据, 能够向外扩展以容纳TB甚至PB级数据。
对最终用户而言最重要的是, 大规模并行分析数据库支持近乎实时的复杂SQL查询结果, 也叫交互式查询功能 , 而这正是Hadoop显著缺失的能力。大规模并行分析数据库在某些情况下支持近实时的大数据应用。大规模并行分析数据库的基本特性包括:
大规模并行处理的能力: 就像其名字表明的一样, 大规模并行分析数据库采用大规模并行处理同时支持多台机器上的数据采集、 处理和查询。相对传统的数据仓库具有更快的性能, 传统数据仓库运行在单一机器上, 会受到数据采集这个单一瓶颈点的限制。
无共享架构: 无共享架构可确保分析数据库环境中没有单点故障。在这种架构下, 每个节点独立于其它节点, 因此如果一台机器出现故障, 其它机器能够继续运行。对大规模并行处理环境而言, 这点特别重要, 数百台计算机并行处理数据, 偶然出现一台或多台机器失败是不可避免的。
列存储结构: 大多数大规模并行分析数据库采用列存储结构, 而大多数关系型数据库以行结构存储和处理数据。在列存储环境中, 由包含必要数据的列决定查询语句的”答案”, 而不是由整行的数据决定, 从而导致查询结果瞬间能够得出。这也意味着数据不需要像传统的关系数据库那样构造成整齐的表格。
强大的数据压缩功能: 它们允许分析数据库收集和存储更大量的数据, 而且与传统数据库相比占用更少的硬件资源。例如, 具有10比1的压缩功能的数据库, 能够将10 TB字节的数据压缩到1 TB。数据编码( 包括数据压缩以及相关的技术) 是有效的扩展到海量数据的关键。
商用硬件: 像Hadoop集群一样, 大多数( 肯定不是全部) 大规模并行分析数据库运行在戴尔、 IBM等厂商现成的商用硬件上, 这使她们能够以具有成本效益的方式向外扩展。
在内存中进行数据处理: 有些( 肯定不是全部) 大规模并行分析数据库使用动态RAM或闪存进行实时数据处理。有些(如SAP HANA)完全在内存中运行数据, 而其它则采用混合的方式, 即用较便宜但低性能的磁盘内存处理”冷”数据, 用动态RAM或闪存处理”热”数据。
然而, 大规模并行分析数据库确实有一些盲点。最值得注意的是, 她们并非被设计用来存储、 处理和分析大量的半结构化和非结构化数据。
3.4、 大数据方法的互补
Hadoop, NoSQL 和大规模并行分析数据库不是相互排斥的。相反的这三种方法是互补的, 彼此能够而且应该共存于许多企业。Hadoop擅长处理和分析大量分布式的非结构化数据, 以分批的方式进行历史分析。NoSQL 数据库擅长为基于Web的大数据应用程序提供近实时地多结构化数据存储和处理。而大规模并行分析数据库最擅长对大容量的主流结构化数据提供接近实时的分析。
例如, Hadoop完成的历史分析能够移植到分析数据库供进一步分析, 或者与传统的企业数据仓库的结构化数据进行集成。从大数据分析得到的看法能够而且应该经过大数据应用实现产品化。企业的目标应该是实现一个灵活的大数据架构, 在该架构中, 三种技术能够尽可能无缝地共享数据和看法。
很多预建的连接器能够帮助Hadoop开发者和管理员实现这种数据集成, 同时也有很多厂商提供大数据应用。这些大数据应用将Hadoop、 分析数据库和预配置的硬件进行捆绑, 能够达到以最小的调整实现快速部署的目的。另外一种情况, Hadapt提供了一个单一平台, 这个平台在相同的集群上同时提供SQL和Hadoop/MapReduce的处理功能。Cloudera也在Impala和Hortonworks项目上经过开源倡议推行这一策略。
可是, 为了充分利用大数据, 企业必须采取进一步措施。也就是说, 她们必须使用高级分析技术处理数据, 并以此得出有意义的看法。数据科学家经过屈指可数的语言或方法执行这项复杂的工作。分析的结果能够经过工具可视化, 也能够经过大数据应用程序进行操作, 这些大数据应用程序包括自己开发的应用程序和现成的应用程序。
3.5、 大数据使用案例
让Hadoop和其它大数据技术如此引人注目的部分原因是, 她们让企业找到问题的答案, 而在此之前她们甚至不知道问题是什么。这可能会产生引出新产品的想法, 或者帮助确定改进运营效率的方法。不过, 也有一些已经明确的大数据用例, 无论是互联网巨头如谷歌, Facebook和阿里巴巴还是更多的传统企业。它们包括:
推荐引擎: 网络资源和在线零售商使用Hadoop根据用户的个人资料和行为数据匹配和推荐用户、 产品和服务。LinkedIn使用此方法增强其”你可能认识的人”这一功能, 而亚马逊利用该方法为网上消费者推荐相关产品。
情感分析: Hadoop与先进的文本分析工具结合, 分析社会化媒体和社交网络发布的非结构化的文本, 包括Tweets和Facebook, 以确定用户对特定公司, 品牌或产品的情绪。分析既能够专注于宏观层面的情绪, 也能够细分到个人用户的情绪。
风险建模: 财务公司、 银行等公司使用Hadoop和下一代数据仓库分析大量交易数据, 以确定金融资产的风险, 模拟市场行为为潜在的”假设”方案做准备, 并根据风险为潜在客户打分。
欺诈检测: 金融公司、 零售商等使用大数据技术将客户行为与历史交易数据结合来检测欺诈行为。例如, 信用卡公司使用大数据技术识别可能的被盗卡的交易行为。
营销活动分析: 各行业的营销部门长期使用技术手段监测和确定营销活动的有效性。大数据让营销团队拥有更大量的越来越精细的数据, 如点击流数据和呼叫详情记录数据, 以提高分析的准确性。
客户流失分析: 企业使用Hadoop和大数据技术分析客户行为数据并确定分析模型, 该模型指出哪些客户最有可能流向存在竞争关系的供应商或服务商。企业就能采取最有效的措施挽留欲流失客户。
社交图谱分析: Hadoop和下一代数据仓库相结合, 经过挖掘社交网络数据, 能够确定社交网络中哪些客户对其它客户产生最大的影响力。这有助于企业确定其”最重要”的客户, 不总是那些购买最多产品或花最多钱的, 而是那些最能够影响她人购买行为的客户。
用户体验分析: 面向消费者的企业使用Hadoop和其它大数据技术将之前单一 客户互动渠道( 如呼叫中心, 网上聊天, 微博等) 数据整合在一起, , 以获得对客户体验的完整视图。这使企业能够了解客户交互渠道之间的相互影响, 从而优化整个客户生命周期的用户体验。
网络监控: Hadoop 和其它大数据技术被用来获取, 分析和显示来自服务器, 存储设备和其它IT硬件的数据, 使管理员能够监视网络活动, 诊断瓶颈等问题。这种类型的分析, 也可应用到交通网络, 以提高燃料效率, 当然也能够应用到其它网络。
研究与发展: 有些企业( 如制药商) 使用Hadoop技术进行大量文本及历史数据的研究, 以协助新产品的开发。
当然, 上述这些都只是大数据用例的举例。事实上, 在所有企业中大数据最引人注目的用例可能尚未被发现。这就是大数据的希望。
4、 展望电力大数据时代
4.1、 电力大数据价值分析
电力系统作为经济发展和人类生活依赖的能量供给系统, 也具有大数据的典型特征。电力系统是最复杂的人造系统之一, 其具有地理位置分布广泛、 发电用电实时平衡、 传输能量数量庞大、 电能传输光速可达、 通讯调度高度可靠、 实时运行从不停止、 重大故障瞬间扩大等特点, 这些特点决定了电力系统运行时产生的数据数量庞大、 增长快速、 类型丰富, 完全符合大数据的所有特征, 是典型的大数据。在智能电网深入推进的形势下, 电力系统的数字化、 信息化、 智能化不断发展, 带来了更多的数据源, 例如智能电表从数以亿计的家庭和企业终端带来的数据, 电力设备状态监测系统从数以万计的发电机、 变压器、 开关设备、 架空线路、 高压电缆等设备中获取的高速增长的监测数据, 光伏和风电功率预测所需的大量的历史运行数据、 气象观测数据等。因此在电力系统数据爆炸式增长的新形势下, 传统的数据处理技术遇到瓶颈, 不能满足电力行业从海量数据中快速获取知识与信息的分析需求, 电力大数据技术的应用是电力行业信息化、 智能化发展的必然要求。
中国电机工程学会信息化专委会在 年3 月发布了《中国电力大数据发展白皮书》, 将 年定为”中国大数据元年”, 掀起了电力大数据的研究热潮。根据白皮书描述, 电力大数据的特征可概括为3V 和3E。3V 为体量大(Volume)、 速度快(Velocity) 和类型多(Variety) ; 3E 为数据即能量(Energy) 、 数据即交互(Exchange) 和数据即共情(Empathy)。其3V 的描述和其它行业的描述比较接近, 3E 的描述具有典型的电力行业特征, 体现了大数据在电力系统应用中的巨大价值。数据即能量简而言之, 就是指经过大数据分析达到节能的目的, 电力大数据应用的过程, 就是电力数据能量释放的过程; 数据即交互是指电力大数据与国民经济其它领域数据进行交互融合, 才能发挥其更大价值; 数据即共情是指电力大数据紧密联系千家万户、 厂矿企业, 只有情系用电户, 满足客户需求, 电力企业方能以数据取胜。电力大数据贯穿发、 输、 变、 配、 用等电力生产及管理的各个环节, 是能源变革中电力工业技术革新的必然过程, 不但是技术上的进步, 更是涉及电力系统管理体制、 发展理念和技术路线等方面的重大变革, 是下一代电力系统在大数据时代下价值形态的跃升。对建设坚强智能电网而言, 亟需开展大数据相关技术研究, 为电力大数据时代的到来奠定理论基础和技术积累。
4.2、 电力大数据应用前景
4.3、 电力大数据发展与挑战
5、 迈向电力大数据时代
5.1、 电力大数据关健技术
5.2、 电力大数据发展策略
6、 电力大数据实践
6.1、 实时海量数据是坚强智能电网的重要资产
6.2、 对实时数据的接入、 存储与处理、 监测与智能分析
6.3、 电网实时数据调研现状
( 1) 某省实时数据分布1
( 2) 某省实时数据分布2
( 3) 某市实时数据分布
6.4、 大数据服务IT创新、 提高生产效率
7、 大数据技术实现
7.1、 物理架构图
7.2、 数据处理向大数据处理的过渡
7.3、 大数据核心技术—Hadoop
8、 Hadoop介绍与案例分析
8.1、 Hadoop介绍
Hadoop是一个处理、 存储和分析海量的分布式、 非结构化数据的开源框架。最初由雅虎的Doug Cutting创立, Hadoop的灵感来自于 MapReduce , MapReduce是谷歌在 代初期开发的用于网页索引的用户定义函数。它被设计用来处理分布在多个并行节点的PB级和EB级数据。
Hadoop集群运行在廉价的商用硬件上, 这样硬件扩展就不存在资金压力。Hadoop现在是Apache软件联盟(The Apache Software Foundation)的一个项目, 数百名贡献者不断改进其核心技术。基本概念: 与将海量数据限定在一台机器运行的方式不同, Hadoop将大数据分成多个部分, 这样每个部分都能够被同时处理和分析。
8.2、 Hadoop核心技术
Hadoop的核心就是HDFS和MapReduce, 而两者只是理论基础, 不是具体可使用的高级应用, Hadoop旗下有很多经典子项目, 比如HBase、 Hive等, 这些都是基于HDFS和MapReduce发展出来的。要想了解Hadoop, 就必须知道HDFS和MapReduce是什么。
8.2.1、 HDFS
HDFS( Hadoop Distributed File System, Hadoop分布式文件系统) , 它是一个高度容错性的系统, 适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问, 适合那些有着超大数据集( large data set) 的应用程序。
HDFS的设计特点:
( 1) 、 大数据文件, 非常适合上T级别的大文件或者一堆大数据文件的存储, 如果文件只有几个G甚至更小就没啥意思了。
( 2) 、 文件分块存储, HDFS会将一个完整的大文件平均分块存储到不同计算器上, 它的意义在于读取文件时能够同时从多个主机取不同区块的文件, 多主机读取比单主机读取效率要高得多得都。
( 3) 、 流式数据访问, 一次写入多次读写, 这种模式跟传统文件不同, 它不支持动态改变文件内容, 而是要求让文件一次写入就不做变化, 要变化也只能在文件末添加内容。
( 4) 、 廉价硬件, HDFS能够应用在普通PC机上, 这种机制能够让给一些公司用几十台廉价的计算机就能够撑起一个大数据集群。
( 5) 、 硬件故障, HDFS认为所有计算机都可能会出问题, 为了防止某个主机失效读取不到该主机的块文件, 它将同一个文件块副本分配到其它某几个主机上, 如果其中一台主机失效, 能够迅速找另一块副本取文件。
HDFS关键元素:
Hadoop使用主/从( Master/Slave) 架构, 主要角色有NameNode, DataNode, Secondary NameNode, JobTracker, TaskTracker组成。
NameNode节点作为Master服务器, 有三部分功能。第一: 处理来自客户端的文件访问。第二: 管理文件系统的命名空间操作, 如'打开'、 '关闭'、 '重命名'等。第三: 负责数据块到数据节点之间的映射。从这个意义上说, 它扮演中心服务器的角色。
DataNode节点作为Slave服务器, 同样有三部分功能。第一: 管理挂载在节点上的存储设备。第二: 响应客户端的读写请求。第三: 从内部看, 每个文件被分成一个或多个数据块, 被存放到一组DataNode, 在Namenode的统一调度下进行数据块的创立、 删除和复制。
( 1) NameNode
NameNode是HDFS的守护程序, 是 Hadoop 中的主服务器, 它管理文件系统名称空间和对集群中存储的文件的访问
( 2) DataNode
集群中每个从服务器都运行一个DataNode后台程序, 后台程序负责把HDFS数据块读写到本地文件系统。需要读写数据时, 由NameNode告诉客户端去哪个DataNode进行具体的读写操作。
( 3) Block
将一个文件进行分块, 一般是64M
( 4) Secondary NameNode
Secondary NameNode是一个用来监控HDFS状态的辅助后台程序, 如果NameNode发生问题, 能够使用Secondary NameNode作为备用的NameNode。
( 5) JobTracker
JobTracker后台程序用来连接应用程序与Hadoop, 用户应用提交到集群后, 由JobTracker决定哪个文件处理哪个task执行, 一旦某个task失败, JobTracker会自动开启这个task。
( 6) TaskTracker
TaskTracker负责存储数据的DataNode相结合, 位于从节点, 负责各自的task。
在Hadoop的系统中,会有一台Master,主要负责NameNode的工作以及JobTracker的工作。JobTracker的主要职责就是启动、 跟踪和调度各个Slave的任务执行。还会有多台Slave,每一台Slave一般具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。
8.2.2、 MapReduce
MapReduce介绍:
MapReduce是一种编程模型, 用于大规模数据集的并行运算。MapReduce的设计目标是方便编程人员在不熟悉分布式并行编程的情况下,将自己的程序运行在分布式系统上。
MapReduce的命名规则由两个术语组成, 分别是Map(映射)与Reduce(化简), 是它们的主要思想, 都是从函数式编程语言里借来的。 当前的软件实现是指定一个Map( 映射) 函数, 用来把一组键值对映射成一组新的键值对, 指定并发的Reduce( 化简) 函数, 用来保证所有映射的键值对中的每一个共享相同的键组。
MapReduce处理过程:
( 1) Input输入
从文件中读取原始数据
原始数据 <InputKey, InputValue>
( 2) Map映射
将原始数据映射成用于Reduce的数据
<InputKey, InputValue> List<<MapKey, MapValue>>
( 3) Reduce合并
将相同Key值的中间数据合并成最终数据
<MapKey, List<MapValue>> <OutputKey, OutputValue>
( 4) Output输出
将最终处理结果输出到文件
<OutputKey, OutputValue> 结果文件
上述就是MapReduce大致处理过程,在Map前还可能会对输入的数据有Split(分割)的过程,保证任务并行效率,在Map之后还会有Shuffle(混合)的过程,对于提高Reduce的效率以及减小数据传输的压力有很大的帮助。后面会具体提及这些部分的细节。
MapReduce简单案例1:
通俗说MapReduce是一套从海量·源数据提取分析元素最后返回结果集的编程模型, 将文件分布式存储到硬盘是第一步, 而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。
下面以一个计算海量数据最大值为例: 一个银行有上亿储户, 银行希望找到存储金额最高的金额是多少, 按照传统的计算方式, 我们会这样:
Java代码 :
Long moneys[] ...
Long max = 0L;
for(int i=0;i<moneys.length;i++){
if(moneys[i]>max){
max = moneys[i];
}
}
如果计算的数组长度少的话, 这样实现是不会有问题的, 还是面对海量数据的时候就会有问题。
MapReduce会这样做: 首先数字是分布存储在不同块中的, 以某几个块为一个Map, 计算出Map中最大的值, 然后将每个Map中的最大值做Reduce操作, Reduce再取最大值给用户。
MapReduce的基本原理就是: 将大的数据分析分成小块逐个分析, 最后再将
展开阅读全文