hive修改MySQL裡的元資料刪除分割槽

2021-07-27 22:36:47 字數 1802 閱讀 4384

正常分割槽

province_id=125

動態分割槽時產生的錯誤分割槽(因為有特殊字元,不能直接用hive語句刪除)

province_id=%2ffile.cdn.mvideo.xiaomi.com%2fmobilevideo%2f10001%2f1%2f1d1f7ca81b61a497c1b216b0753dc345.apk

解決方法

1 進入hive使用的mysql

2 切換為hive資料庫

mysql> use

hive;

3 查詢相關表

mysql> select * from tbls where tbl_name='o_cu_pm_userdev_url';
結果

發現出現兩條記錄,因為表名有相同的,所以使用tbls表的sd_id欄位去sds表查詢location欄位的值,通過location欄位,就可以知道o_cu_pm_userdev_url這張表的資料庫,tbls中tbl_id為70的這行記錄就是我要查詢的表的id

接下來,要根據tbls表的tbl_id和hive表分割槽欄位的值(模糊查詢)去partitions表查詢,需要得到partitions表的part_id的值(202354)

mysql> select * from partitions t where t.tbl_id=70

and part_name like

'%cdn.mvideo.xiaomi.com%';

結果

最後,通過tbls表的tbl_id(70)和partitions表的part_id(202354)就可以刪除hive的分割槽了

mysql> delete from partition_key_vals where part_id=202354;

query ok, 6 rows affected (0.01 sec)

mysql> delete from partition_params where part_id=202354;

query ok, 6 rows affected (0.00 sec)

mysql> delete from partitions where tbl_id=70

and part_id=202354;

query ok, 1 row affected (0.01 sec)

4 刪除hdfs上分割槽對應的目錄【hive外部表需要此操作】(目錄要用雙引號括起來,因為目錄裡有特殊字元)

hdfs dfs -rm -r "/user/hive/bigdata/o_cu_pm_userdev_urlprovince_id=%2ffile.cdn.mvideo.xiaomi.com%2fmobilevideo

%2f10001

%2f1

%2f1d1f7ca81b61a497c1b216b0753dc345.apk"

mysql 元資料修改 Mysql 元資料操作

記錄幾個mysql元資料操作的語句,以備後用 安裝好mysql之後在例項下缺省會有 mysql information schema performation schema mysql 配置資訊 使用者資訊 慢日誌 server資訊 information schema 記錄全域性 database...

Hive 使用MySQL儲存元資料

現象 bin hive這個互動性命令列不能同時開多個,開第二個就報錯了 原因hive中無論是建立的 資料庫還是表 這些元資料metastore需要儲存 預設情況下儲存在derby資料庫裡面的,屬於嵌入式資料,每次僅僅支援乙個會話,解決 使用支援多個會話的資料,推薦mysql儲存元素 官方推薦 文件 ...

修改mysql 的鏈結數

mysql的最大連線數預設是100,這個數值對於併發連線很多的資料庫應用是遠遠不夠的,當連線請求大於預設連線數後,就會出現無法連線資料庫的錯誤,因此我們需要把它適當調大一些,有兩種辦法可以修改最大連線數,一種是修改safe mysqld,另一種是直接修改原 並重新編譯。下面我們就分別介紹這兩種方法 ...