我正在使用ApacheDrill1.8编写程序。我正在尝试在未安装的hdfs中运行这个程序。我认为使用jar文件的方式,drill包含的jar文件可以运行这个程序,因为它是在虚拟机中运行的。但我对这种方式没有信心。它能工作吗?如果这种方法可行,如何在jar文件中包含drill?如果没有,用什么方法?另外一个问题是,如何使用java代码更改存储配置?
iqih9akk1#
不管是否在同一台机器上运行drill或hdfs。为什么需要创建一个jar。如果您使用maven作为构建工具,请添加drill jdbc驱动程序依赖项:
<dependency> <groupId>org.apache.drill.exec</groupId> <artifactId>drill-jdbc</artifactId> <version>1.8.0</version> </dependency>
示例代码:
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(); } } }
1条答案
按热度按时间iqih9akk1#
不管是否在同一台机器上运行drill或hdfs。
为什么需要创建一个jar。
如果您使用maven作为构建工具,请添加drill jdbc驱动程序依赖项:
示例代码: