原创 Hadoop on yarn執行過程

yarn:只做運算資源的分配和調度,不參與用戶程序內部工作, 正因爲如此,我們的yarn可以成爲一個通用的調度平臺, 所以,包括我們的mr程序、storm程序、spark程序都可以運行在我們的yarn集羣上 mapreduce和yarn的

原创 Spark map-side-join 關聯優化詳細說明

將多份數據進行關聯是數據處理過程中非常普遍的用法,不過在分佈式計算系統中,這個問題往往會變的非常麻煩,因爲框架提供的 join 操作一般會將所有數據根據 key 發送到所有的 reduce 分區中去,也就是 shuffle 的過程。造成大

原创 RDD相關概念

RDD概念: RDD 定義爲彈性分佈式數據集,包含了只讀的、分區的、分佈式計算的概念;RDD是個類 1、一個數據分區的列表(hdfs的所有數據塊的位置信息,保存在RDD類成員變量Array中) 2、保存了數據塊上面的計算方法,這個計算方法

原创 RDD介紹

transformation 轉換: map: lines.map(word => (word,1)) filter: lines.filter(word => word.cotains("hello")) flatmap 壓扁: 一個輸

原创 創建KeyValues對RDDS

map()函數 返回key/value 例如,包含數行數據的RDD,把每行數據的第一個單詞作爲keys sc.textFile("/user/tast.txt").map(line=>(line.split(" ")(0),line))

原创 mapreduce和yarn的交互過程

yarn:只做運算資源的分配和調度,不參與用戶程序內部工作, 正因爲如此,我們的yarn可以成爲一個通用的調度平臺, 所以,包括我們的mr程序、storm程序、spark程序都可以運行在我們的yarn集羣上 mapreduce和yarn的

原创 Spark Streaming介紹以及案例

概觀 Spark Streaming是核心Spark API的擴展,可實現實時數據流的可擴展,高吞吐量,容錯流處理。 數據來源:Kafka,Flume,Kinesis或TCP套接字等, 可以使用高級函數進行復雜算法進行處理map,例如re

原创 spark架構及生態

通常當需要處理的數據量超過了單機尺度(比如我們的計算機有4GB的內存,而我們需要處理100GB以上的數據)這時我們可以選擇spark集羣進行計算,有時我們可能需要處理的數據量並不大,但是計算很複雜,需要大量的時間,這時我們也可以選擇利用s

原创 設置免密碼登錄

1.生成公鑰私鑰   ssh-keygen 2.把公鑰放到authorized_keys裏    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 3.設置權限,不然不可用:    chmod

原创 創建一個scala的maven項目

1 創建Maven工程 <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>1.6.2</vers

原创 IDEA plugins安裝插件不成功 下載失敗【解決辦法】

使用IDEA中,需要用到插件,在plugins中始終無法下載插件的解決辦法 在settings中的system settings--> updates--> use secure connection,如下圖所示,不勾選這個選項

原创 Lists.partition用法

將list集合按指定長度進行切分,返回新的List<List<??>>集合,如下的:   List<List<Integer>> lists=Lists.partition(numList,3);

原创 Scala創建一個非常簡單的Spark程序

請注意,應用程序應定義main()方法。 該程序只計算包含'a'的行數和Spark README中包含'b'的數字。請注意,您需要將YOUR_SPARK_HOME替換爲安裝Spark的位置。與之前使用Spark shell(初始化自己的S

原创 spark緩存

Spark還支持將數據集提取到羣集範圍的內存緩存中。這在重複訪問數據時非常有用,例如查詢小的“熱”數據集或運行像PageRank這樣的迭代算法時。舉個簡單的例子,讓我們標記linesWithSpark要緩存的數據集: scala> va

原创 spark數據集操作

  首先將一行映射爲整數值,從而創建一個新的數據集。reduce在該數據集上調用以查找最大字數。 scala> textFile.map(line => line.split(" ").size).reduce((a, b) => if