簡體   English   中英

使用 Python 將文件從 SFTP 服務器復制到 HDFS

[英]Copy files from SFTP server to HDFS using Python

我正在使用 lftp 使用 mget 參數將文件從遠程位置復制到我的本地機器。 然后我使用hdfs dfs -cp localfolder/localfile to hdfsLocation 我希望能夠將這些文件復制到 HDFS,而不必將它們存儲在我的本地機器上。

我已經嘗試了下面的代碼,但我想通過我的本地機器繞過副本。 我也試過這個

subprocess.Popen("""lftp sftp://login:password@adressLocal -e "lcd hdfs://serverHDFS:8020/projects/folder/child/tmp/;mget /var/projects/stockage/folder/child/.success/"""+fileName.ext+""";bye " """,
                 shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

但它不起作用

謝謝你的幫助

import os
import subprocess
s=subprocess.Popen("""lftp sftp://login:password!@adress-e "lcd /projects/folder/child/tmp/;mget /var/projects/stockage/folder/child/.success/"""+fileName.ext+""";bye " """,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
cmd = 'hdfs dfs -put /var/projects/folder/file.ext hdfs://server:8020/projects/folder/tmp/'
subprocess.call(cmd, shell=True)

我建議您安裝 Apache Nifi、StreamSets 或 KNIME,它們允許您以圖形方式將 FTP 內容傳輸到 HDFS(以及其他更高級的 ETL 工作負載)

StreamSets 或 KNIME 會在幕后為你生成 Spark 代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM