欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

初識(shí)Spark-創(chuàng)新互聯(lián)

Spark特點(diǎn)

Spark是Apache的一個(gè)頂級(jí)項(xiàng)目,Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。Spark是UC Berkeley AMP lab (加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)所開源的類Hadoop MapReduce的通用并行框架,Spark擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是——Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。

成都創(chuàng)新互聯(lián)專注于磐安企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開發(fā)。磐安網(wǎng)站建設(shè)公司,為磐安等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

Spark的計(jì)算速度也要比MapReduce快得多,它有一個(gè)先進(jìn)的DAG執(zhí)行引擎,支持非循環(huán)的數(shù)據(jù)流和內(nèi)存計(jì)算。官網(wǎng)介紹說在使用內(nèi)存的情況下快100倍,而使用磁盤的情況下快10倍。

而且Spark 是在 Scala 語言中實(shí)現(xiàn)的,它將 Scala 用作其應(yīng)用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對(duì)象一樣輕松地操作分布式數(shù)據(jù)集。

Spark也比MapReduce要易于使用,并且可以使用Java, Scala, Python, R等語言進(jìn)行開發(fā)。Spark 提供了80多個(gè)高級(jí)API,可以很容易地實(shí)現(xiàn)并行計(jì)算的應(yīng)用程序。還可以通過Scala、Python和R shells等交互式命令行,交互地使用它。

Spark 主要有四個(gè)特點(diǎn):

  • 高級(jí) API 剝離了對(duì)集群本身的關(guān)注,Spark 應(yīng)用開發(fā)者可以專注于應(yīng)用所要做的計(jì)算本身。下圖是python使用Spark API的代碼:
    初識(shí)Spark

  • Spark 很快,支持交互式計(jì)算和復(fù)雜算法以及非循環(huán)的數(shù)據(jù)流和內(nèi)存計(jì)算。下圖是官網(wǎng)上展示的MapReduce與Spark進(jìn)行回歸計(jì)算時(shí),計(jì)算速度的對(duì)比圖:
    初識(shí)Spark

  • Spark 是一個(gè)十分通用的計(jì)算引擎,可用它來完成各種各樣的運(yùn)算,包括 SQL 查詢、文本處理、機(jī)器學(xué)習(xí)等,而在 Spark 出現(xiàn)之前,我們一般需要學(xué)習(xí)各種各樣的引擎來分別處理這些需求。如下圖:
    初識(shí)Spark
  • Spark 可以運(yùn)行在各種平臺(tái)之上,例如可以運(yùn)行在:Hadoop, Mesos, Kubernetes, standalone等平臺(tái)上,或者運(yùn)行在 cloud上。并且能訪問各種數(shù)據(jù)源,包括HDFS, Cassandra, HBase 以及 S3等。
    初識(shí)Spark

Spark官網(wǎng)地址:

http://spark.apache.org/


Spark與Hadoop深入對(duì)比

Spark的生態(tài)系統(tǒng)簡稱BDAS。如下圖:
初識(shí)Spark

Hadoop生態(tài)圈對(duì)比Spark BDAS:
初識(shí)Spark

Hadoop對(duì)比Spark:
初識(shí)Spark

MapReduce對(duì)比Spark:
初識(shí)Spark


Spark開發(fā)語言及運(yùn)行模式介紹

Spark支持的開發(fā)語言:

  • Python
  • Scala(推薦)
  • Java
  • R

Spark運(yùn)行模式:

  • Standalone(內(nèi)置)
  • Yarn(推薦)
  • Mesos
  • Local

Scala&Maven安裝

安裝Scala時(shí),需要先準(zhǔn)備好JDK環(huán)境,而我這里已經(jīng)準(zhǔn)備好jdk1.8的環(huán)境了。

Scala官網(wǎng)下載地址:

http://www.scala-lang.org/download/

下載Scala:

[root@study-01 ~]# cd /usr/local/src
[root@study-01 /usr/local/src]# wget https://downloads.lightbend.com/scala/2.12.5/scala-2.12.5.tgz

