在火花分析之前从 FTP 读取大文本文件
Posted
技术标签:
【中文标题】在火花分析之前从 FTP 读取大文本文件【英文标题】:Reading large text file from FTP before spark analysis 【发布时间】:2017-12-24 12:06:10 【问题描述】:我在我的系统中以独立模式(希望将来分发)运行 spark,以分析大于 5 GB 的超大文件。首先我需要将此文件从 FTP 复制到我的本地 e.g c:\spark\analysis\bigfile.txt
然后我将能够使用 spark 加载文件进行分析。
我的问题是如何在不耗尽内存的情况下有效地复制这么大的文件? 有可能在火花中做到吗?我应该使用像 kafka 这样的流媒体库吗?
同样的方式,我需要在完成 spark 分析后将一个大文件写入 ftp 服务器。
【问题讨论】:
Read csv file in Apache Spark from remote location (ftp) 【参考方案1】:您可以使用简单的 shell 命令,使用 Bluezone
或任何其他连接终端仿真器的边缘节点:
cat bigfile.txt | ssh yourUserName@yourServer 'hdfs dfs -put - /pathTo/hdfs'
虽然会慢一些,但它对我来说适用于 300GB 的文件。
注意:我这样做是因为我的文件位于未安装 Hadoop 的服务器中。如果您的服务器安装了 Hadoop,那么您可以简单地尝试 hdfs dfs -put
【讨论】:
【参考方案2】:通过标准输入管道:
块引用
wget ftp://user:password@ftpserver/your_file | hadoop fs -put - path_in_hdfs
块引用
单 - 告诉 HDFS put 从标准输入读取。
【讨论】:
以上是关于在火花分析之前从 FTP 读取大文本文件的主要内容,如果未能解决你的问题,请参考以下文章