使用Java将数据流式传输到HPCC

高性能计算集群(HPCC)是类似于Hadoop的分布式处理框架,除了它运行以自己的称为企业控制语言(ECL)的特定领域语言(DSL)编写的程序外。 ECL很棒,但是偶尔您会想用其他语言来执行繁重的任务。 例如,您可能想利用Java编写的NLP库。

此外,HPCC通常针对类似于HDFS的文件系统上的数据进行操作。 就像使用HDFS一样,一旦您超越了日志文件处理和静态数据快照的范围,您就会Swift产生对数据库后端的渴望。

实际上,我想说这是一个普遍的行业趋势:HDFS-> HBase,S3-> Redshift等。最终,您希望减少分析的延迟(接近零)。 为此,您需要设置某种分布式数据库,该数据库能够支持批处理以及数据流/微分批处理。 而且,您采用了一种不变/递增的数据存储方法,使您可以折叠基础结构,并在分析数据时将数据流传输到系统中(简化了处理过程)

但是我离题了,作为朝这个方向迈出的一步……

我们可以利用HPCC中的Java集成功能来支持Java中的用户定义函数。 同样,我们可以利用相同的功能来添加其他后端存储机制(例如Cassandra)。 更具体地说,让我们看一下HPCC / Java集成的功能,以从外部源获取数据。

让我们首先看一下原始Java集成。

如果您具有HPCC环境设置,则Java集成将从/ opt / HPCCSystems / classes路径开始。 您可以将类和jar文件拖放到该位置,并且可以从ECL中使用这些功能。 请按照此页面上的说明进行操作 。

如果遇到问题,请参阅该页面上的故障排除指南。 最困难的部分是让HPCC查找您的班级。 对我来说,我遇到了一个讨厌的JDK版本问题。 默认情况下,HPCC在我的Ubuntu计算机上选择了旧的JDK版本。 由于它使用的是旧版本,因此HPCC找不到使用“新” JDK(1.7)编译的类,这导致了一条模糊的消息:“无法解析类名”。 如果遇到此问题,请拉出我提交的针对Ubuntu修复的补丁 。

完成该工作后,您将可以使用以下语法从ECL调用Java:

IMPORT java;
integer add1(integer val) := IMPORT(java, 'JavaCat.add1:(I)I');
output(add1(10));

这非常好用,而且正如文档所建议的,如果数据复杂,则可以从Java方法返回XML。 但是,如果您拥有大量的数据,而不是驻留在内存中,该怎么办? 好吧,那么您需要将Java流传输到HPCC。 ;)

而不是从导入的方法返回实际数据,我们返回一个Java Iterator。 然后,HPCC使用Iterator构造数据集。 以下是一个示例Iterator。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class DataStream implements Iterator {private int position = 0;private int size = 5;public static Iterator stream(String foo, String bar){return new DataStream();}@Overridepublic boolean hasNext() {position++;return (position < size);}@Overridepublic Row next() {return new Row("row");}@Overridepublic void remove() {}}

这是一个标准的Iterator,但请注意它返回一个Row对象,其定义如下:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Row {private String value;public Row(String value){this.value = value;}
}

该对象是一个Java bean。 HPCC将在映射到DATASET时设置成员变量的值。 要确切了解这种情况如何发生,让我们看一下ECL代码:

IMPORT java;rowrec := recordstring value;
end;DATASET(rowrec) stream() := IMPORT(java, 'DataStream.stream:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Iterator;');output(stream());

在import语句之后,我们定义了一种称为rowrec的记录类型。 在以下行中,我们导入UDF,然后将结果键入为包含rowrecs的DATASET。 rowrec中的字段名称必须与java bean上成员变量的名称匹配。 HPCC将使用迭代器,并使用next()方法的返回值填充数据集。 ECL的最后一行输出返回的结果。

我已将以上所有代码提交给github存储库 ,其中包含一些有关使其运行的说明。 玩得开心。

敬请期待更多…

