新闻网大数据实时分析可视化系统项目——14、Spark2.X环境准备、编译部署及运行...
1.Spark概述
Spark 是一個用來實現快速而通用的集群計算的平臺。
在速度方面, Spark 擴展了廣泛使用的 MapReduce 計算模型,而且高效地支持更多計算模式,包括交互式查詢和流處理。 在處理大規模數據集時,速度是非常重要的。速度快就意味著我們可以進行交互式的數據操作, 否則我們每次操作就需要等待數分鐘甚至數小時。
Spark 的一個主要特點就是能夠在內存中進行計算, 因而更快。不過即使是必須在磁盤上進行的復雜計算, Spark 依然比 MapReduce 更加高效。
2.Spark生態系統
3.Spark學網站
1)databricks 網站
2)spark 官網
3)github 網站
4.Spark2.x源碼下載及編譯生成版本
1)Spark2.2源碼下載到bigdata-pro02.kfk.com節點的/opt/softwares/目錄下。
解壓
tar -zxf spark-2.2.0.tgz -C /opt/modules/
2)spark2.2編譯所需要的環境:Maven3.3.9和Java8
3)Spark源碼編譯的方式:Maven編譯、SBT編譯(暫無)和打包編譯make-distribution.sh
a)下載Jdk8并安裝
tar -zxf jdk8u11-linux-x64.tar.gz -C /opt/modules/
b)JAVA_HOME配置/etc/profile
vi /etc/profile
export JAVA_HOME=/opt/modules/jdk1.8.0_11
編輯退出之后,使之生效
source /etc/profile
c)如果遇到不能加載當前版本的問題
rpm -qa|grep jdk
rpm -e --nodeps jdk版本
which java 刪除/usr/bin/java
d)下載并解壓Maven
下載Maven
解壓maven
tar -zxf apache-maven-3.3.9-bin.tar.gz -C /opt/modules/
配置MAVEN_HOME
vi /etc/profile
export MAVEN_HOME=/opt/modules/apache-maven-3.3.9
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=1024M -XX:ReservedCodeCacheSize=1024M"
編輯退出之后,使之生效
source /etc/profile
查看maven版本
mvn -version
e)編輯make-distribution.sh內容,可以讓編譯速度更快
VERSION=2.2.0
SCALA_VERSION=2.11.8
SPARK_HADOOP_VERSION=2.5.0
#支持spark on hive
SPARK_HIVE=1
4)通過make-distribution.sh源碼編譯spark
./dev/make-distribution.sh --name custom-spark --tgz -Phadoop-2.5 -Phive -Phive-thriftserver? -Pyarn
#編譯完成之后解壓
tar -zxf spark-2.2.0-bin-custom-spark.tgz -C /opt/modules/
5.scala安裝及環境變量設置
1)下載
2)解壓
tar -zxf scala-2.11.8.tgz -C /opt/modules/
3)配置環境變量
vi /etc/profile
export SCALA_HOME=/opt/modules/scala-2.11.8
4)編輯退出之后,使之生效
source /etc/profile
6.spark2.0本地模式運行測試
1)啟動spark-shell測試
./bin/spark-shell
scala> val textFile = spark.read.textFile("README.md")
textFile: org.apache.spark.sql.Dataset[String] = [value: string]
?
scala> textFile.count()
res0: Long = 126
?
scala> textFile.first()
res1: String = # Apache Spark
?
scala> val linesWithSpark = textFile.filter(line => line.contains("Spark"))
linesWithSpark: org.apache.spark.sql.Dataset[String] = [value: string]
?
scala> textFile.filter(line => line.contains("Spark")).count() // How many lines contain "Spark"?
res3: Long = 15
2)詞頻統計
a)創建一個本地文件stu.txt
vi /opt/datas/stu.txt
hadoop? storm?? spark
hbase?? spark?? flume
spark?? dajiangtai???? spark
hdfs??? mapreduce????? spark
hive??? hdfs??? solr
spark?? flink?? storm
hbase?? storm?? es?????
solr??? dajiangtai???? scala
linux?? java??? scala
python? spark?? mlib
kafka?? spark?? mysql
spark?? es????? scala
azkaban oozie?? mysql
storm?? storm?? storm
scala?? mysql?? es
spark?? spark?? spark
b)spark-shell 詞頻統計
./bin/spark-shell
scala> val rdd = spark.read.textFile("/opt/datas/stu.txt")
#詞頻統計
scala> val lines = rdd.flatmap(x => x.split(" ")).map(x => (x,1)).rdd.reduceBykey((a,b) => (a+b)).collect
#對詞頻進行排序
scala> val lines = rdd.flatmap(x => x.split(" ")).map(x => (x,1)).rdd.reduceBykey((a,b) => (a+b)).map(x =>(x._2,x._1)).sortBykey().map(x => (x._2,x._1)).collect
7.spark 服務web監控頁面
通過web頁面查看spark服務情況
bigdata-pro01.kfk.com:4040
轉載于:https://www.cnblogs.com/ratels/p/10845039.html
總結
以上是生活随笔為你收集整理的新闻网大数据实时分析可视化系统项目——14、Spark2.X环境准备、编译部署及运行...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学里为什么有的人会认识很多学长,本学院
- 下一篇: 2018房子抵押贷款利率