Apache Drill 使用 Java 撰寫, 它參考了谷歌的 BigQuery 的想法,是一個開放原始碼、可擴展、支援複雜資料的分佈式 columnar SQL 查詢引擎, 它可以訪問 Apache Hadoop 的 HDFS,從各種主流文件格式(例如 Parquet、JSON 和 CSV)以及支援的資料庫中讀取數據。 Apache Drill 的優點就是它可以使用 SQL 查詢語言查詢各種不同格式的資料並且與資料互動。
下載程式後解壓縮放在某個目錄,使用 embedded mode 檢查是否可以執行:
bin/drill-embedded
結束程式:
!quit
Distributed Mode 需要 Apache ZooKeeper,並且在 drill-override.conf 設定相關的設定。
drill.exec: {
cluster-id: "drillbits1",
zk.connect: "localhost:2181"
}
首先要先啟動 ZooKeeper service。
再來是啟動 Drill server:
bin/drillbit.sh start
停止 server:
bin/drillbit.sh stop
執行 sqlline 驗證可以連線到 Drill server:
bin/sqlline -u jdbc:drill:schema=dfs;zk=localhost
SSL/TLS
使用 keytool 建立 keystroe:
keytool -genkeypair -alias server \
-dname "CN=localhost, OU=IT Department, O=Orange Inc. ,L=Taipei, S=Taiwan,C=TW" \
-ext SAN=DNS:localhost,IP:127.0.0.1 \
-keyalg RSA -keysize 2048 -sigalg SHA256withRSA -storetype PKCS12 \
-validity 3650 \
-keypass password -keystore ./trusted.keystore -storepass password
在 drill-override.conf 設定相關的設定。
drill.exec: {
cluster-id: "drillbits1",
zk.connect: "localhost:2181",
ssl: {
protocol: "TLSv1.3",
keyStoreType: "pkcs12",
keyStorePath: "/home/danilo/Programs/drill/conf/trusted.keystore",
keyStorePassword: "password",
trustStoreType: "pkcs12",
trustStorePath: "/home/danilo/Programs/drill/conf/trusted.keystore",
trustStorePassword: "password"
},
security.user.encryption.ssl: {
enabled: true,
},
}
在 drill-override.conf 設定相關的設定,對 WEB UI 允許 SSL/TLS:
drill.exec: {
cluster-id: "drillbits1",
zk.connect: "localhost:2181",
ssl: {
protocol: "TLSv1.3",
keyStoreType: "pkcs12",
keyStorePath: "/home/danilo/Programs/drill/conf/trusted.keystore",
keyStorePassword: "password",
trustStoreType: "pkcs12",
trustStorePath: "/home/danilo/Programs/drill/conf/trusted.keystore",
trustStorePassword: "password"
},
security.user.encryption.ssl: {
enabled: true,
},
http: {
enabled: true,
ssl_enabled: true,
},
}
Plain Security
在 drill-override.conf 設定相關的設定,允許 Plain Security:
drill.exec: {
cluster-id: "drillbits1",
zk.connect: "localhost:2181",
ssl: {
protocol: "TLSv1.3",
keyStoreType: "pkcs12",
keyStorePath: "/home/danilo/Programs/drill/conf/trusted.keystore",
keyStorePassword: "password",
trustStoreType: "pkcs12",
trustStorePath: "/home/danilo/Programs/drill/conf/trusted.keystore",
trustStorePassword: "password"
},
security: {
auth.mechanisms : ["PLAIN"],
},
security.user.auth {
enabled: true,
packages += "org.apache.drill.exec.rpc.user.security",
impl: "pam4j",
pam_profiles: [ "sudo", "login" ]
},
security.user.encryption.ssl: {
enabled: true,
},
http: {
enabled: true,
ssl_enabled: true,
auth: {
mechanisms: ["FORM"],
},
},
}
Apache Drill 支援使用 libpam4j 或者是 jpam 作為 PAM Authenticator。 其中 libpam4j 已被內建,所以只要設定正確就可以使用。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。