idea 원격 연결hive

8306 단어
인터넷에서 아이디어 원격 연결 하이브를 소개하는 방법이 많지만 저는 한동안 노력해서 연결에 성공했습니다. 여기에 기록해서 다른 사람을 편리하게 하고 자신을 편리하게 합니다.
일단 제가 xshell5를 통해 하이브를 원격으로 연결하는 설정을 볼게요.
이것은 로그인할 때의 인터페이스입니다. 제가 선택한 서버는 10.100.34.110입니다.
 
첫 번째, SSH 사용, idea에서 Tools--StartSSH session--edit
host --172.18.254.49    Port --22   user name --zhangpanpan180108   password --******
save password는 select server를 선택하는 인터페이스에 들어갑니다. OK
두 번째, 아이디어 데이터베이스 도구 사용하기 1.데이터베이스 이 옵션은view--toolWindows--데이터베이스
오른쪽 측면에서 데이터베이스가 보여요.
2.idea는 하이브를 내장한 드라이브가 없습니다. 드라이버를 새로 만들어야 합니다. 이쪽에서 자세히 볼 수 있습니다.http://blog.csdn.net/u010814849/article/details/77649724
url, url 형식은 다음과 같습니다. jdbc:hive2:/ip 주소:port 포트 번호/database 데이터베이스
여기 있는 URL은 jdbc:hive2://10.100.12.30:10000/dm_research
user 및 password는 yjy_research와 ****여기 오랫동안 일했는데 왜 이 비밀번호를 입력해야 하는지 모르겠어요. 위의username이 아니라...
다시 한 번 sql로 테스트를 진행했습니다. 저는 xshell로 계속 썼습니다.그러나 이렇게 쓰는 것은 잘못된 것이고, 정확한 것은
show tables
나를 속여 죽였고, 줄곧 잘못을 보고하였는데, 다행히 정확한 방법을 찾았다
3. 그리고 자바 코드를 사용하여 JDBC를 통해 하이브를 연결합니다. 다음은 제 코드입니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class hive {

    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    private static String url = "jdbc:hive2://localhost:10000/database";
    private static String user = "";
    private static String password = "";
    private static String sql = "";
    private static ResultSet res;

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = getConn();
            stmt = conn.createStatement();

            stmt.execute("use dm_research");

            selectData(stmt, "dm_research.collection");// 

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (SQLException e) {
            e.printStackTrace();
            System.exit(1);
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
                if (stmt != null) {
                    stmt.close();
                    stmt = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    private static void countData(Statement stmt, String tableName)
            throws SQLException {
        sql = "select count(1) from " + tableName + " limit 10";
        System.out.println("Running:" + sql);
        res = stmt.executeQuery(sql);
        System.out.println(" “regular hive query” :");
        while (res.next()) {
            System.out.println("count ------>" + res.getString(1));
        }
    }

    private static void selectData(Statement stmt, String tableName)
            throws SQLException {
        sql = "select * from " + tableName + " limit 10";
        System.out.println("Running:" + sql);
        res = stmt.executeQuery(sql);
        System.out.println("  select * query  :");
        while (res.next()) {
            System.out.println(res.getString(1) + "\t" + res.getString(2));
        }
    }
}

좋은 웹페이지 즐겨찾기