原创 sparkSql中的那些函數

對於sparksql的應用企業基本只要屬於大數據相關的互聯網公司都會安裝和使用spark,而sparksql對於對於那些不熟悉sparkapi的人更是一件利器,這對於熟悉mysql的人如虎添翼,好了,廢話不多說,我們看下sparksql中

原创 hbase 錯誤調用表讀方法引發的血案

記一次錯誤調用hbase讀方法引發的血案 需求說明 目前公司的數據庫存在上前億級別的GPS座標點,數據量在幾十至百TB級別,這些座標需要獲取從百度、高德等網站上更新獲取該點對應的服務信息,即一個座標點對應一條該座標的描述信息。如果將這些座

原创 如何快速寫出Mysql 語句

如何快速寫出Mysql 語句 一遇到sql語句不會,或遇到複雜的sql頭疼,是很多人的通病,尤其對於一些新手。本文將重點教大家如何快速的寫出sql語句。 遵循如下原則:  1.將要查詢的業務列出來。 2.將要做判斷或過濾的東西放在wher

原创 SparkStreaming從入門到放棄(五)

ReceiverTracker詳解 回顧,數據產生與導入 的基本工作流程: (1) 由 Receiver 的總指揮 ReceiverTracker 分發多個 job(每個 job 有 1 個 task),到多個 executor 上分別啓

原创 SparkStreaming從入門到放棄(一)

在講sparkStreaming之前先思考:如果讓自己基於spark實現sparkStreaming該如何做? (1)首先假設我們的spark實現瞭如下簡單功能 那現在是spark流一定用來一個上面的模板對一批一批的rdd處理,應該是這

原创 SparkStreaming從入門到放棄(三)

本文主要講解Dstream 如何生成RDD以及如何驅動RDD的調用的? (1)從Dstream.print()開始 將數據打印出來,取前面幾條,最後調用的是: 而regester中是直接將結果作爲輸出ssc.graph.addOutp

原创 SparkStreaming從入門到放棄(四)

從job角度看sparkStreaming 回顧前文,JobGenerator 維護了一個定時器,週期就是我們剛剛提到的 batchDuration,定時爲每個 batch 生成 RDD DAG 的實例,DStreamGraph.gene

原创 SparkStreaming從入門到放棄(二)

本節主要針對Dstream 靜態模板的講解。回顧RDD,rdd是一個只讀的數據集,因此不難知道,dstream也是一個數據集,也有transfermation和output。在dstreaming中,transfermation有map\

原创 分佈式鎖之zookeeper

引言 在上一篇文章分佈式事務之數據庫鎖中,我們明白了基於mysql數據庫行鎖能完成分佈式事務,同時在最後留了個問題:當某個app加完行鎖後因爲某種原因非正常退出,此時該app並未釋放行鎖,導致其他app沒法獲取鎖,該如何處理?接下來這篇文

原创 分佈式事務之數據庫鎖

問題描述 最近有個項目功能需求是需要我們獲取一條mysql的記錄,對其處理,處理完後再寫回es和mysql,然後更新該msyql記錄,因爲我們是多用戶併發操作,在此處理過程中需要嚴格保證只容許一個線程一個時候佔用。即需要在mysql和el

原创 高併發及負載均衡之分表分庫

先從公司的最近的一個大數據項目談起。最近公司有一個項目,設計到大量的數據,設計到數據的存儲查詢同時還需要保證高併發,那現在如何解決存儲和負載均衡的問題?下面的文章將該問題結合目前的數據庫,談談它們在存儲和負載方面有哪些解決方案。 爲什麼要

原创 spark 運行模式解析

上篇文章講解了spark submit的提交至spark 集羣,但是spark 程序如何在集羣中運行並未講解,這篇文章將圍繞spark運行在集羣下不同模式講解,並說明他們的區別是什麼? 通常我們spark 提交任務時都會使用如下命令:

原创 Spark submit 啓動流程解析

用戶通過將spark程序打成jar包提交給spark集羣,其中的入口是spark-summit,比如spark官方文檔中運行WordCount程序: spark-submit \ --class org.apache.spark.e

原创 Hive 表的連接

Hive表常用連接 對於直接在mapReduce中用join相比,hive的好處是簡化了繁瑣的處理工作,hive表的連接操作就是如此,本文主要講解hive的4中主要連接:內連接、外連接、半連接、map連接。 我們用如下的sales,thi

原创 kafka分佈式爬蟲系統-任務的發放

任務的發放 任務發放應該是一個全局的總機,它主要和用戶打交道,用來接收用戶的請求,然後將用戶的請求轉換成機器能執行的任務。用戶就不需要關心任務是如何發放的,只要將想要抓的網站或內容分配給總機即可。這裏些問題需要考慮是:1.如何保證任務能有