解壓:

[root@study-01 /usr/local/src]# tar -zxvf scala-2.12.5.tgz -C /usr/local/
[root@study-01 /usr/local/src]# cd ../
[root@study-01 /usr/local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  scala-2.12.5  share  src
[root@study-01 /usr/local]# cd scala-2.12.5/
[root@study-01 /usr/local/scala-2.12.5]# ls
bin  doc  lib  man
[root@study-01 /usr/local/scala-2.12.5]#

配置環(huán)境變量:

[root@study-01 ~]# vim .bash_profile  # 更改如下內(nèi)容
export SCALA_HOME=/usr/local/scala-2.12.5
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$SCALA_HOME/bin
export PATH
[root@study-01 ~]# source .bash_profile
[root@study-01 ~]# scala  # 測試能否執(zhí)行scala命令
Welcome to Scala 2.12.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_161).
Type in expressions for evaluation. Or try :help.

scala>

Maven官網(wǎng)下載地址:

https://maven.apache.org/download.cgi

下載并解壓:

[root@study-01 ~]# cd /usr/local/src/
[root@study-01 /usr/local/src]# wget  http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
[root@study-01 /usr/local/src]# tar -zxvf apache-maven-3.5.2-bin.tar.gz -C /usr/local
[root@study-01 /usr/local/src]# cd ../apache-maven-3.5.2/
[root@study-01 /usr/local/apache-maven-3.5.2]# ls
bin  boot  conf  lib  LICENSE  NOTICE  README.txt
[root@study-01 /usr/local/apache-maven-3.5.2]#

配置環(huán)境變量:

[root@study-01 ~]# vim .bash_profile  # 更改如下內(nèi)容
export MAVEN_HOME=/usr/local/apache-maven-3.5.2
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$SCALA_HOME/bin:$MAVEN_HOME/bin
[root@study-01 ~]# source .bash_profile
[root@study-01 ~]# mvn --version  # 測試能否執(zhí)行mvn命令
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: /usr/local/apache-maven-3.5.2
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
[root@study-01 ~]#

Spark環(huán)境搭建及wordcount案例實(shí)現(xiàn)

Spark官網(wǎng)下載地址:

http://spark.apache.org/downloads.html

我這里下載的是2.1.0版本的源碼包,官網(wǎng)的編譯安裝文檔:

http://spark.apache.org/docs/2.1.0/building-spark.html

從官網(wǎng)的介紹,我們得知:

  • Java需要7+版本,而且在Spark2.0.0之后Java 7已經(jīng)被標(biāo)識(shí)成deprecated了,但是不影響使用,但是在Spark2.2.0版本之后Java 7的支持將會(huì)被移除;
  • Maven需要3.3.9+版本

下載Spark2.1.0版本的源碼包:
初識(shí)Spark

下載并解壓:

[root@study-01 /usr/local/src]# wget https://archive.apache.org/dist/spark/spark-2.1.0/spark-2.1.0.tgz
[root@study-01 /usr/local/src]# tar -zxvf spark-2.1.0.tgz -C /usr/local
[root@study-01 /usr/local/src]# cd ../spark-2.1.0/
[root@study-01 /usr/local/spark-2.1.0]# ls
appveyor.yml  common           data      external  licenses     NOTICE   R          scalastyle-config.xml  yarn
assembly      conf             dev       graphx    mesos        pom.xml  README.md  sql
bin           CONTRIBUTING.md  docs      launcher  mllib        project  repl       streaming
build         core             examples  LICENSE   mllib-local  python   sbin       tools
[root@study-01 /usr/local/spark-2.1.0]#

安裝完成之后我們還需要使用Spark源碼目錄中的dev下的make-distribution.sh腳本進(jìn)行編譯,官方提供的編譯命令如下:

./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.4 -Phive -Phive-thriftserver -Pmesos -Pyarn

