eclipse—将hadoop中的文件导入web应用程序

monwx1rj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(362)

我是hadoop新手。现在,我正在尝试在eclipse中创建一个应用程序,其中我希望使用hdfs中的数据。如果我们想用java连接到数据库,我们有jdbc连接。这样,我需要做什么才能直接连接到hdfs?

fbcarpbf

fbcarpbf1#

在hadoop中,首先,您必须确保hadoop已经启动并运行。ApacheHadoop提供了java类文件系统来从java应用程序访问hdfs中的文件。下面是一个示例,我使用文件系统和ioutils访问/books/pg5000.txt。

import java.io.InputStream;
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;

public class FileSystemCat {

        public static void main(String[] args) throws Exception {
            Configuration conf = new Configuration();
            conf.addResource(new Path("/usr/local/hadoop/etc/hadoop/core-site.xml"));
            conf.addResource(new Path("/usr/local/hadoop/etc/hadoop/hdfs-site.xml"));
          String uri = "/books/pg5000.txt";
        FileSystem fs = FileSystem.get(URI.create(uri), conf);
        InputStream in = null;
        try {
            in = fs.open(new Path(uri));
            IOUtils.copyBytes(in, System.out, 4096, false);
            } finally {
            IOUtils.closeStream(in);
            }
        }
}
yuvru6vn

yuvru6vn2#

另一个替代解决方案是像其他数据库一样以记录(行)的形式访问hdfs文件。您可以使用hadoop配置hive并启动hiveserver2,然后在任何应用程序中使用thrift api以表的形式访问hdfs中的数据。
参考链接:https://cwiki.apache.org/confluence/display/hive/hiveclient
另外,一些流行的hadoop发行商(cloudera、microsoftwidinsight、hortonworks)也提供了hiveodbc驱动程序。

相关问题