-
新建一個 Scala 類
查看全部 -
Transformation? 從一個 RDD 構建新的 RDD??
查看全部 -
RDDs 介紹: 彈性分布式數據集,所有的計算都是通過 RDDs “創建-轉換-完成”的
.textFile("/xx" ) 導入的文件過大時,會自動分割文件,在集群中分割
------------------------------------------------
.parallelize(x,x) 方法,將已存在的集合對象,按分區分片導入 RDD 對象
Scala? 腳本語法: val 常量? ? ?var 變量 (可重新指向,但必須是同類型)
------------------------------------------------
Scala 語法: 匿名函數當做參數 .filter=>(line.contains("xx"))
查看全部 -
演示了 ssh 不需要輸密碼的修改
執行 ssh-keygen (一路回車)
執行 cd .ssh 看到幾個文件,其中 .pub 為公鑰
創建文件 authorized_keys 文件
執行 cat 文件 > 文件? ?(把那個 .pub 導入?authorized_keys )
chmod 600 authorized_keys
驗收:再執行 ssh? localhost 看到啟動后不需要輸入密碼
---------------------------------------------------------------
給集群提交作業,也是把作業(工程)打包成? jar 然后上傳到服務路徑
./bin/spark-submit? ....? ?xx.jar (工程)?
查看全部 -
scala 在 idea 里新建 java 項目,在 idea 搜素插件 scala 并安裝(已經安裝了)
file -> new project -> sbt (表示用 sbt 打包) 等待生成各種目錄和文件
版本匹配: scala , spark , jdk , sbt 的版本都要匹配
查看全部 -
spark? 基于 scala 運行在 jvm 環境中 1.7版本以上
spark 不依賴 hadoop
目錄:
????bin 可執行文件
????core streaming python 包含組件源代碼
????examples 包含單機 job 例子,以供研究
執行命令:
./spark-shell? (等待時間較長)
在執行成功后可看到 scala> 提示符,然后就可以使用 python 進行交互了
查看全部 -
hadoop 缺點:離線處理,導致時效性差,幾分鐘幾小時為單位
spark 有點:時效性高,在內存里進行
查看全部 -
Spark Core :任務調度,內存管理,容錯機制
RDDs : 彈性分布式數據集
Spark SQL:處理結構式數據
Mlib: 機器學習相關的包(支持集群擴展,python 缺點是單機性能有限)
查看全部 -
Spark 快速且通用的集群計算平臺
-快速,比hadoop快,基于內存的 MapReduce(計算結果中間數據在內存中)
-通用,應用場景更多,批處理,迭代計算,交互查詢,流處理
由 scala 語言編寫,但是 python java 也支持
查看全部 -
combineByKey():
(createCombiner, mergeValue, mergeCombiners, partitioner)
最常用的基于key的聚合函數,返回的類型可以與輸入類型不一樣。
許多基于key的聚合函數都用到了它,像groupByKey()
遍歷partition中的元素,元素的key,要么之前見過的,要么不是。
如果是新元素,使用我們提供的createCombiner()函數
如果是這個partition中已經存在的key,就會使用mergeValue()函數
合并每個partition的結果的時候,使用mergeCombiners()函數
查看全部 -
keyvalue對rdds:
創建keyvalue對rdds,使用map()函數,返回key/value對
例如,包含數行數據的rdd,把每行數據的第一個單詞作為keys。
查看全部 -
RDDs血統關系圖
Spark維護著RDDs之間的依賴關系和創建關系,叫做 血統關系圖
Spark使用血統關系圖計算每個RDD的需求和恢復丟失的數據
dds的特性
延遲計算:
spark對rdds的計算是,他們第一次使用action操作的時候;
這種方式在處理大數據的時候特別有用,可以減少數據的傳輸;
spark內部記錄metadata 表名tranformations操作已經被響應了;
加載數據也是延遲計算,數據只有在必要的時候,才會被加載進去。
查看全部 -
rdd基本操作之action介紹,
action表示在rdd上計算出來一個結果。
把結果返回給driver program或保存在文件系統,count()、save都算是基本的action。
查看全部 -
集合運算
RDDs支持數學集合的計算,例如并集、交集等
rdd transformations(轉換二)操作:集合運算
1.distinct :去除重復
2.subturast: rdd1.subtruast(rdd2),rdd1中有的,而rdd2中沒有的
3.union。并集:rdd1.union(rdd2),取rdd1和rdd2中所有的數據
4.innter:交集:取rdd1與rdd2相同的部分val rdd_distinct = rdd1.distinct()
val rdd_union = rdd1.union(rdd2)
val rdd_inter = rdd1.intersection(rdd2)
val rdd_sub = rdd1.subtract(rdd2)
Map() ? Filter() Flatmap()壓扁
rdd transformations(轉換二)操作:集合運算
1.distinct :去除重復
2.subturast: rdd1.subtruast(rdd2),rdd1中有的,而rdd2中沒有的
3.union。并集:rdd1.union(rdd2),取rdd1和rdd2中所有的數據
4.innter:交集:取rdd1與rdd2相同的部分5. subtract 包含? rdd1有rdd2的沒有的部分
查看全部 -
Transformations(轉換)
從之前的RDD構建一個新的RDD,像map()和filter()
逐元素Transformations:
map()接收函數,把函數應用到RDD的每一個元素,返回新RDD
filter()接收函數,返回只包含滿足filter()函數的元素的新RDD
flatMap(),對每個輸入元素,輸出多個輸出元素。flat壓扁的意思,將RDD中元素壓扁后返回一個新的RDD
val lines = inputs.flatMap(line=>line.split(" "))
lines.foreach(println)
查看全部 -
Scala的匿名函數
查看全部 -
Scala的匿名函數
查看全部 -
Driver program:包含了main方法
sparkContext:鏈接spark集群,一般直接使用shell創建好的對象sc即可
rdds:彈性分布數據集,spark如果大數據量時會自動將片分配到每一個節點上,各個片的總名稱就是rdds 對象
創建rdds的兩種對象:
1.使用sc.prilize對象
2.使用sc.textFile()加載外部對象
3.scala:匿名函數和類型推斷。
line2.Filter(line=>line.contains("world"))
即line2通過Filter的方法將每一行賦值給line,然后line在調用contains方法確認哪一行是否包含有world,這個單詞,有則返回給lineRDD不可改變的分布式數據集合對象
所有的計算都是RDD的生成,轉換操作完成
一個RDD內部由許多partitions分片組成
分片是并行處理單元, spark底層會并行的,或者順行的處理。
RDDs創建#scala
val?rdd=?sc.parallelize(Array(1,2,3,4),4)
#參數1:待并行化處理的集合
#參數2:分區個數
rdd.count()? ?//計算個數
rdd.foreach(println)? //遍歷
#加載外部數據
val?rddText?=?sc.textFile("hello.txt")Scala基礎#變量
val?變量值不可修改
var?可指向類型相同的值
#匿名函數和類型推斷??自動推斷line是string類型,可調用contain方法
lines.filter(line?=>?line.contains("world"))查看全部 -
spark的運行環境:
????基于Scala ,運行在JVM,運行環境Java7+
spark下載:
????搭建spark不需要Hadoop,下載后解壓
????虛擬機(Linux)聯網狀態下,通過? wget+下載鏈接
????Linux解壓命令? tar -zxvf spark.....
spark目錄
????bin目錄-可執行文件
????core,streaming主要包含組件源代碼
????examples 包含單機例子
spark的shell:
????梳理分布在集群上的數據
????可以將數據加載到節點的內存中,因此分布式處理可在秒級完成。
????快速迭代計算,實時查詢、分析
????spark提供了Python shell和Scala shell
Scala shell
????/bin/spark-shell
查看全部 -
Hadoop應用場景:離線處理、對時效性要求不高(執行時間幾分鐘到幾小時不等);
Spark應用場景:時效性要求高的場景、機器學習等領域。
兩者比較:
這是生態系統,每個組件都有其作用,各善其職即可;
Spark不具有HDFS的存儲能力,要借助HDFS等持久化數據;
大數據將會孕育出更多的新技術
查看全部 -
spark core:
????包含spark的基本功能,任務調度,內存管理,容錯機制
????內部定義了RDDs,彈性分布式數據集
spark sql:
????是spark處理結構化數據的庫
spark streaming:
????實時數據流處理組件
milb:
????包含通用機器學習功能的包,分類,聚類,回歸
????支持起群上的橫向擴展
graphx:
????處理圖的庫,并進行圖的并行計算
cluster managers:??
????集群管理
緊密集成的優點
????spark底層優化了,基于spark的底層組件也會得到相應的優化。
緊密繼承節省了各個組價組合使用時的部署,測試等時間
向spark增加新的組件時,其他組件,可立刻享用新組建的功能。
查看全部
舉報