想象一下,将这里概述的java流功能与将数据流出Cassandra的能力结合在一起,就像我之前的文章中所详细描述的那样 。 结果是一种强大的方法,可以使用Thor对存储在Cassandra中的数据(具有数据局部性!)运行批处理分析(可能对通过实时实时事件流获取的数据启用ECL作业!=)

翻译自: https://www.javacodegeeks.com/2015/05/streaming-data-into-hpcc-using-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

anychart说明文档

今天学习anychart&#xff0c;在慧都控件网上看有关文档&#xff0c;模仿试着做了个demo&#xff0c;发现慧都空间网的“Flash图表AnyChart应用教程六&#xff1a;创建圆形仪表”里的指针“<pointer type"bar" value"35" color"Gray" />”…

h5 神策埋点_咕咚技术总监唐平麟:神策使我们的数据平台成本降低约 75%,迭代效率提升 2~3 倍...

在这个数据爆炸的时代&#xff0c;数据成为各行各业出奇制胜的法宝&#xff0c;运动行业也不例外&#xff0c;那么大数据对运动业有什么价值呢&#xff1f;咕咚作为智能运动的倡导者和先行者&#xff0c;致力于成为全球领先的运动大数据和服务平台&#xff0c;现已为超过 1.5 亿…

JavaFX,Jigsaw项目和JEP 253

因此&#xff0c; Java 9可能会破坏您的代码 …… 如果您的项目使用JavaFX&#xff0c;则这尤其可能&#xff0c;因为许多自定义项和自制控件都需要使用内部API。 借助Project Jigsaw&#xff0c;这些内容将无法在Java 9中访问。幸运的是&#xff0c; Oracle在几天前宣布了 JE…

微型计算机技术6,微型计算机技术课后习题6-8章答案.ppt

微型计算机技术课后习题6-8章答案MOV AL L2: MOV CX,8 L1: OUT 20H,AL CALL DELAY2S ROR AL,1 LOOP L1 JMP L2 习题:8.24 8253A-5的计数通道0连接如图习8-4所示,试回答:(1)计数通道0工作于何种方式&#xff0c;并写出工作方式名称&#xff1b;(2)写出计数通道0的计数初值(列出计…

免费的.NET混淆和反编译工具

免费的.NET代码混淆工具&#xff1a; Eazfuscator.NET http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx Skater .NET Obfuscator Freeware Light Edition http://www.rustemsoft.com/freeware_obfuscator.htm VisualStudio2010中集成的Dotfuscator…

ios 获取是否静音模式_果粉感动:部分iOS“新功能”早已被安卓玩坏

一年一度的WWDC大会如期举行&#xff0c;今年不仅展示了全新的iOS、iPadOS以及macOS。当然&#xff0c;具体更新了什么相信早已经被各大媒体报道出来&#xff0c;本文并不是重复报道&#xff0c;相反的&#xff0c;iOS经过了13代的发展&#xff0c;有开创性的动作&#xff0c;也…

怎么把桌面计算机隐藏文件,怎么隐藏桌面文件夹名称?隐藏桌面图标下的文字的详细教程...

怎么隐藏桌面文件夹名称&#xff1f;桌面图标一多就会显得很凌乱&#xff0c;特别有的软件名称很长&#xff0c;那么有没有什么方法可以让桌面看起来很清爽呢&#xff1f;当然是有&#xff0c;去掉桌面应用的名称不就简洁清爽了&#xff1f;下面就教大家不利用第三方软件的情况…

Hazelcast入门指南第7部分

这是解释如何使用Hazelcast的系列文章的续篇。 如果一个人没有阅读其他六个帖子&#xff0c;请转到目录并阅读其他帖子。 不同的地图种类 Hazelcast的MultiMap打破了以前使用java.util.Collection接口的常规方式。 实际上&#xff0c;在我看来&#xff0c;MultiMap的概念完全打…

JS将指定的时间戳转为UTC时间

Js中获取时间戳可用var dayMiliseconds parseInt(new Date().valueOf());Js的时间戳单位为毫秒&#xff08;1s 1000 ms&#xff09;,下面是一个将制定的格式转化成UTC时间的函数。 //format the date string from webservice to UTC time; function toUTCtime(dateStr) {//Da…

