Hadoop 是否可以使用流集将数据提取到本地系统?

Hadoop 是否可以使用流集将数据提取到本地系统?,hadoop,cloudera,cloudera-cdh,streamsets,Hadoop,Cloudera,Cloudera Cdh,Streamsets,我们的团队正在探索HDFS获取本地数据的选项。有人建议我们使用Streamset,但团队中没有人对此有想法。有人能帮我了解一下,这是否符合我们的要求,即从HDFS获取数据到本地系统 只是一个补充问题。 我在本地安装了流集。例如,在本地ip:xxx.xx.x.xx:18630上,它可以在一台机器上正常工作。但当我试图从网络上的其他机器访问此URL时,它不起作用。而我的另一个应用程序,如Shiny server等,也可以使用相同的机制正常工作。我认为默认情况下,Streamset只在本地主机上公开其

我们的团队正在探索HDFS获取本地数据的选项。有人建议我们使用Streamset,但团队中没有人对此有想法。有人能帮我了解一下,这是否符合我们的要求,即从HDFS获取数据到本地系统

只是一个补充问题。
我在本地安装了流集。例如,在本地ip:xxx.xx.x.xx:18630上,它可以在一台机器上正常工作。但当我试图从网络上的其他机器访问此URL时,它不起作用。而我的另一个应用程序,如Shiny server等,也可以使用相同的机制正常工作。

我认为默认情况下,Streamset只在本地主机上公开其服务。您需要浏览配置文件,以找到可以将其设置为侦听外部地址的位置

如果您使用的是CDH Quickstart VM,则需要从外部转发该端口

无论如何,streamset实际上是作为集群在专用服务器上运行的,以获得最佳性能。它的生产部署与Hortonworks HDF中提供的Apache Nifi相当

因此,除了测试/评估目的之外,使用本地FS目的地没有任何意义

如果希望HDFS作为本地设备公开,请考虑安装NFS网关。或者,您可能可以使用流集写入FTP/NFS


目前还不清楚您试图获取什么数据,但许多BI工具可以执行CSV导出,或者可以使用Hue从HDFS下载文件。至少,
hdfs dfs-getmerge
是将数据从hdfs获取到本地的一种最简单的方法,但是,在理想情况下,Hadoop通常会存储大量TB的数据,如果您使用更小的数据,然后将这些结果转储到数据库中通常是比在平面文件中移动更好的选择

是-您可以使用StreamSets data Collector将数据从HDFS读取到本地文件系统。然而,正如在他的回答中提到的那样,你应该仔细考虑这是否是你真正想要做的,因为单个Hadoop文件可以比你的本地磁盘更大。p> 回答第二个问题时,默认情况下Data Collector侦听所有地址。在
sdc.properties
config文件中有一个
http.bindHost
设置,您可以使用该设置来限制Data Collector侦听的地址,但默认情况下会将其注释掉

您可以使用
netstat
进行检查-这是我在Mac上看到的,数据采集器监听所有地址:

$ netstat -ant | grep 18630
tcp46      0      0  *.18630                *.*                    LISTEN    
输出中
18630
前面的通配符
*
表示数据采集器将接受任何地址上的连接


如果您直接在计算机上运行Data Collector,则最可能的问题是防火墙设置。如果您在VM或Docker上运行Data Collector,则需要查看VM/Docker网络配置。

默认情况下,Data Collector实际侦听所有地址-您必须编辑
sdc.properties
以限制它。