成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Spark如何安裝、配置及基礎(chǔ)使用

小編給大家分享一下Spark如何安裝、配置及基礎(chǔ)使用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我們提供的服務(wù)有:網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、犍為ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的犍為網(wǎng)站制作公司

7. Spark

此主題介紹Spark的安裝、配置及基礎(chǔ)使用。

Spark基本信息

官網(wǎng):http://spark.apache.org/
官方教程:http://spark.apache.org/docs/latest/programming-guide.html

7.1. 環(huán)境準(zhǔn)備

# 切換到工作空間
cd /opt/workspaces
# 創(chuàng)建Spark數(shù)據(jù)目錄
mkdir data/spark
# 創(chuàng)建Spark日志目錄
mkdir logs/spark

官方教程

http://spark.apache.org/docs/latest/spark-standalone.html

7.2. 安裝

wget http://mirrors.hust.edu.cn/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz
tar -zxf spark-1.6.1-bin-hadoop2.6.tgz
rm -rf spark-1.6.1-bin-hadoop2.6.tgz
mv spark-1.6.1-bin-hadoop2.6 ./frameworks/spark

7.3. 配置(偽分布式)

vi ./frameworks/spark/conf/spark-env.sh

export SPARK_MASTER_IP=bd
export SPARK_MASTER_PORT=7077
export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
# 指定Spark數(shù)據(jù)目錄
export SPARK_LOCAL_DIRS=/opt/workspaces/data/spark/
# 指定Spark日志目錄
export SPARK_LOG_DIR=/opt/workspaces/logs/spark/
# 指定JDK目錄
export JAVA_HOME=/opt/env/java
# 指定Scala目錄
export SCALA_HOME=/opt/env/scala

7.4. 啟動(dòng)與停止

./frameworks/spark/sbin/start-all.sh

7.5. 測(cè)試

# 執(zhí)行圓周率計(jì)算示例
./frameworks/spark/bin/run-example  org.apache.spark.examples.SparkPi

./frameworks/spark/bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master spark://bd:6066\
  --deploy-mode cluster \
  --driver-memory 512M \
  --executor-memory 256M \  #如果運(yùn)行出錯(cuò)請(qǐng)改大些
  ./frameworks/spark/lib/spark-examples-1.6.1-hadoop2.6.0.jar \
  1000

7.6. Word Count


http://spark.apache.org/docs/latest/quick-start.html

Word Count

./frameworks/spark/bin/spark-shell

// 基礎(chǔ)版
val textFile = sc.textFile("./frameworks/spark/README.md")
val words = textFile.flatMap(line => line.split(" "))
val exchangeVal = words.map(word => (word,1))
val count = exchangeVal.reduceByKey((a,b) => a + b)
count.collect

// 優(yōu)化版
sc.textFile("./frameworks/spark/README.md").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect

// 帶排序
sc.textFile("./frameworks/spark/README.md").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).map(_.swap).sortByKey(false).map(_.swap).collect

// 最終版
val wordR="""\w+""".r
sc.textFile("./frameworks/spark/README.md").flatMap(_.split(" ")).filter(wordR.pattern.matcher(_).matches).map((_,1)).reduceByKey(_ + _).map(_.swap).sortByKey(false).map(_.swap).saveAsTextFile("hdfs://bd:9000/wordcount")

可以訪問(wèn) http://<host>:8080 查看作業(yè)

7.7. 參數(shù)說(shuō)明

  • 在哪配置:

Spark properties (Spark屬性)在應(yīng)用程序中通過(guò)SparkConf 對(duì)象設(shè)置,或通過(guò)Java系統(tǒng)屬性設(shè)置。
Environment variables (環(huán)境變量)指定各節(jié)點(diǎn)的設(shè)置,如IP地址、端口,配置文件在conf/spark-env.sh中。
Logging (日志)可以通過(guò)log4j.properties配置日志。

  • Spark properties

在代碼中指定配置

val conf = new SparkConf()
             // 指定使用2個(gè)本地線程來(lái)運(yùn)行,本地模式下,我們可以使用n個(gè)線程(n >= 1),但在像Spark Streaming這樣的場(chǎng)景下,我們可能需要多個(gè)線程
             .setMaster("local[2]")
             .setAppName("CountingSheep")
val sc = new SparkContext(conf)

在腳本中指定配置

./bin/spark-submit --name "My app" --master local[4] --conf spark.eventLog.enabled=false
  --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar

Table 1. 常用配置

屬性名稱默認(rèn)值說(shuō)明

spark.app.name


Spark應(yīng)用的名字

spark.driver.cores

1

在cluster模式下運(yùn)行driver進(jìn)程的核數(shù)

spark.driver.memory

1g

driver進(jìn)程可以用的內(nèi)存總量(如:1g,2g),client模式下無(wú)效果,必須要在命令行里用 –driver-memory 或者在默認(rèn)屬性配置文件里設(shè)置

spark.executor.memory

1g

單個(gè)executor使用的內(nèi)存總量(如,2g,8g)

spark.master


集群管理器URL

  • Environment variables

