首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WinSCP中将文件从EFS ( WebHDFS )上传到WebHDFS (Hue/Cloudera)?

如何在WinSCP中将文件从EFS ( WebHDFS )上传到WebHDFS (Hue/Cloudera)?
EN

Stack Overflow用户
提问于 2021-02-11 16:46:15
回答 1查看 163关注 0票数 1

我一直试图将这个问题分为两部分,以便实现自动化:

  1. PowerShell:将文件从本地桌面传输到EFS (通过WinSCP) - OK
  2. PowerShell:获取EFS上的相同文件(通过WinSCP)并将其放入Cloudera WebHDFS (我们使用Hue接口)- NOK

在这个部分(1)中,我创建了以下代码:

代码语言:javascript
复制
# Load WinSCP .NET assembly
Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"

# Set up session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
    Protocol = [WinSCP.Protocol]::Sftp
    HostName = "peanut-edgenode1.dundlermufflin.com"
    UserName = "JoeStreet"
    Password = "dundlermufflin123"
    SshHostKeyFingerprint = "ssh-ed28549 255 HJGF564hjfq8if1Y8KYALtf6zEv+z3o="
}

$sessionOptions.AddRawSettings("Cipher", "aes,chacha20,3des,WARN,des,blowfish,arcfour")
$sessionOptions.AddRawSettings("ProxyHost", "web.isa.la.proxy.dundlermufflin.com")
$sessionOptions.AddRawSettings("ProxyPort", "4200")
$sessionOptions.AddRawSettings("ProxyUsername", "na%5CJoeStreet")
$sessionOptions.AddRawSettings("ProxyPassword", "dundlermufflin123")

$session = New-Object WinSCP.Session

try
{
    # Connect
    $session.Open($sessionOptions)

    # Your code
    $session.PutFiles("C:\Users\JoeStreet\Documents\report-2021-02-02_no_locations.xlsx", "/efs/home/JoeStreet/report-2021-02-02_no_locations.xlsx").Check()
}
finally
{
    $session.Dispose()
}

But...if I希望从EFS (WinSCP)转移到Cloudera WebHDFS,通过PuTTY登录到peanut-edgenode1.dundlermufflin.com并执行以下操作:上面的部分(2)

代码语言:javascript
复制
hdfs dfs -put -f /efs/home/JoeStreet/report-2021-02-02_no_locations.xlsx /prd/product/ssa_stg/JoeStreet/

一切都很好。

但是如何在PowerShell中插入该命令呢?

我试着用不同的方式加入$session.PutFiles(origin, destiny).Check(),但没有成功.

EN

回答 1

Stack Overflow用户

发布于 2021-02-24 07:17:56

如果EFS有一个类似Linux的shell,则可以使用Session.ExecuteCommand

代码语言:javascript
复制
$session.ExecuteCommand("hdfs dfs -put -f /efs/home/JoeStreet/report-2021-02-02_no_locations.xlsx /prd/product/ssa_stg/JoeStreet/")

如果服务器有更不标准的地方,您可能需要使用适当的SSH (而不是SFTP)库,比如SSH.NET或Posh。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66158999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档