我们的团队正在探索hdfs本地数据获取的选项。我们被建议使用streamset,但团队中没有人对此有想法。有谁能帮我了解一下,这是否符合我们的要求,即从hdfs获取数据到我们的本地系统?
只是一个附加问题。
我在本地设置了流集。例如,在本地ip:.xx.x.xx:18630上,它在一台机器上运行良好。但是当我尝试从网络上的其他机器访问这个url时,它就不起作用了。而我的另一个应用程序,如shiny server等,也可以使用相同的机制正常工作。
我们的团队正在探索hdfs本地数据获取的选项。我们被建议使用streamset,但团队中没有人对此有想法。有谁能帮我了解一下,这是否符合我们的要求,即从hdfs获取数据到我们的本地系统?
只是一个附加问题。
我在本地设置了流集。例如,在本地ip:.xx.x.xx:18630上,它在一台机器上运行良好。但是当我尝试从网络上的其他机器访问这个url时,它就不起作用了。而我的另一个应用程序,如shiny server等,也可以使用相同的机制正常工作。
2条答案
按热度按时间gzszwxb41#
是-您可以使用streamsets data collector的hadoop fs独立源将数据从hdfs读取到本地文件系统。不过,正如cricket\u007在他的回答中提到的那样,您应该仔细考虑这是否是您真正想要做的,因为单个hadoop文件很容易比您的本地磁盘大!
回答第二个问题时,默认情况下,data collector侦听所有地址。有一个
http.bindHost
设置在sdc.properties
可用于限制data collector侦听的地址的配置文件,但默认情况下会将其注解掉。你可以用
netstat
检查-这是我在mac上看到的,data collector监听所有地址:那个通配符,
*
在门前18630
在输出中表示数据采集器将接受任何地址上的连接。如果您直接在计算机上运行data collector,那么最可能的问题是防火墙设置。如果您在vm或docker上运行data collector,则需要查看vm/docker网络配置。
i34xakig2#
我相信默认情况下streamset只在localhost上公开它的服务。您需要浏览配置文件,找到可以将其设置为侦听外部地址的位置
如果您使用的是cdhquickstart虚拟机,则需要从外部转发该端口。
不管怎样,streamset实际上是作为一个集群在专用服务器上运行的,以获得最佳性能。它的生产部署与hortonworkshdf中提供的apachenifi相当。
所以不,将本地fs目的地用于测试/评估目的之外的任何目的都是没有意义的。
如果您希望hdfs作为本地设备公开,请考虑安装nfs网关。或者您也可以使用streamset写入ftp/nfs。
目前还不清楚您要获取的数据是什么,但是许多bi工具可以执行csv导出,或者可以使用hue从hdfs下载文件。至少,
hdfs dfs -getmerge
是将数据从hdfs传输到本地的一种最简单的方法,然而,hadoop通常在理想情况下存储许多tb大小的数据,如果您使用的是更小的数据,那么将这些结果转储到数据库中通常是比在flatfiles中移动更好的选择