[HADOOP] 자바 API를 사용하여 jdbc와 같은 hbase 쉘 명령을 직접 보내려면 어떻게해야합니까?
HADOOP자바 API를 사용하여 jdbc와 같은 hbase 쉘 명령을 직접 보내려면 어떻게해야합니까?
자바 API를 사용하여 jdbc와 같은 hbase 쉘 명령을 직접 보내려면 어떻게해야합니까?
public static void main(String args[]) {
// get Connection to connect hbase
Connection conn = ....;
// hbase shell command
String cmd = "get 't1','r1'";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(cmd);
while(rs.next()) {
...
}
}
거기에 자바 API가 없다면 목표를 달성 할 수있는 또 다른 방법이 있습니까?
해결법
-
==============================
1.그래도 자바에서 준비를하거나 텍스트 파일에 명령 목록을 넣고 RunTime.execute를 사용하고 싶다면 hbase shell
그래도 자바에서 준비를하거나 텍스트 파일에 명령 목록을 넣고 RunTime.execute를 사용하고 싶다면 hbase shell
내 대답 1을 보거나 2 가지를 대답하십시오. 나는 spark 제출 및 mapreduce 작업에 대해 그렇게 해왔다. 위에서 설명한 hbase 쉘 실행에 대해 같은 방법을 사용할 수 있습니다.
SQL에서 Hbase에 액세스하려면 Phoenix를 사용할 수 있습니다. - https://phoenix.apache.org/faq.html - 이것 좀 봐
임팔라 또는 하이브로 확인할 수도 있습니다.
import java.sql.*; public class PhoenixExample { public static void main(String[] args) { // Create variables Connection connection = null; Statement statement = null; ResultSet rs = null; PreparedStatement ps = null; try { // Connect to the database connection = DriverManager.getConnection("jdbc:phoenix:localhost"); // Create a JDBC statement statement = connection.createStatement(); // Execute our statements statement.executeUpdate("create table javatest (mykey integer not null primary key, mycolumn varchar)"); statement.executeUpdate("upsert into javatest values (1,'Hello')"); statement.executeUpdate("upsert into javatest values (2,'Java Application')"); connection.commit(); // Query for table ps = connection.prepareStatement("select * from javatest"); rs = ps.executeQuery(); System.out.println("Table Values"); while(rs.next()) { Integer myKey = rs.getInt(1); String myColumn = rs.getString(2); System.out.println("\tRow: " + myKey + " = " + myColumn); } } catch(SQLException e) { e.printStackTrace(); } finally { if(ps != null) { try { ps.close(); } catch(Exception e) {} } if(rs != null) { try { rs.close(); } catch(Exception e) {} } if(statement != null) { try { statement.close(); } catch(Exception e) {} } if(connection != null) { try { connection.close(); } catch(Exception e) {} } } } }
당신이 아래에 maven을 사용한다면 의존성이 있습니다 ...
<dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core</artifactId> <version>4.6.0-HBase-1.1</version> </dependency>
from https://stackoverflow.com/questions/39258139/how-to-use-java-api-to-send-hbase-shell-command-directly-like-jdbc by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 큰 csv 파일을 처리하기 위해 Python에서 Hadoop 사용하기 (0) | 2019.07.24 |
---|---|
[HADOOP] Hadoop mapReduce에서 위임 토큰 대신 Kerberos를 얻는 방법? (0) | 2019.07.24 |
[HADOOP] spark java api에서 재귀 적으로 HDFS에서 모든 파일 읽기 (0) | 2019.07.24 |
[HADOOP] Hadoop fs - 특정 파일 만 복사 (0) | 2019.07.23 |
[HADOOP] 돼지와 하둡 연결 오류 (0) | 2019.07.23 |