**
收集的業務資料為json格式,準備利用parquet 格式重新儲存到hive表,以節約空間並方便後續通過spark 或 hive 進行分析查詢。
(示例**是用python)
具體步驟是:
1.用spark讀取json資料後,得到乙個dataframe
path = '/xx/***/***.json'
df = sqlcontext.read.json(path)
2.dataframe 經過filter 、select 等操作再以parquet格式寫入hdfs指定路徑
df = df.filter(『***』).select(『***』)3.目錄是按天分割槽,類似 /parquet/******/dt=2017-06-06 這樣
df.write.parquet(「/parquet/******/dt=2017-06-06」,」overwrite」)4.建立對應hive表
create table ******(
`xx` string,
`***` bigint,
`***xx` string
......
...)
partitioned by (dt string )
stored as parquet
location '/parquet/******';
5.這樣建立完以後,hive還需要執行一步資料載入,才能查到資料
load data inpath '/parquet/******/dt=2017-06-06'
into
table ****** partition(dt='2017-06-06')
或者alter
table ****** add partition(dt='2017-06-06') location '/parquet/******/dt=2017-06-06';
load 和 alter 的主要區別是:
load 會建立分割槽目錄,並移動資料到分割槽下,alter 的方式不會建立分割槽目錄,也不會移動資料。
個人場景alter 方式新增分割槽更適合。
logrotate 日誌輪詢(轉存)
1 建立 etc logrotate.d nginx檔案 1 vim etc logrotate.d nginx 2 寫入如下內容 var log nginx log 注釋 var log nginx log 需要輪詢 存 日誌路徑 daily weekly 每天 每週 輪詢 存 rotate 10...
logrotate 日誌輪詢(轉存)
1 建立 etc logrotate.d nginx檔案 1 vim etc logrotate.d nginx 2 寫入如下內容 var log nginx log 注釋 var log nginx log 需要輪詢 存 日誌路徑 daily weekly 每天 每週 輪詢 存 rotate 10...
轉存Druid監控記錄到日誌檔案
druid的監控記錄在是快取的,重啟之後無法找回,所以需要做持久化,定期把監控記錄轉存到日誌檔案中,實現步驟如下 1 datasource中增加配置 property name timebetweenlogstatsmillis value 600000 property name statlogg...