參數(shù)說明:

  • --name:指定編譯完成后Spark安裝包的名字
  • --tgz:以tgz的方式進(jìn)行壓縮
  • -Psparkr:編譯出來的Spark支持R語言
  • -Phadoop-2.4:以hadoop-2.4的profile進(jìn)行編譯,具體的profile可以看出源碼根目錄中的pom.xml中查看
  • -Phive和-Phive-thriftserver:編譯出來的Spark支持對(duì)Hive的操作
  • -Pmesos:編譯出來的Spark支持運(yùn)行在Mesos上
  • -Pyarn:編譯出來的Spark支持運(yùn)行在YARN上

那么我們就可以根據(jù)具體的條件來編譯Spark,比如我們使用的Hadoop版本是2.6.0-cdh6.7.0,并且我們需要將Spark運(yùn)行在YARN上、支持對(duì)Hive的操作,那么我們的Spark源碼編譯腳本就是:

[root@study-01 /usr/local/spark-2.1.0]# ./dev/make-distribution.sh --name 2.6.0-cdh6.7.0 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh6.7.0

但是在執(zhí)行這個(gè)命令之前我們先需要編輯pom.xml文件,增加cdh的maven repository:

[root@study-01 /usr/local/spark-2.1.0]# vim pom.xml  # 在<repositories>標(biāo)簽內(nèi),加入如下內(nèi)容
    <repository>
      <id>cloudera</id>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>
[root@study-01 /usr/local/spark-2.1.0]#

然后還需要更改編譯腳本的mvn命令路徑,因?yàn)槭褂米詭У膍vn編譯有些慢:

[root@study-01 /usr/local/spark-2.1.0]# vim dev/make-distribution.sh
MVN="$MAVEN_HOME/bin/mvn"
[root@study-01 /usr/local/spark-2.1.0]#

完成以上的修改后,就可以執(zhí)行編譯命令了,編譯的過程會(huì)有些慢(我這里編譯了半個(gè)多小時(shí))。而且內(nèi)存盡量分配得大一些,避免內(nèi)存不足導(dǎo)致編譯中斷。

編譯完成之后,spark目錄下會(huì)增加一個(gè).tgz的文件,把這個(gè)文件解壓到/usr/local/目錄下:

[root@study-01 /usr/local/spark-2.1.0]# ls |grep *.tgz
spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz
[root@study-01 /usr/local/spark-2.1.0]# tar -zxvf spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz -C /usr/local
[root@study-01 /usr/local/spark-2.1.0]# cd ../spark-2.1.0-bin-2.6.0-cdh6.7.0/
[root@study-01 /usr/local/spark-2.1.0-bin-2.6.0-cdh6.7.0]# ls
bin  conf  data  examples  jars  LICENSE  licenses  NOTICE  python  README.md  RELEASE  sbin  yarn
[root@study-01 /usr/local/spark-2.1.0-bin-2.6.0-cdh6.7.0]#

到此為止,我們的spark就安裝完成了。接下來我們嘗試一下啟動(dòng)Spark的shell終端:

[root@study-01 /usr/local/spark-2.1.0-bin-2.6.0-cdh6.7.0]# ./bin/spark-shell --master local[2]

命令說明:

  • master用于指定使用哪種模式啟動(dòng)
  • local 表示本地模式啟動(dòng),方括號(hào)里的數(shù)字表示開啟幾個(gè)線程

關(guān)于啟動(dòng)spark shell的官方文檔說明:

http://spark.apache.org/docs/2.1.0/submitting-applications.html

啟動(dòng)成功:
初識(shí)Spark

啟動(dòng)成功后,我們來實(shí)現(xiàn)wordcount的案例。官網(wǎng)的快速入門文檔:

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

現(xiàn)在有一個(gè)文件,內(nèi)容如下:

[root@study-01 /data]# cat hello.txt 
hadoop welcome
hadoop hdfs mapreduce
hadoop hdfs
hello hadoop
spark vs mapreduce
[root@study-01 /data]#

在spark shell里完成對(duì)該文件的wordcount:

scala> val file = sc.textFile("file:///data/hello.txt")  # 讀取文件
file: org.apache.spark.rdd.RDD[String] = file:///data/hello.txt MapPartitionsRDD[1] at textFile at <console>:24

