原创 sclal,實現case class類的時候 業務字段過多導致的異常。不能超過22個字段

一、背景 1、在scala-2.10.x版本種,case class的元素超過22個以後即會編譯報錯 2、有些業務場景下,需要超過22個元素的值   我們項目當中日誌一共有105個字段,在對原始日誌進行處理轉換成parquet文件的過程中

原创 azkaban設置依賴,並且多個任務並行執行

在azkaban的任務調度中,設置依賴可以完成對任務的調度, 腳本如下: 第一個job:命名爲    ods_actlog.job --- config: #failure.emails: xx@xx nodes: - nam

原创 sqoop錯誤:Access denied for user 'root'@'mini1' (using password: YES)

在用sqoop將MySQL的數據導入到hive中的時候出現的錯誤: ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access

原创 sqoop錯誤-ERROR manager.SqlManager: Error reading from database: java.sql.SQLException:

ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.Ro

原创 用sqoop將MySQL的數據導入到Hive分區表中

在工作中,我們經常遇到的業務就是要將MySQL每天差生的生產數據定時導入到Hive的分區表中,然後根據分區表中的數據進行“數倉建設”,各種數據處理。 那麼怎麼運用sqoop將MySQL的數據導入到hive的分區表中吶? 首先,不能再用--

原创 hive分區表中--新增字段,發現數據爲null的坑

數倉開發過程中,經常會有需求變更,添加字段的情況所在,添加完了字段還需要重新跑數據,重新將這個字段的數據加載進去,但是會出現一個坑就是加載的數據爲null。 問題所在: 對於分區表添加字段,向已存在分區中插入數據,結果新增字段的值全部爲

原创 hive優化之謂詞下推

所謂hive中的謂詞下推指的是:  hive中join操作:如果直接兩個表進行join,在最後再進行兩個表的where條件過濾,這樣的話實際上hive會將兩個表先join起來,最後join出來的大表再進行where篩選,這樣的話導致了全表

原创 hive之union、union all的列名不統一的記錄

在MySQL中,union和union all中,只需要列的數量對應,這樣就可以完成union和union all操作。 但是在hive中,我也是這樣想的,於是,我並沒有關注列名必須一致,只是關注了列數量一致,這樣的話,其實也是可以的,比

原创 hive實現全自動動態分區

我們在業務中往往會遇到一種情況就是: 現有的業務已經有很多的數據堆積,並且需要根據現有的數據以分區的形式來建立數據倉庫,這樣的話就需要將表中的一個字段作爲分區字段,以這個字段的值作爲分區的依據。 那麼就需要動態分區進行處理: 首先需要設置

原创 數倉項目中azkaban的工作錯誤總結!

一、寫成的sql文件提交到azkaban中,進行任務調度: 博客中有對azkaban的學習,可以看一下,這裏主要記錄一下azkaban的坑 1、調度文件:*.job,這個文件以.job結尾,其中,格式是這樣的: --- config:

原创 hive中根據身份證號碼獲取年齡

select id_no, id_no, case when length(id_no) = 18 then floor(datediff( from_unixtime(unix_timestamp()

原创 Azkaban錯誤:User xml file home/bigdata/cluster/azkaban/server/conf/azkaban-users.xml doesn't exist.

安裝azkaban過程中啓動相關的服務出現錯誤: bigdata@linux server]$ bin/azkaban-web-start.sh Using Hadoop from Using Hive from bin/.. :

原创 Spark-wordcount案例

def main(args: Array[String]): Unit = { //創建一個配置信息對象 //設置應用程序名稱 val config:SparkConf = new SparkConf().set

原创 Spark和MR對比

MR的迭代: Spark中的迭代:    1、spark把運算的中間數據存放在內存,迭代計算效率更高;mapreduce的中間結果需要落地,需要保存到磁 盤,這樣必然會有磁盤io操做,影響性能。 2、spark容錯性高,它通過彈性分佈式數

原创 Hive中時間格式的相關轉換

1、獲取當前的時間戳 select unix_timestamp() from dim_kpi;   2、時間戳轉時間 備註:轉化UNIX時間戳(從1970-01-0100:00:00 UTC到指定時間的秒數)到當前時區的時間格式 s