宜信開源|大資料虛擬混算平臺Moonbox配置指南
三、解壓
tar -zxvf moonbox-assembly_2.11-0.3.0-beta-dist.tar.gz
四、修改配置檔案
配置檔案位於conf目錄下
step 1: 修改slaves
mv slaves.example slaves
vim slaves
將會看到如下內容:
localhost
請根據實際情況修改為需要部署worker節點的地址, 每行一個地址
step 2: 修改moonbox-env.sh
mv moonbox-env.sh.example moonbox-env.sh chmod u+x moonbox-env.sh vim moonbox-env.sh
將會看到如下內容:
export JAVA_HOME=path/to/installed/dir export SPARK_HOME=path/to/installed/dir export YARN_CONF_DIR=path/to/yarn/conf/dir export MOONBOX_SSH_OPTS="-p 22" export MOONBOX_HOME=path/to/installed/dir # export MOONBOX_LOCAL_HOSTNAME=localhost export MOONBOX_MASTER_HOST=localhost export MOONBOX_MASTER_PORT=2551
請根據實際情況修改
step 3: 修改moonbox-defaults.conf
mv moonbox-defaults.conf.example moonbox-defaults.conf
vim moonbox-defaults.conf
將會看到以下內容,其中:
- catalog
配置元資料儲存位置, 必須修改, 請根據實際情況修改
- rest
配置rest服務, 按需修改
- tcp
配置tcp(jdbc)服務, 按需修改
- local
配置Spark Local模式作業, 值為陣列, 有多少個元素表示每個Worker節點啟動多少個Spark Local模式作業。如不需要可刪除。
- cluster
配置Spark yarn模式作業, 值為陣列, 有多少個元素表示每個Worker節點啟動多少個Spark Yarn模式作業。如不需要可刪除。
moonbox {
deploy {
catalog {
implementation = "mysql"
url = "jdbc:mysql://host:3306/moonbox?createDatabaseIfNotExist=true"
user = "root"
password = "123456"
driver = "com.mysql.jdbc.Driver"
}
rest {
enable = true
port = 9099
request.timeout = "600s"
idle.timeout= "600s"
}
tcp {
enable = true
port = 10010
}
}
mixcal {
pushdown.enable = true
column.permission.enable = true
spark.sql.cbo.enabled = true
spark.sql.constraintPropagation.enabled = false
local = [{}]
cluster = [{
spark.hadoop.yarn.resourcemanager.hostname = "master"
spark.hadoop.yarn.resourcemanager.address = "master:8032"
spark.yarn.stagingDir = "hdfs://master:8020/tmp"
spark.yarn.access.namenodes = "hdfs://master:8020"
spark.loglevel = "ERROR"
spark.cores.max = 2
spark.yarn.am.memory = "512m"
spark.yarn.am.cores = 1
spark.executor.instances = 2
spark.executor.cores = 1
spark.executor.memory = "2g"
}]
}
}
- optional: 如果HDFS 配置了高可用(HA)、或者HDFS 配置了kerberos、或者YARN 配置了高可用(HA)、或者YARN 配置了kerberos
將cluster元素中相關部分改為以下配置, 請根據實際情況修改。具體值可查閱hdfs配置檔案和yarn配置檔案。
#### HDFS HA ####
spark.hadoop.fs.defaultFS="hdfs://service_name"
spark.hadoop.dfs.nameservices="service_name"
spark.hadoop.dfs.ha.namenodes.service_name="xxx1,xxx2"
spark.hadoop.dfs.namenode.rpc-address.abdt.xxx1="xxx1_host:8020"
spark.hadoop.dfs.namenode.rpc-address.abdt.xxx2="xxx2_host:8020"
spark.hadoop.dfs.client.failover.proxy.provider.abdt="org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
spark.yarn.stagingDir = "hdfs://service_name/tmp"
#### HDFS kerberos ####
dfs.namenode.kerberos.principal = ""
dfs.namenode.kerberos.keytab = ""
#### YARN HA ####
spark.hadoop.yarn.resourcemanager.ha.enabled=true
spark.hadoop.yarn.resourcemanager.ha.rm-ids="yyy1,yyy2"
spark.hadoop.yarn.resourcemanager.hostname.rm1="yyy1_host"
spark.hadoop.yarn.resourcemanager.hostname.rm2="yyy2_ho
st"
#### YARN kerberos ####
spark.yarn.principal = ""
spark.yarn.keytab = ""
五、分發安裝包
將MySQL Jdbc驅動包放置到libs和runtime目錄下, 然後將整個moonbox安裝目錄拷貝到所有安裝節點, 確保位置與主節點位置一致。
六、啟動叢集
在master節點執行
sbin/start-all.sh
七、停止叢集
在master節點執行
sbin/stop-all.sh
八、檢查叢集是否成功啟動
在master節點執行如下命令, 將會看到 MoonboxMaster 程序
jps | grep Moonbox
在worker節點執行如下命令, 將會看到 MoonboxWorker 程序
jps | grep Moonbox
在worker節點執行如下命令, 將會看到與配置檔案對應個數的 SparkSubmit 程序
jps -m | grep Spark
使用moonbox-cluster命令檢視叢集資訊
bin/moonbox-cluster workers
bin/moonbox-cluster apps
如果檢查通過, 則叢集啟動成功, 即可參閱examples部分開始體驗啦。 如果檢查失敗, 可通過檢視master節點或者worker節點上logs目錄下的日誌進行問題排查。
開源地址:https://github.com/edp963/moonbox
拓展閱讀:資料虛擬化即服務(DVtaaS)平臺解決方案 - Moonbox 宜信開源|Moonbox_v0.3_beta重大發布 | Grid全新重構,更快更解耦
來源