原创 HiveSql使用max函數失效的問題,返回結果999

表中一共兩個字段,tag_name和tag_value,查詢出指定tag_name下,tag_value值最大的記錄 通過以下sql語句,查詢出結果爲999,不正常 select tag_name, max(a.tag_value) f

原创 常用ES查詢DSL語句

1. 針對hive表中jsonObject類型的String數據 mapping中定義如下: "esf_room": { "type": "text", "fields": { "keyword": { "t

原创 HiveSql性能優化

一、解決數據傾斜 1. 過濾掉null部分 key值存在大量空字段,會hash到同一reduce,造成reduce長尾,將null 值過濾掉 舉例: select user_id from logs where statdate = '

原创 HiveSql中limit10的坑——對大數據量的表查詢加group by

一般查詢hive表中某個字段是否存在某個值,會使用如下查詢語句 select * from 表名 where dt=XXXX and 字段 like '%某個值%' limit 10; 這種比較適合hive表數據量較小的情況,出現li

原创 Spark優化——推測執行機制

Spark job中,一個stage什麼時候完成,取決於stage下最後一個task的完成時間。 task的完成時間也被很多因素影響,比如partition的分配,executor的資源使用情況,host的運行狀態,集羣網絡等等。很多情況

原创 Spark常用提交腳本

1. 運行腳本: #!/usr/bin/env bash input="XXXX" output="XXXX" sday="XXXX" id_type="XXXX" tag_origin_short_name="XXXX" nam

原创 SparkSubmit提交參數(日常版)

--master yarn --deploy-mode cluster --queue XXXX --name ${spark_job_name} --executor-memory 8G --num-executors 32 --ex

原创 使用bulk方式將json文件數據導入ES

使用json文件可以給es中導入數據,10萬條左右的數據可以一次導入,數量太大時導入就會報錯。大數量的到導入還是需要用bulk方式。 accounts.json文件格式如下:      {"index":{"_id":"1"}}    

原创 每隔半點清理一次ES緩存腳本

ES清空所有索引的緩存 POST  _cache/_clear ES清空指定索引的緩存 POST  /{_index}/_cache/_clear 通過腳本來清理緩存如下 #!/bin/bash # 爲防止ES查詢緩存過大,每

原创 log.info

import org.slf4j.Logger; import org.slf4j.LoggerFactory; logger.info("get records list:{}", JSONHelper.toJSON(userPac

原创 運行jar包指定java的主類名,運行其main方法

在jar包中,META-INF目錄下,修改MANIFEST.MF文件 Manifest-Version: 1.0 Main-Class: 主類名全路徑

原创 ES自動負載均衡、分片遷移的表現

當發現某個索引並沒有數據寫入,但其indexing Rate的數值並不爲0 /s的時候, 一般是集羣在做負載均衡,或者正在給索引添加副本, 把該索引的數據,將數據從多數據量的節點,遷移一部分至低數據量的節點。    

原创 ES踩坑——提高寫入性能之集羣負載均衡

還是往ES集羣寫入耗時太長,速率太慢的問題, 當文檔id,即_id自定義指定的情況下,由於每條文檔往ES寫入時,會對_id進行hash分配其寫到哪個節點的主分片上, 這樣有可能出現寫偏了的情況,即集羣某臺節點的負載特別高,所以一般建議_i

原创 ES踩坑——提高寫入性能之合理安排加副本和刪索引的時機

問題表現是: ES集羣的cpu和負載都非常低,幾乎與無數據寫入時一致,indexing rate也很低,基本在2000-5000左右; 但是此時有6個大數據量的任務在並行往ES集羣各自的索引寫入,但是耗時都嚴重變長,比如正常1h運行完畢的

原创 Arrays.asList()將數組轉list

if (splitList.contains(tagKey)) { val tmpList = String.valueOf(tagValue).split("\\|").filter(!_.equals("")) tagVal