sparkcdh編譯
『壹』 spark thrift server 與 網易 kyuubi thrift server
thrift server可以實現通過jdbc, beeline等工具,實現連接到spark集群,並提交sql查詢的機制。
默認情況下,cdh安裝的spark沒有包含thrift server模塊,因此我們需要重新編譯spark。
另外,為了不影響cdh自帶的spark,而且spark目前都是基於yarn運行的,本身也沒有什麼獨立的服務部署(除了history sever)。
所以,在一個集群中,可以部署安裝多個版本的spark。
我們使用源碼編譯的spark 2.4.0(其中hive的版本是1.2.1)
cdh集成的spark版本和Hive版本如下:
使用jdk1.8
修改spark提供的mvn,使用自行安裝的maven 3.8.1
使用make-distribution.sh可以幫助與我們編譯之後打包成tgz文件
修改pom.xml文件的配置如下。
最後,執行編譯命令如下:
這樣打出的包,就含有thrift server的jar包了。
最終打包文件,根目錄下。
之後就是解壓到其他目錄下後即可。
將hive-site.xml的文件連接過來,這樣spark就可以讀取hive的表了。
為了確保spark提交到yarn上運行,需要配置
cp spark-defaults.conf.template spar-defaults.conf
另外,可以在spark-env.sh中設置環境變數。
HADOOP_CONF_DIR
環境變數,也可以在/etc/profile中設置
啟動日誌可以查看,注意下埠佔用問題,如下。
啟動時候,使用beeline工具連接上,主要這里不用使用cdh默認安裝hive提供的beeline工具,應為版本太高。
使用編譯後spark生成beeline工具
參考beeline使用教程。
https://github.com/apache/incubator-kyuubi
kyuubi是基於thrift sever二次開發,在系能和安全上優於thrift server。
鑒於目前hive的版本是2.1,而最新的kyuubi的hive是2.3,所以採用前天版本的kyuubi,採用0.7版本,保證hive的版本小於當前集群中的hive版本。
使用build目錄下的dist腳本進行編譯和打包。
編譯成功後,會在更目錄下出現tar.gz的壓縮文件,如上圖。
之後解壓到目錄下。
配置bin/kyuubi-env.sh腳本,設置spark路徑
執行bin/start-kyuubi.sh命令即可。
訪問的方式同樣採用beelin,注意使用上面章節的beeline工具。
訪問後,可以通過beeline訪問到hive的表(在spark中已經配置了hive-site.xml)
!connect jdbc: hive2://xxxx:10009 即可。
『貳』 虛擬機spark中怎樣導入數據,的代碼
具體操作步驟:
1、准備Spark程序目錄結構。
2、編輯build.sbt配置文件添加依賴。
3、創建WriteToCk.scala數據寫入程序文件。
4、編譯打包。
5、運行。
參數說明:your-user-name:目標ClickHouse集群中創建的資料庫賬號名。
your-pasword:資料庫賬號名對應的密碼。
your-url:目標ClickHouse集群地址。
/your/path/to/test/data/a.txt:要導入的數據文件的路徑,包含文件地址和文件名。說明文件中的數據及schema,需要與ClickHouse中目標表的結構保持一致。
your-table-name:ClickHouse集群中的目標表名稱。