02365计算机软件基础,自考02365《计算机软件基础(二)》习题解答.pdf

1。互交机人了便方 &#xfffd;口接的间之统系机算计和户用为作还统系作操时同 &#xfffd;理管的源资类四等件文 &#xfffd;备设O/I &#xfffd;器储存 &#xfffd;机理处对现实 &#xfffd;源资件软 、件硬的机算计理管和制控统系作操 &#xfffd;】答解【&#xfff…

window xp系统安装php环境_Windows Server 2003及XP系统如何安装SQL Server 2000数据库?

年头年初节假日就是小编的梗&#xff0c;忙得不可开交&#xff0c;这不越冷越刮风昨天服务器又崩了&#xff0c;折腾了一天安装好Windows Server 2003和IIS(这系统是有点老了&#xff0c;主要是单位机子和各系统也有点年头了&#xff0c;没办法)&#xff0c;做好各项配置后总算…

REST服务的自动化测试

尽管我是Java和Scala开发人员&#xff0c;但我仍然对软件测试充满热情。 如果更精确-Web应用程序。 开发Web应用程序并确保应用程序具有良好的质量真的很有趣。 当我开始职业生涯时&#xff0c;最受欢迎的Web架构是MVC&#xff08;模型视图控件&#xff09;&#xff0c;并且非…

iOS 为tableview添加新的cell类

网址&#xff1a;http://www.howzhi.com/group/iosDevelop/discuss/2068转载于:https://www.cnblogs.com/liukunyang/p/3363881.html

怎么写计算机教学论文,如何写好一篇关于信息技术教育的论文

论文是一个汉语词语&#xff0c;拼音是ln wn&#xff0c;古典文学常见论文一词&#xff0c;谓交谈辞章或交流思想。当代&#xff0c;论文常用来指进行各个学术领域的研究和描述学术研究成果的文章&#xff0c;简称之为论文。今天小编给大家以信息技术教育为题的论文模板&#x…

JAXB做错了; 尝试Xembly

JAXB是一项具有10年历史的Java技术&#xff0c;它使我们能够将Java对象转换为XML文档&#xff08;编组&#xff09;并返回&#xff08;取消编组&#xff09;。 我认为这项技术基于setter和getter&#xff0c;并且通过将对象转换为被动数据结构而违反了面向对象编程的关键原理。…

rnn神经网络 层次_精讲深度学习RNN三大核心点,三分钟掌握循环神经网络

每天给小编五分钟&#xff0c;小编用自己的代码&#xff0c;让你轻松学习人工智能。本文将剖析循环神经网络(RNN)的工作原理&#xff0c;精讲循环神经网络的特点和实现方式。野蛮智能&#xff0c;小白也能看懂的人工智能。循环神经网络从何而来&#xff1f;我在我的这篇文章介绍…

我的偶像特质

1、泰国英拉&#xff1a;谦和品质&#xff0c;诚实&#xff0c;隐忍&#xff0c;有外交风范。 此前默默无闻的英拉依靠选举机器与个人魅力的完美协作&#xff0c;英拉完成了从女高管到女总理的身份飞越。 对手&#xff1a;“英拉从未利用媒体攻击商业对手&#xff0c;而是尽量避…

摆脱匿名类

我真的很喜欢编写和阅读lambda表达式-它们简洁&#xff0c;富于表现力和时尚&#xff08;来吧&#xff0c;这样就没关系了&#xff01;&#xff09;。 将此与匿名类进行比较。 这就是为什么我喜欢摆脱它们&#xff01; 在过去的几个月中&#xff0c;这种认识慢慢地实现了&…

惠普自动化测试软件官网,惠普最新测试管理工具 HP ALM 11.0 详细介绍

惠普应用生命周期管理(HPalm/" target"_blank" >ALM11)是业界首款集成的、跨技术和流程、可拓展的平台&#xff0c;使IT能够管理应用生命周期&#xff0c;并且从项目建议到运营全过程中贯穿应用交付。在拓展惠普软件应用组合(HPSoftwareApplicationsportfoli…

poj 题目分类(3)

OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj329…