2016-09-27 4 views
0

私はApacheドリル1.8を使ってプログラムを作っています。jarファイルでインストールされていないシステムでドリルを実行するには?

私はこのプログラムをドリルなしのHDFSにインストールしようとしています。

私はjarファイルを使用していると思いますが、jarファイルを含むドリルは仮想マシンで実行されているため、このプログラムを実行できます。

しかし、私はこのように自信がありません。それは働くことができますか?

この方法でうまくいけば、jarファイルにドリルを入れる方法は?

そうでない場合は、どのような方法ですか?

プラス質問、どのようにJavaコードを使用してストレージの設定を変更するには?

+0

どのようにドリルにアクセスして使用しているあなたは、建物のツールとしてMavenを使用している場合

、ドリルJDBCドライバの依存関係を追加? –

+0

私はJDBCを使用しています.. – jjj111144444

答えて

1

ドリルやhdfsが同じマシン上で実行されているかどうかは関係ありません。

なぜjarファイルを作成する必要がありますか?

<dependency> 
    <groupId>org.apache.drill.exec</groupId> 
    <artifactId>drill-jdbc</artifactId> 
    <version>1.8.0</version> 
</dependency> 

サンプルコード: - JDBC、RESTまたはその他の方法

public class TestJDBC { 

    // Host name of machine on which drill is running 
    public static final String DRILL_JDBC_LOCAL_URI = "jdbc:drill:drillbit=192.xxx.xxx.xxx"; 

    public static final String JDBC_DRIVER = "org.apache.drill.jdbc.Driver"; 

    public static void main(String[] args) throws SQLException { 

     try { 
      Class.forName(JDBC_DRIVER); 

     } catch (ClassNotFoundException ce) { 
      ce.printStackTrace(); 
     } 

     try (Connection conn = new Driver().connect(DRILL_JDBC_LOCAL_URI, null); 
       Statement stmt = conn.createStatement();) { 

      String sql = "select employee_id,first_name,last_name from cp.`employee.json` limit 10"; 
      ResultSet rs = stmt.executeQuery(sql); 

      while (rs.next()) { 
       System.out.print(rs.getInt("employee_id") + "\t"); 
       System.out.print(rs.getString("first_name") + "\t"); 
       System.out.print(rs.getString("last_name") + "\t"); 
       System.out.println(); 
      } 
      rs.close(); 

     } catch (SQLException se) { 
      se.printStackTrace(); 
     } 
    } 
} 
関連する問題