Curl WEBHDFS REST API,用于将文件从windows服务器/本地文件夹/桌面复制/移动到HDFS

Curl WEBHDFS REST API,用于将文件从windows服务器/本地文件夹/桌面复制/移动到HDFS,curl,hdfs,hadoop2,jira-rest-api,webhdfs,Curl,Hdfs,Hadoop2,Jira Rest Api,Webhdfs,使用WEBHDFS REST API调用,我可以将文件从Windows计算机(即Windows服务器或Windows本地文件夹或桌面)传输或复制到Hadoop HDFS文件系统吗 如果是,是否有任何示例命令信息 我已经尝试过,并且能够使用 Windows->(使用ftp)->Linux目录->(使用webhdfs)->HDFS,这是两步过程,我正在寻找直接从Windows->(webhdfs)->HDFS的一步过程 我也参考了一些有用的信息 示例:如果我的文件位于E:\user\accounts

使用WEBHDFS REST API调用,我可以将文件从Windows计算机(即Windows服务器或Windows本地文件夹或桌面)传输或复制到Hadoop HDFS文件系统吗

如果是,是否有任何示例命令信息

我已经尝试过,并且能够使用
Windows->(使用ftp)->Linux目录->(使用webhdfs)->HDFS,这是两步过程,我正在寻找直接从Windows->(webhdfs)->HDFS的一步过程

我也参考了一些有用的信息

示例:如果我的文件位于E:\user\accounts.txt中,并且我希望使用webhdfs将此文件移动到HDFS/user/kumar/文件夹中

目前我正在做的是 步骤1)从Windows到linux目录的ftp帐户文件。
步骤2)运行curl命令将文件从linux计算机移动到HDFS文件夹

有没有关于一步到位的建议? 步骤1)Windows->HDFS一步使用webhdfs

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;

public class FileWriteToHDFS 
{
    public static void main(String[] args) throws Exception 
    {
        String src = args[0];
        String dest = args[1];

        Console console = System.console();
        String username = console.readLine("Username: ");
        String password = new String(console.readPassword("Password: "));
        String domain = console.readLine("Authentication Domain: ");

        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain, username, password);
        SmbFile srcSMB = new SmbFile (src, auth);

        InputStream in = new SmbFileInputStream(srcSMB);

        Configuration myConf = new Configuration();

        FileSystem fs = FileSystem.get(URI.create(dest), myConf);
        OutputStream out = fs.create(new Path(dest));
        try
        {
            IOUtils.copyBytes(in, out, 4096, false);
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            IOUtils.closeStream(in);
        }
    }
}

此代码使用JCIFS通过smb协议复制到HDFS

我们可以使用scp命令将文件从windows文件系统复制到HDFS

scp source_file_name user@/path/file_name
我们也可以使用winscp工具来实现这一点。您可以安装它并与hdfs服务器建立连接,然后传输文件