java - 如何使用 Java 将数据从 sas 服务器拉到 hdfs?

标签 java hadoop sas bigdata

我想从 sas Server 中提取数据并将其放入 HDFS。我想使用 java 代码实现相同的任何想法。

最佳答案

最简单的机制是安装 Hadoop 客户端库,然后通过客户端命令将 SAS 文件上传到 HDFS:hadoop fs -put <filename> </hdfs/path/filename>

如果您不想使用客户端命令,您始终可以编写自己的 java 应用程序来执行从 SAS 服务器到 HDFS 的上传。一段未经测试的示例代码,使用 fs.FileSystem.copyFromLocalFile 接口(interface)传输文件:

package org.mycompany;
import java.security.PrivilegedExceptionAction;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileStatus;

public class HDFSTransfer {

    public static void main(String args[]) {

        try {
            UserGroupInformation ugi
                = UserGroupInformation.createRemoteUser("myuser");

            ugi.doAs(new PrivilegedExceptionAction<Void>() {

                public Void run() throws Exception {

                    Configuration conf = new Configuration();
                    conf.set("fs.defaultFS", "hdfs://10.20.30.40:8020/user/myuser");
                    conf.set("hadoop.job.ugi", "myuser");

                    FileSystem fs = FileSystem.get(conf);

                    fs.copyFromLocalFile(new Path("/local/file/test"), new Path("/user/myuser/test"));

                    FileStatus[] status = fs.listStatus(new Path("/user/myuser"));
                    for(int i=0;i<status.length;i++){
                        System.out.println(status[i].getPath());
                    }
                    return null;
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

关于java - 如何使用 Java 将数据从 sas 服务器拉到 hdfs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359552/

相关文章:

sas - SAS 中的非线性多元回归

applet - 在没有 Java 的情况下运行小程序

java - 将 <provider> 添加到 Persistence.xml 时,它“显示 "Invalid content was found starting with element ' 提供程序”。”

hadoop - 如何基于 hive 中的3列查找先前的日期值

java - 用于将文件从 HDFS 复制到 AWS S3 的 Hadoop 服务器连接

K-Means 的 Hadoop 分布式版本?

authentication - SAS 传递语句中的无密码身份验证?

sql - 我需要一种方法来查找一行是否有值,如果有,那么我需要根据另一个值对所有行进行分组

Java 输入流被阻塞

java - LibGDX 获取最大纹理大小 - 空指针异常