cuốn sách gpt4 ai đã làm

mysql - Không thể lấy thông tin bảng di căn từ xa Hive thông qua tiết kiệm

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 16:52:50 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi có thể sử dụng chương trình sau để lấy thông tin bảng di căn cùng với tổ ong trong thiết lập kho lưu trữ mysql cục bộ của mình.

nhập java.sql.Connection;
nhập java.sql.DriverManager;
nhập java.sql.ResultSet;
nhập java.sql.Statement;

nhập org.apache.hadoop.fs.Path;
nhập org.apache.hadoop.hive.conf.HiveConf;
nhập org.apache.hadoop.hive.conf.HiveConf.ConfVars;

lớp công khai MetaStoreTest {

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

Kết nối conn = null;
thử {
HiveConf conf = HiveConf mới();
conf.addResource(Đường dẫn mới("/home/hadoop/Hive-0.12.0/conf/Hive-site.xml"));
Class.forName(conf.getVar(ConfVars.METASTORE_CONNECTION_DRIVER));
conn = DriverManager.getConnection(
conf.getVar(ConfVars.METASTORECONNECTURLKEY),
conf.getVar(ConfVars.METASTORE_CONNECTION_USER_NAME),
conf.getVar(ConfVars.METASTOREPWD));

Câu lệnh st = conn.createStatement();
Kết quả rs = st.executeQuery(
"chọn t.tbl_name, s.location từ TBLS t " +
"tham gia SDS trên t.sd_id = s.sd_id");
trong khi (rs.next()) {
System.out.println(rs.getString(1) + " : " + rs.getString(2));
}
}
Cuối cùng {
if (conn != null) {
conn.close();
}
}

}
}

Hiện tại tôi đang cố gắng sử dụng chương trình trên để lấy bảng metastore từ một metastore từ xa bằng cách sử dụng tính năng tiết kiệm. Trong Hive-site.xml hiện tại của tôi, tôi có các tham số này,

hive.metastore.uris = tiết kiệm://host1:9083, tiết kiệm://host2:9083
hive.metastore.local = sai

Không có tham số:

javax.jdo.option.ConnectionDriverName, javax.jdo.option.ConnectionUserName, javax.jdo.option.ConnectionPassword

Vì vậy, làm cách nào tôi có thể nhận được thông tin có thể thay đổi được thông qua giao thức tiết kiệm. Tôi đang chạy đoạn mã trên trên Host2. Hãy đưa ra gợi ý.

Ngoài ra, khi tôi chạy đoạn mã trên, nó sẽ hiển thị như sau:

METASTORE_CONNECTION_DRIVER làm trình điều khiển nhúng kết nối derby, 
METASTORECONNECTURLKEY dưới dạng jdbc:mysql:///?createDatabaseIfNotExist=true,
METASTORE_CONNECTION_USER_NAME là "APP" và
METASTOREPWD là "của tôi"

câu trả lời hay nhất

Thay thế phần mã này:

conf.addResource(Đường dẫn mới("/home/hadoop/Hive-0.12.0/conf/Hive-site.xml"));
Class.forName(conf.getVar(ConfVars.METASTORE_CONNECTION_DRIVER));
conn = DriverManager.getConnection(
conf.getVar(ConfVars.METASTORECONNECTURLKEY),
conf.getVar(ConfVars.METASTORE_CONNECTION_USER_NAME),
conf.getVar(ConfVars.METASTOREPWD));

以下:

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://host2:3306/metastore", "tên người dùng", "urpassword");

[Để ý: Thay đổi tên, người dùng và mật khẩu cơ sở dữ liệu Metastore phù hợp theo thiết lập của bạn. ]

Hiện nay:

Câu lệnh st = conn.createStatement();
ResultSet rs = st.executeQuery("hiển thị bảng");
trong khi (rs.next()) {
System.out.println("Bảng:" +rs.getString(1));
}

Xem bạn có tên bảng Metastore không.

Về mysql - Không thể lấy thông tin bảng di căn từ xa Hive thông qua tiết kiệm, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/31400783/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress