1. 程式人生 > >重新編譯、安裝spark assembly,使CDH5.5.1支援sparkSQL

重新編譯、安裝spark assembly,使CDH5.5.1支援sparkSQL

CDH內嵌spark版本不支援spark-sql,sparkR,如果要使用,需要將hive的相關依賴包打進spark assembly jar中,下面就是針對spark-sql的編譯、安裝步驟

一.在任意一臺linux機器上準備編譯環境

jdk1.7.0_79

scala2.10.4

maven3.3.9

Spark runs on Java 7+, Python 2.6+ and R 3.1+. For the Scala API, Spark 1.5.0 uses Scala 2.10. You will need to use a compatible Scala version (2.10
.x). Building Spark using Maven requires Maven 3.3.3 or newer and Java 7+. The Spark build can supply a suitable Maven binary;

配置環境變數如下,並使其生效:source /etc/profile

export JAVA_HOME=/data/jdk1.7.0_79
export M2_HOME=/data/apache-maven-3.3.9
export SCALA_HOME=/data/scala-2.10.4
export PATH=$JAVA_HOME/bin:$M2_HOME
/bin:$SCALA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

二.編譯步驟

1. 重新設定maven編譯所佔空間,因為編譯過程複雜、時間長

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

2. 解壓spark-1.5.0.tgz(例如到/data目錄下),執行nohup mvn命令開始後臺編譯,結果輸出到日誌檔案)

nohup mvn -Pyarn
-Phadoop-2.6 -Dhadoop.version=hadoop2.6.0-cdh5.5.1 -Dscala-2.10.4 -Phive -Phive-thriftserver -DskipTests clean package > ./spark-mvn-`date +%Y%m%d%H`.log 2>&1 &

首次編譯,需要2-3小時,具體看網路情況,(我編譯多次,最後成功)編譯成功日誌末尾如下

