2015-05-08 55 views
4

我是Hadoop的新手。現在我正在嘗試在eclipse中執行一個應用程序,在該應用程序中我想使用HDFS中的數據。如果我們想用Java連接到數據庫,我們有JDBC連接。像那樣,我需要做什麼才能直接連接到HDFS?將Hadoop中的文件導入Web應用程序

回答

3

在Hadoop中,首先,您必須確保Hadoop已啓動並正在運行。 Apache Hadoop提供了Java類--FileSystem來從Java應用程序訪問HDFS中的文件。下面是一個例子,我使用FileSystem和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); 
      } 
     } 
} 
+1

爲什麼我們需要提供核心站點和hdfs站點路徑? – MChirukuri

+1

我正在告訴系統hadoop的安裝位置,所以我指定了JDBC連接中的路徑,您需要給出您嘗試連接的系統的IP /端口。希望這能回答你的問題。 – Nidhi

+1

我明白了。謝謝 – MChirukuri

1

與另一個數據庫一樣,以HDFS文件作爲記錄(行)訪問的另一種替代解決方案。 您可以使用Hadoop配置Hive並啓動HiveServer2,然後在任何應用程序中使用Thrift API以表格的形式訪問HDFS中的數據。

參考鏈接: https://cwiki.apache.org/confluence/display/Hive/HiveClient

而且HIVE ODBC驅動程序可從幾個流行的Hadoop分銷商(Cloudera的,微軟HDInsight,Hortonworks)也是如此。

相關問題