環(huán)境變量在${SPARK_HOME}/conf/spark-env.sh腳本中設(shè)置

Table 2. 常用配置

模式屬性名稱默認(rèn)值說(shuō)明

JAVA_HOME


Java安裝目錄


SCALA_HOME


Scala安裝目錄


SPARK_LOCAL_IP


本地綁定的IP


SPARK_LOG_DIR

${SPARK_HOME}/logs

日志目錄

standalone

SPARK_MASTER_IP

(當(dāng)前IP)

Master IP

standalone

SPARK_MASTER_PORT

7077(6066)

Master 端口

standalone

MASTER


默認(rèn)Master URL

standalone

SPARK_WORKER_CORES

所有

每個(gè)節(jié)點(diǎn)使用的CPU core上限

standalone

SPARK_WORKER_MEMORY

本節(jié)點(diǎn)所有內(nèi)存減去1GB

每個(gè)節(jié)點(diǎn)使用的內(nèi)存上限

standalone

SPARK_WORKER_INSTANCES

1

每個(gè)節(jié)點(diǎn)啟動(dòng)的worker實(shí)例個(gè)數(shù)

standalone

SPARK_WORKER_PORT

隨機(jī)

Worker綁定的端口


如果你的slave節(jié)點(diǎn)性能非常強(qiáng)勁,可以把SPARK_WORKER_INSTANCES設(shè)為大于1;相應(yīng)的,需要設(shè)置SPARK_WORKER_CORES參數(shù)限制每個(gè)worker實(shí)例使用的CPU個(gè)數(shù),否則每個(gè)worker實(shí)例都會(huì)使用所有的CPU。
  • Logging

日志在${SPARK_HOME}/conf/log4j.properties中設(shè)置

  • Hadoop集群配置

使用HDFS時(shí)需要從Hadoop中復(fù)制hdfs-site.xml、 core-site.xml到Spark的classpath中


http://spark.apache.org/docs/latest/configuration.html

7.8. 資源調(diào)度

standalone目前只支持簡(jiǎn)單的先進(jìn)先出(FIFO)調(diào)度器。這個(gè)調(diào)度器可以支持多用戶,你可以控制每個(gè)應(yīng)用所使用的最大資源。默認(rèn)情況下,Spark應(yīng)用會(huì)申請(qǐng)集群中所有的CPU。

在代碼中限制資源

val conf = new SparkConf()
             .setMaster(...)
             .setAppName(...)
             .set("spark.cores.max", "10")
val sc = new SparkContext(conf)

在配置文件     spark-env.sh中限制資源

export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=<value>"

7.9. 性能調(diào)優(yōu)


http://spark.apache.org/docs/latest/tuning.html

7.10. 硬件配置

每個(gè)節(jié)點(diǎn):
* 4-8塊磁盤(pán)
* 8G以上內(nèi)存
* 千兆網(wǎng)卡
* 8-16核CPU

至少3個(gè)節(jié)點(diǎn)


http://spark.apache.org/docs/latest/hardware-provisioning.html

7.11. 整合Hive

  • spark-env.sh中添加配置項(xiàng)

    # Hive目錄
    export HIVE_HOME=$HIVE_HOME

         


SPARK_CLASSPATH

有些教程中說(shuō)要添加
export SPARK_CLASSPATH=$HIVE_HOME/lib/MySQL-connector-java-x.jar:$SPARK_CLASSPATH
但目前版本不需要此配置,并且添加上去會(huì)導(dǎo)致zeppelin運(yùn)行出錯(cuò):
org.apache.spark.SparkException: Found both spark.driver.extraClassPath and SPARK_CLASSPATH. Use only the former.

  • 復(fù)制Hive的幾個(gè)配置文件

    cp ./frameworks/hive/conf/hive-site.xml ./frameworks/spark/conf
    cp ./frameworks/hive/conf/hive-log4j.properties ./frameworks/spark/conf

         

  • 啟動(dòng)thriftserver,用于對(duì)外提供JDBC服務(wù)

    ./frameworks/spark/sbin/start-thriftserver.sh

         

  • 測(cè)試連接

    ./frameworks/spark/bin/beeline
    !connect jdbc:hive2://bd:10000
    show tables;

以上是“Spark如何安裝、配置及基礎(chǔ)使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章標(biāo)題:Spark如何安裝、配置及基礎(chǔ)使用
網(wǎng)站鏈接:http://jinyejixie.com/article48/pshehp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、企業(yè)建站、云服務(wù)器用戶體驗(yàn)、動(dòng)態(tài)網(wǎng)站關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
福安市| 武强县| 益阳市| 石棉县| 无为县| 十堰市| 隆回县| 华安县| 宜城市| 泰和县| 天台县| 山阴县| 都兰县| 上林县| 彰武县| 喜德县| 兴山县| 山阳县| 钟祥市| 和田市| 安义县| 申扎县| 高唐县| 泽普县| 乌审旗| 河南省| 合水县| 闵行区| 蓬安县| 天峻县| 莎车县| 南和县| 鄂州市| 天等县| 谷城县| 蒙城县| 绍兴县| 辽中县| 彩票| 女性| 万源市|