原创 Spark任務提交流程(整理版)

Spark的任務, 生產環境中一般提交到Yarn上執行. 具體流程如下圖所示 1、client提交任務到RM. 2、RM啓動AM. 3、AM啓動Driver線程, 並向RM申請資源. 4、RM返回可用資源列表. 5、AM通過nmC

原创 Spark任務提交流程

Spark的任務, 生產環境中一般提交到Yarn上執行. 具體流程如下圖所示 1、client提交任務到RM. 2、RM啓動AM. 3、AM啓動Driver線程, 並向RM申請資源. 4、RM返回可用資源列表. 5、AM通過nmClien

原创 SparkSQL優化之輸入小文件是否需要合併?

Note: spark版本2.3.1 HiveSQL優化時, 輸入分片需要開啓參數進行合併, 否則會產生很多分片. 那麼SparkSQL是如何應對大量輸入小文件的呢? 本例以Hive表爲例(大量parquet小文件, 可切分).

原创 Spark-Core、Spark-SQL的內核機制

Spark基於內存運算, 是MapReduce的下一代替換計算框架, 主要包含Spark-Core、Spark-SQL、Spark-Streaming、Spark-ML. 本系列只介紹Spark-Core和Spark-SQL的內核機制.

原创 SparkSQL 如何把sqlText轉化成RDD可以執行的tasks 系列

​​​​​​​​​​​​​​​​​ 上圖是一個通用的SparkSQL底層執行流程圖. 具體流程如下描述(上圖是一個lazy函數, 遇到active函數纔會執行): 一、SparkSQL通過parser(解析器), 把sqlText

原创 Using Catalyst in Spark SQL

在SparkSQL中, 把一條SQL語句轉化成對應的RDD任務, 完成這一過程(後續用"解析SQL到RDD"過程代替這一過程)全部在Catalyst框架實現.   "解析SQL到RDD"這一過程, 主要包含了4個組成部分, 如下圖所示

原创 intellij IDEA 如何設置默認的maven配置?

我自己本機配置了一個maven環境。每次新開一個項目都要重新選擇一個maven的配置,默認的都是這個。如圖:     設置 裏面去改爲自己要的設置

原创 中臺戰略 -- 阿里市值即將超越 亞馬遜+微軟+騰訊(非遊戲)

2020-03-23修改: 微軟做企業項目收入佔比很少.   阿里 = 亞馬遜 + 微軟 + 騰訊 最近一直在研究中臺, 和阿里的中臺自搭建平臺. 腦海中有個可能不太切合實際的想法, 阿里未來的想象力會很大, 市值也許會超越亞馬遜+微軟+

原创 [轉]SparkSQL的自適應執行---Adaptive Execution

1 背景 本文介紹的 Adaptive Execution 將可以根據執行過程中的中間數據優化後續執行,從而提高整體執行效率。核心在於兩點 執行計劃可動態調整 調整的依據是中間結果的精確統計信息 2 動態設置 Shuffle Pa

原创 scala判斷數據類型

在python中, 可以通過"type(instants)"去判斷類型. scala中, 判斷一個數據或者對象的類型只需要在該對象後面添加 .getClass.getSimpleName  scala> 222.getClass.get

原创 ES(elasticsearch)安裝教程

安裝過程基本來自互聯網, 有一個小問題需要解決. centos中 ulimit -n (默認是1024), ES需要65536, 所以我們需要修改. 修改的方法, 網上有很多, 大多都不可用. 本人試坑後, 以下可用. vim /etc/

原创 Python容器之列表

一、列表的使用方法 下圖列出列表的使用方法 二、列表使用方法拓展 1、列表作爲棧使用(推薦) ①、棧的定義: 棧是計算機數據結構中的術語, 它按照先進後出的原則存儲數據. ②、列表作爲棧的使用: 列表的append()方法, 可以

原创 pyspark連接Postgresql出錯. java.lang.ClassNotFoundException: org.postgresql.Driver

pyspark連接Postgresql的方法 方法一: 在spark2/jars路徑中放的Postgresql jar 包不起作用.(報錯) 方法二: 在spark.conf.set中設置 spark.conf.set('spark.ja

原创 Spark DataFrame join後移除重複的列

在Spark,兩個DataFrame做join操作後,會出現重複的列。有兩種方法可以用來移除重複的列。 方法一:join表達式使用字符串數組(用於join的列) df1.join(df2, Seq("id","name"),"le

原创 Scala基礎知識點

1、val和var區別 val是定義常量, var是定義變量. 因此val定義的參數, 不能再次被賦值. 而var定義的參數, 可以再次賦值. 點贊 收藏 分享 文章舉報 Mic