scala> file.collect  # 打印讀取的數(shù)據(jù)
res1: Array[String] = Array(hadoop welcome, hadoop hdfs mapreduce, hadoop hdfs, hello hadoop, spark vs mapreduce)

scala> val a = file.flatMap(line => line.split(" "))  # 按空格進(jìn)行拆分
a: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at flatMap at <console>:26

scala> a.collect
res2: Array[String] = Array(hadoop, welcome, hadoop, hdfs, mapreduce, hadoop, hdfs, hello, hadoop, spark, vs, mapreduce)

scala> val b = a.map(word => (word,1))  # 進(jìn)行map操作,給每個(gè)單詞附上1
b: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[3] at map at <console>:28

scala> b.collect
res3: Array[(String, Int)] = Array((hadoop,1), (welcome,1), (hadoop,1), (hdfs,1), (mapreduce,1), (hadoop,1), (hdfs,1), (hello,1), (hadoop,1), (spark,1), (vs,1), (mapreduce,1))

scala> val c = b.reduceByKey(_ + _)  # 進(jìn)行Reduce操作,把每個(gè)相同key的值相加,并整合在一起
c: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[4] at reduceByKey at <console>:30

scala> c.collect
res4: Array[(String, Int)] = Array((mapreduce,2), (hello,1), (welcome,1), (spark,1), (hadoop,4), (hdfs,2), (vs,1))

scala>

如上,可以看到,通過簡單的交互式的代碼我們就完成了對(duì)文件的詞頻統(tǒng)計(jì),并且這些方法都可以形成一個(gè)方法鏈的調(diào)用,所以其實(shí)一句代碼就可以完成wordcount了,如下示例:

scala> sc.textFile("file:///data/hello.txt").flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_ + _).collect
res5: Array[(String, Int)] = Array((mapreduce,2), (hello,1), (welcome,1), (spark,1), (hadoop,4), (hdfs,2), (vs,1))

scala>

我們還可以在web頁面上看到任務(wù)執(zhí)行的信息,訪問主機(jī)ip的4040端口即可,如下:
初識(shí)Spark

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享文章:初識(shí)Spark-創(chuàng)新互聯(lián)
鏈接分享:http://aaarwkj.com/article46/jeehg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站營銷網(wǎng)站設(shè)計(jì)微信小程序、企業(yè)建站網(wǎng)站建設(shè)

廣告

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

手機(jī)網(wǎng)站建設(shè)
在线一区二区三区成人观看| 男人自拍天堂在线观看| 亚洲国产成人午夜精品| 婷婷中文字幕在线视频| 美女少妇性高潮的视频| 亚洲中文字幕婷婷在线| 亚洲欧美一区二区中文字幕 | 亚洲一区二区三区黄色| 欧美午夜一级特黄大片| 日韩欧美人妻一二三四区| 成人午夜三级在线观看| 人体艺术日韩色噜噜| 91欧美日韩精品在线| 亚洲一区二区精品偷拍| 日韩特级黄片在线免费观看| 日韩精品一区二区三区电影在线播放| 亚洲熟乱熟女一区二区| 婷婷色精品一区二区激情| 久久碰国产一区二区三区| 日本一级特黄大片做受在线观看| 毛茸茸的阴户在线观看| 综合国产精品久久久久久| 亚洲天堂av成人在线观看| 久久久之久亚州精品露出| 午夜影院免费在线观看五分钟| 亚洲熟妇一区二区在线| 成人激情视频在线网页| 日韩三级av在线免费观看| 国产区青青操自拍视频| 久久偷拍精品视频久久| 日韩在线一区二区视频观看 | 欧美日韩美足一区二区| 国产区一区二区三在线播放| 2020年最新国产三级网站| 久久蜜臀av一区三区| 性感91美女白丝在线精品| 91日韩人妻一区二区三区| 国产精品综合av一区二区国产馆| 日韩欧美亚洲国产一区久久精品| 成人日韩av免费在线观看| 国产高跟丝袜av专区|