Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与使用java相比,hbase/hadoop中的流作业是否有任何功能损失?_Java_Python_Hadoop_Hbase_Thrift - Fatal编程技术网

与使用java相比,hbase/hadoop中的流作业是否有任何功能损失?

与使用java相比,hbase/hadoop中的流作业是否有任何功能损失?,java,python,hadoop,hbase,thrift,Java,Python,Hadoop,Hbase,Thrift,如果这是一个基本问题,请提前道歉。我正在读一本关于hbase和学习的书,但书中的大多数示例(以及在线)都倾向于使用Java(我猜是因为hbase是Java的本机)。这里有一些python示例,我知道我可以使用python(使用thrift或其他模块)访问hbase,但我想知道其他函数是什么 例如,hbase有一个“协处理器”功能,可以将数据推送到进行计算的位置。这种类型是否适用于python或其他使用流式hadoop作业的应用程序?java似乎可以知道您在做什么,并相应地管理数据流,但这在流媒体

如果这是一个基本问题,请提前道歉。我正在读一本关于hbase和学习的书,但书中的大多数示例(以及在线)都倾向于使用Java(我猜是因为hbase是Java的本机)。这里有一些python示例,我知道我可以使用python(使用thrift或其他模块)访问hbase,但我想知道其他函数是什么

例如,hbase有一个“协处理器”功能,可以将数据推送到进行计算的位置。这种类型是否适用于python或其他使用流式hadoop作业的应用程序?java似乎可以知道您在做什么,并相应地管理数据流,但这在流媒体中是如何工作的呢?如果它不起作用,有没有办法获得这种类型的功能(通过流媒体而不切换到另一种语言)

也许另一种问这个问题的方式是..一个非java程序员在流式处理时可以做些什么来获得hadoop特性的所有好处


提前谢谢

据我所知,您正在谈论两个(或更多)完全不同的概念

“”是否可以通过可执行文件流式传输数据(与您选择的编程语言无关)。当使用流时,不会有任何功能损失,因为该功能基本上映射/减少了您从hadoop流中获得的数据

对于hadoop部分,您甚至可以使用pig或hive大数据查询语言来高效地完成任务。使用最新版本的pig,您甚至可以用python编写自定义函数,并在pig脚本中使用它们

尽管有一些工具可以让您使用您熟悉的语言,但不要忘记hadoop框架主要是用java编写的。有时您可能需要编写专门的InputFormat;或者在pig中加入一个UDF,等等,那么一个好的java知识就会派上用场

您的“Hbase协处理器”示例与hadoop的流功能有点无关。Hbase协处理器由两部分组成:服务器端部分、客户端部分。我敢肯定,随着发布,hbase中会嵌入一些有用的服务器端协处理器;但除此之外,您还需要编写自己的协处理器(坏消息是,它是java)。对于客户端,我相信您可以通过节俭将它们与您最喜欢的编程语言一起使用,而不会有太多问题

因此,作为对您问题的回答:您可以始终回避学习java;仍在使用hadoop发挥其潜力(使用第三方库/应用程序)。但当大便击中风扇时,更好地理解其背后的内容;能够使用java进行开发。了解java可以让您完全控制hadoop/hbase环境


希望这对您有所帮助。

是的,您应该通过流式处理获得数据本地代码执行。您没有将数据推送到程序所在的位置,而是将程序推送到数据所在的位置。流只是获取本地输入数据并通过stdin将其运行到python程序中。它不是在java任务中运行的每个映射,而是向上旋转python程序的实例,并通过该实例泵送输入

如果你真的想做快速处理,你真的应该学习java。所有的东西都要通过标准食物和烈性酒来输送,这是一项很大的开销