[INFO] Reactor Summary:
[INFO] 
[INFO] Spark Project Parent POM ........................... SUCCESS [  3.200 s]
[INFO] Spark Project Launcher ............................. SUCCESS [  8.887 s]
[INFO] Spark Project Networking ........................... SUCCESS [  8.270 s]
[INFO] Spark Project Shuffle Streaming Service ............ SUCCESS [  4.832 s]
[INFO] Spark Project Unsafe ............................... SUCCESS [  6.082 s]
[INFO] Spark Project Core ................................. SUCCESS [01:52 min]
[INFO] Spark Project Bagel ................................ SUCCESS [  5.129 s]
[INFO] Spark Project GraphX ............................... SUCCESS [ 13.442 s]
[INFO] Spark Project Streaming ............................ SUCCESS [ 30.683 s]
[INFO] Spark Project Catalyst ............................. SUCCESS [ 43.622 s]
[INFO] Spark Project SQL .................................. SUCCESS [ 53.463 s]
[INFO] Spark Project ML Library ........................... SUCCESS [01:06 min]
[INFO] Spark Project Tools ................................ SUCCESS [  2.225 s]
[INFO] Spark Project Hive ................................. SUCCESS [ 42.020 s]
[INFO] Spark Project REPL ................................. SUCCESS [  8.500 s]
[INFO] Spark Project YARN ................................. SUCCESS [  9.665 s]
[INFO] Spark Project Hive Thrift Server ................... SUCCESS [  7.255 s]
[INFO] Spark Project Assembly ............................. SUCCESS [02:15 min]
[INFO] Spark Project External Twitter ..................... SUCCESS [  7.330 s]
[INFO] Spark Project External Flume Sink .................. SUCCESS [  5.103 s]
[INFO] Spark Project External Flume ....................... SUCCESS [  8.405 s]
[INFO] Spark Project External Flume Assembly .............. SUCCESS [  2.928 s]
[INFO] Spark Project External MQTT ........................ SUCCESS [ 15.932 s]
[INFO] Spark Project External MQTT Assembly ............... SUCCESS [  7.792 s]
[INFO] Spark Project External ZeroMQ ...................... SUCCESS [  6.057 s]
[INFO] Spark Project External Kafka ....................... SUCCESS [ 10.135 s]
[INFO] Spark Project Examples ............................. SUCCESS [01:49 min]
[INFO] Spark Project External Kafka Assembly .............. SUCCESS [  8.111 s]
[INFO] Spark Project YARN Shuffle Service ................. SUCCESS [  5.814 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12:28 min
[INFO] Finished at: 2016-07-26T16:05:11+08:00
[INFO] Final Memory: 90M/1589M
[INFO] ------------------------------------------------------------------------

同時在如下目錄會找到生成的spark assembly的jar

/data/spark-1.5.0/assembly/target/scala-2.10/spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar

三.安裝spark assembly

1. 拷貝assembly jar包

到CDH機器180.153..,將jar包遠端拷貝過來,例如到/home/hadoop目錄下

scp -P 50201 /data/spark-1.5.0/assembly/target/scala-2.10/spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar [email protected]180.153.*.*:/home/hadoop

然後再複製到CDH的jars目錄下,如果已存在,將其備份後刪除

cp -p /home/hadoop/spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar /opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/jars

2. 替換CDH中spark下的assembly jar包

其實就是修改軟連線spark-assembly.jar指向CDH的jars目錄下的spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar,軟連線所在路徑:
/opt/cloudera/parcels/CDH/lib/spark/lib,刪除原來的,新增連線

ln -s ../../../jars/spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar  
ln -s  spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar  spark-assembly.jar

檢視軟連線情況

[[email protected] lib]# ll
total 209204
-rw-r--r-- 1 root root     21645 Dec  3  2015 python.tar.gz
lrwxrwxrwx 1 root root        68 Jan 14  2016 spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar -> ../../../jars/spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar
lrwxrwxrwx 1 root root        54 Jan 14  2016 spark-assembly.jar -> spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar
lrwxrwxrwx 1 root root        68 Jan 14  2016 spark-examples-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar -> ../../../jars/spark-examples-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar
lrwxrwxrwx 1 root root        54 Jan 14  2016 spark-examples.jar -> spark-examples-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar
[[email protected] lib]# 

3. 拷貝spark-sql執行檔案

從spark原始檔的bin下拷貝到CDH的spark的bin目錄下

scp -P 50201 /data/spark-1.5.0/bin/spark-sql root@180.153.*.*:/opt/cloudera/parcels/CDH/lib/spark/bin

4. 配置環境變數

export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HADOOP_CMD=/opt/cloudera/parcels/CDH/bin/hadoop
export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive
export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark
export SCALA_HOME=/usr/local/scala-2.10.4
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin:$SCALA_HOME/bin

5. 拷貝assembly jar包拷貝到HDFS

首先需要將assembly jar拷貝到HDFS的/user/spark/share/lib目錄下,修改檔案許可權為755

hadoop fs -put /home/hadoop/spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0-cdh5.5.1.jar  /user/spark/share/lib

6. 在CM上配置

  • 登陸CM,修改spark的服務範圍為assembly jar在HDFS中的路徑
/user/spark/share/lib/spark-assembly-1.5.0-hadoop2.6.0.jar

spark的hdfs範圍

  • 修改spark的高階配置
spark.yarn.jar=hdfs://bestCluster/user/spark/share/lib/spark-assembly-1.5.0-hadoop2.6.0.jar

export HIVE_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hive/conf

spark的高階配置

  • 點選儲存更改,再部署客戶端配置即可。

7.執行spark-sql

已配置過環境變數,可在任意目錄下執行spark-sql

[[email protected] ~]$ spark-sql
...
...
16/07/27 16:04:52 INFO metastore: Trying to connect to metastore with URI thrift://nn1.hadoop:9083
16/07/27 16:04:52 INFO metastore: Connected to metastore.
16/07/27 16:04:52 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/07/27 16:04:53 INFO SessionState: Created local directory: /tmp/462a9698-5bb6-4d17-bce3-9e162cfd40f8_resources
16/07/27 16:04:53 INFO SessionState: Created HDFS directory: /tmp/hive/hadoop/462a9698-5bb6-4d17-bce3-9e162cfd40f8
16/07/27 16:04:53 INFO SessionState: Created local directory: /tmp/hadoop/462a9698-5bb6-4d17-bce3-9e162cfd40f8
16/07/27 16:04:53 INFO SessionState: Created HDFS directory: /tmp/hive/hadoop/462a9698-5bb6-4d17-bce3-9e162cfd40f8/_tmp_space.db
SET spark.sql.hive.version=1.2.1
SET spark.sql.hive.version=1.2.1
spark-sql> 

tips:

1.新建/拷貝的檔案要賦予讀寫許可權

2.替換原有檔案前,注意檢視原有檔案所屬使用者、軟連線等資訊

以上,完結!

相關推薦

重新編譯安裝spark assembly使CDH5.5.1支援sparkSQL

CDH內嵌spark版本不支援spark-sql,sparkR,如果要使用,需要將hive的相關依賴包打進spark assembly jar中,下面就是針對spark-sql的編譯、安裝步驟 一.在任意一臺linux機器上準備編譯環境 jdk1.7.0

【原】不用重新編譯php 安裝gd庫開啟xml DOMDocument 讀寫支援

由於某度眾所周知的舉動,讓我搬離寫了5年的渣度空間,準備把技術性的文章定在CSDN了。這些都是文章備份。勿怪。。鑑於最近有些抓取機器和抄襲者,把標題的【原】字都複製,我不得不宣告:本文為 yukon12345原創,轉載請註明出處http://blog.csdn.net/yu

Hive on Spark系列一:CDH5.5配置支援hive on spark

 我寫文件中CDH5.7以上版本已經全面支援Hive on Spark,具體配置請參考官網。 我們目前使用的是CDH5.5.1,所以我就想嘗試下Hive on Spark如何,如果可以後期會升級CDH版本,下文以CDH 5.5作為介紹物件 重要: CDH 5.4以後引

一些liunx base-fsmini-fsdocker image 系統 安裝kernelgrub文件使之獨立運行的註意事項

ystemd 直接 ase base 強制 min 可能 成功 註意事項 如題 通常你不會順利的啟動成功的! 其原因在於 init 初始化管理系統 ,主要是systemd在作祟! 要麽官方沒有安裝,要麽安裝的是定制多的刪減版,故意是base系統無法啟動! 怎麽辦?

linux 下的兩種軟體安裝方式 —— 原始碼(編譯安裝編譯好的二進位制(直接安裝

我們以 GPG(加密工具)為例來說明兩種安裝方式的區別: 原始碼(Source code releases,名稱中則會含有src等說明資訊,tarball:source),先編譯再安裝 ./c

安裝Spark+hadoopsparkhadoop分散式叢集搭建...(親自搭建過!!)

首先說一下我所用的版本: spark-2.1.1-bin-hadoop2.7.tgz hadoop-2.7.3.tar.gz jdk-8u131-linux-x64.rpm 我們實驗室有4臺伺服器:每個節點硬碟:300GB,記憶體:64GB。四個

安裝jupyter後使用時顯示找不到命令(command not found)

原因很簡單 詳見這篇帖子找不到命令原因 解決方法 首先開啟終端,找到jupyter是否存在 發現了jupyter位置,注意bin檔案是存放命令的,所以我們把它新增到環境變數 sudo vim /etc/profile 新增如下程式碼 export PATH=$

linux筆記:安裝程式後使用時顯示找不到命令(command not found)

在linux中,用各種工具下載安裝程式後,使用時顯示找不到命令(command not found)解決方法 其實這個問題與在windows安裝程式後,在命令列下使用不了是一個原因:沒有配置環境變數 linux解決方法: linux中假如你安裝了一個A程式,在終端輸入 f

InfluxDB原始碼編譯安裝配置及主從同步實現

先扯點蛋 公司有個專案要求使用InfluxDB時序資料庫儲存點東西。第一次聽說還有這種資料庫,哈哈哈,孤陋寡聞了,先從各位大佬的部落格看起,慢慢學習,逐漸瞭解了之後在伺服器上進行安裝。直接使用官方包進行安裝很簡單,檢視官方說明即可。安裝之後使用才發現,開源的只支援單機版的,但是公司用不能

編譯安裝rdesktop 1.8.3

  來自:https://blog.csdn.net/songshimvp1/article/details/48290885   1、安裝GCC: 安裝C/C++編譯器apt-get install gcc gcc安裝相關構建工具apt-get install buil

PocketSphinx語音識別系統的編譯安裝和使用

PocketSphinx語音識別系統的編譯、安裝和使用         Sphinx是由美國卡內基梅隆大學開發的大詞彙量、非特定人、連續英語語音識別系統。Sphinx從開發之初就得到了CMU、DARPA等多個部門的資

重新編譯安裝Tez on hive(Tez 0.8.5,Hive 2.3.3)

author by Fei Joe (Thupdi 技術創新中心) 一, maven3.3.9 protoc的版本是2.5.0 二,安裝nodejs yum -y install gcc make gcc-c++ openssl wget http://nodej

No.2 ssd-caffe(1):編譯安裝測試

在這篇文章裡面總結一下ssd-caffe的安裝使用,測試以及如何使用自己的測試樣本,CUDA和OpenCV的安裝在這裡不再介紹,實驗環境Ubuntu16.04 1 . 安裝並測試ssd-caff

CLAPACK在Windows上的編譯安裝與使用

至於LAPACK是什麼在這裡就不多說了,編譯,安裝的步驟如下 1、CLAPACK的編譯與安裝 以下連結是CLAPACK的官方網站,也可以根據官方網站進行配置、 http://icl.cs.utk.edu/lapack-for-windows/clapack/index.html#inst

Linux環境下openssl交叉編譯安裝和裁剪

最近的專案需求中依賴libcrypto和libssl庫,所以需要編譯安裝openssl0.9.8e,花了差不多一天的時間終於成功安裝和裁剪,現在總結並分享個人的方法,貼出來供大家參考和指正。 方法如下(不同的平臺要根據實際環境更改相應的編譯工具): 一、配置: ./conf

ubuntu下使用Tesseract-ocr(編譯安裝使用訓練新的語言庫)

這是關於如何使用Tesseract3訓練新的語言的文件,該文件是tesseract-ocr官方wiki上翻譯過來的。 1.介紹 Tesseract3.0x是支援訓練的。這篇文章描述如何訓練的過程,提供適用於各種語言的一些指導方針,以及訓練會得到的結果。對於Tesseract2.0x的訓練參考:Traini

VS2005下編譯安裝Net-snmp 5.4.1.2手記(原創)

VS2005下編譯、安裝Net-snmp 5.4.1.2手記 by Flyfish <[email protected]>2008-09-08:=======================================================

部署編譯執行spark

一、利用 svn 方式下載 spark 程式碼 a) 點選如下 Windows::Open Perspective::Other... b) 彈出一個 “Open Perspective” 對話方塊,選擇 “SVN Repository Exploring” ,單擊 OK

小巧玲瓏的開源排程框架Azkaban3.0下載編譯安裝及使用詳細文件

一、下載 下載地址:https://github.com/azkaban/azkaban/archive/3.38.0.tar.gz 二、編譯 Azkaban3.x官方沒有提供直接的安裝包,需要下載原始碼後進行編譯 $>cd $AZKABAN_SOURCE_HOME $>./grad

Eclipse中專案重新編譯清理快取

目標: 當我們已經修改Action中的處理程式碼,但是執行發現還是未修改之前的處理方法,這個時候clean一下也許就會解決問題 eclipse為了提高效率,並不是每次啟動專案都會檢查外掛,通過cle