原创 MapReduce自定義GroupingComparator

需求: 有如下訂單明細數據 0000001 01 222.8 0000002 06 722.4 0000001 05 25.8 0000003 01 222.8 0000003 01 33.8 0000002 03 522.8 0

原创 SparkSQL讀取和寫出數據的幾種方式

一、parquet格式的數據 parquet是一種列式存儲格式的文件類型。存儲時可以通過牛X的壓縮算法節省存儲空間,讀取數據時只需要讀取所需的列,提高讀取性能。 1. 生成parquet格式的數據 使用 Idea 或 ScalaI

原创 mapreduce自定義inputformat

背景 無論是 hdfs 存儲文件還是 mapreduce 處理文件,對於小文件的存儲和處理都會影響效率,在實際工作中又難免面臨處理大量小文件的場景(比方說用 flume 實時採集日誌,日誌是由用戶發送請求而產生的,用戶發送請求的頻

原创 什麼是響應時間,併發數,吞吐量?

1. 響應時間 1.1. 概念 指應用執行一個操作所需的時間,包括從發出請求開始到最後收到響應所需要的時間。拿我們平常瀏覽網站點擊鏈接爲例,響應時間大致包括如下幾步: 用戶通過鼠標或鍵盤發出請求操作 瀏覽器構造請求(請求頭,請求

原创 Storm集成 JDBC

創建 maven 工程,pom 文件如下: <dependencies> <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core

原创 PriorityQueue的實際應用場景

PriorityQueue 名叫優先級隊列,底層由堆結構實現,默認是小根堆。通過 offer 方法添加進去的元素會進行堆排序,最小的元素放在堆頂。通過 peek 方法可以獲得堆頂(最小)元素。通過 poll 方法可以刪除堆頂元素同

原创 YYYY-MM-dd跨年年份錯誤問題

一、問題描述 項目中每天執行的一個定時任務在 2019 年 12 月 29 日 - 2019 年 12 月 31 日這三天沒有執行。 經排查,發現是在使用 SimpleDateFormat 格式化日期的時候,用了 “YYYY-MM

原创 如何用 Hive 的內置函數 parse_url 統計出訪問量最高的前 3 個url?

一、需求 使用 Hive 統計出過去 7 天的訪問日誌中訪問次數最多的前 3 個 url 的請求路徑。 二、知識點 使用 Hive 的內置函數 parse_url 解析出 url 字段中的請求路徑,官網(Hive內置函數)示例如下

原创 Java獲取集合中重複的元素

需求 我們在下訂單的時候,收件人的地址信息可能會有多個,現在的需求是把一些重複的地址信息刪除掉。 姓名,電話,省,市,區,詳細地址完全相同則認爲是同一個收件人。 分析 地址是存在數據庫的表裏的,所以我們需要先查出每個收件人下重複的

原创 如何開發SparkSQL項目?

前言 Spark是企業中用的比較多的大數據計算框架,它主要由 SparkCore、SparkSQL、SparkStreaming 這三個模塊組成,實時計算主要使用 SparkStreaming,離線部分的數據處理則主要使用Spar

原创 thymeleaf實現th:each雙重多重嵌套使用

博主最近在做一個個人的博客網站,準備用 thymeleaf 實現一個動態加載一二級文章分類的功能,效果如下: 後臺實體類代碼如下: /** * @author 曲健磊 * @date 2019-08-22 20:28:18

原创 FileInputFormat.setInputPaths的執行原理

今天在看 MapReduce 源碼的時候看了一下 FileInputFormat 的 setInputPaths 方法,內容如下: /** * Set the array of {@link Path}s as the

原创 Flume簡介

(一)什麼是Flume? Flume 是一個用 Java 編寫的用於採集日誌的框架。我們可以配置 Flume 監控一個文件的末尾,當文件內容發生變化的時候實時的將數據採集到 HDFS 上;也可監控一個目錄,當這個目錄新增了文件時,

原创 MapReduce性能優化祕籍

1. MapReduce跑的慢的原因 MapReduce 程序效率的瓶頸在於兩點: 計算機性能 CPU、內存、磁盤、網絡 I/O 操作 數據傾斜 map 和 reduce 數設置不合理 map 運行時間太長,導致 reduce

原创 Hive性能優化祕籍

1. Fetch抓取 Fetch 抓取是指,Hive 中對某些情況的查詢可以不必使用 MapReduce 計算。例如:SELECT * FROM employees; 在這種情況下,Hive 可以簡單地讀取 employee 對應