原创 Kerberose安裝與CDH集成

Kerberose安裝與CDH集成 文章目錄Kerberose安裝與CDH集成1.Kerberose安裝1.1. 軟件版本1.2. 集羣角色1.3. 安裝JCE Policy File1.4. 安裝Kerberos1.5. 配置K

原创 提升小規模HDP集羣的作業並行度

對於團隊使用的一些小型的Hadoop集羣來說,由於資源有限,團隊成員又多,並行開發和測試又密集,很容易出現資源緊張,作業被pending無法執行的情況,最大化的配置集羣作業的並行度是開發環境的集羣所必須的。 1. Yarn Queu

原创 Hive JDBC連接Tez(AM)容器長期不釋放問題的解決方法

問題 有這樣一個問題是很常見的:如果我們的Hive使用默認使用Tez作爲執行引擎,當我們使用IDE通過Hive JDBC連接時,會出現在一個很“有趣”的想象:即如果我們不斷開這個JDBC連接,則在Yarn上會持續有有一個Tez的AM容

原创 Spark SQL和Hive在處理日期/時間上的差異

注: 本文使用的環境是:Spark:2.2, Hive: 1.2.1 最近在編寫一個SQL的過程中遇到了這樣一個陷阱:爲了便於工作,SQL的編寫是通過一個SQL的IDE環境以Hive JDBC驅動的方式連接到HIVE上去執行的,SQL

原创 Kerberos筆記

本文以《Hadooop Security》等資料爲基礎,羅列關於Kerberos的一些重要內容的筆記。 文章目錄Kerberos的基本思想沒有Kerberos時,Hadoop是如何工作的?Kerberos概述1. Principal2

原创 數倉CUBE操作術語備忘

SLICE (切片) 將某一個(或多個)維度上的值鎖定,只觀察當這個維度取這個值時的情形,相當於將一個立方體做了一個切片。 DICE (切塊) 將某一個(或多個)維度上的值固定在一個區間內,觀察這個取值區間內cube的情形,相當於將

原创 時間序列大數據平臺建設經驗談

版權聲明:本文由本人撰寫並發表於2018年1月刊的《程序員》雜誌,本文版權歸《程序員》雜誌所有,未經許可不得轉載。 引言 在大數據的生態系統裏,時間序列數據(Time Series Data,簡稱TSD)是很常見也是所佔比例最大的一類數據

原创 Spark基於事件時間的“狀態”流的深層分析 - withWatermark與mapGroupsWithState的關係

不管是基於watermark的窗口計算還是自維護的狀態流,它們都是有狀態的,watermark只是規定了數據進入“狀態”(有資格參與狀態計算)的條件,並沒有(也不適合)聲明狀態的“退出”機制。對於watermark的窗口計算來說,它們的“

原创 Spark Structured Streaming多流multiple streams)多查詢(multiple queryies)問題

Structured Streaming作爲Spark新一代的流計算編程模型,針對流計算提供了很多新的的高級的API進行支持,這使得它比DStream要好用的多,同時編碼量也大幅度地減少,但是在當前版本V2.3下, Structured

原创 Spark Structured Streaming: 自維護(任意)狀態流的“超時”(Timeout)問題

此“超時”非彼“超時” 在我們開始這篇文章之前,我們必須要先弄清除一下問題:爲什麼流的上的狀態會有“超時”問題?超時機制是爲什麼樣的業務場景而設計的?通常情形下,人們一種直白的想法是:某種狀態在長時間沒有得到來自新數據的更新時,我們可以認

原创 Spark性能調優系列二:Spark流計算重要性能參數測試與分析

參數介紹 spark.scheduler.mode spark.streaming.concurrentJobs scheduler線程池 測試用例 Test Case Group 1: FIFO vs. FAIR Test C

原创 命令模式:若只如“初見”

版權聲明:本文由本人撰寫並發表於InfoQ, 原文鏈接: http://www.infoq.com/cn/news/2018/01/Command-mode-if-only-first-see 似曾相識 最近在InfoQ上看到一篇談論命令

原创 Spark報java.util.NoSuchElementException: head of empty list錯誤的解決方法

如果在Spark Structured Streaming上使用了Arbitrary Stateful Operations, 也就是使用了mapGroupsWithState或flatMapGroupsWithState方法,而其中Gr

原创 謹慎使用Scala Map的mapValues, 你需要的可能是transform

沒有踩過mapValues的坑之前,我相信大多數人會認爲mapValues和所有其他map類方法的邏輯是一樣的:對Map裏所有的value施加一個map函數,返回一個新的Map。但實際情況卻並不這麼簡單,還是先看一段“詭異”的代碼吧 (本

原创 領域驅動設計(Domain Driven Design)參考架構詳解

領域驅動設計(Domain Driven Design)參考架構詳解摘要本文將介紹領域驅動設計(Domain Driven Design)的官方參考架構,該架構分成了Interfaces、Applications和Domain三層以及包含