CDH CM元數據梳理,包括HIVE
一、Schema SCM 表結構梳理(對應生產BAOFOO_SCM)
AUDITS |
登錄信息、服務,角色重啟、配置更改 |
PROCESSES |
進程信息。這裏面有很多信息。開放的web端口。 |
HOSTS |
主機信息,包括IP地址,所在機架,內存,CPU等信息 |
CLIENT_CONFIGS |
客戶端配置,裏面有下載客戶端配置的路徑。 |
CONFIGS_AUD |
配置審計表。 |
CLIENT_CONFIGS_TO_HOSTS |
客戶端配置文件與節點的對應關系 |
CLUSTERS |
群集信息,CM管理多少個群集,就會有多條記錄。 |
CM_VERSION |
CM版本,服務安裝時間,服務所在主機。 |
COMMANDS |
命令記錄,其中包括系統內部執行的命令。 |
COMMANDS_DETAIL |
命令的詳細內容。關聯COMMANDS表。 |
COMMAND_SCHEDULES |
CM內部命令執行調度元信息。 |
CONFIGS |
配置表,改的配置,改之後的值,服務ID等。 |
CONFIGS_AUD |
配置更改記錄。 |
CREDENTIALS |
Kerberos認證授權表,包含keytab文件 |
DIAGNOSTICS_EVENTS |
診斷事件,關於parcels的激活,分發,停用有記錄。 |
GLOBAL_SETTINGS |
全局配置,包括自定義儀表盤信息 |
HOST_TEMPLATES |
主機模板,模板名,所在主機。線上有hbase node和hdfs-yarn的模板。 |
HOST_TEMPLATE_TO_ROLE_CONF_GRP |
主機模板和角色配置組的對應信息。 |
METRICS |
各服務的監控項 |
PARCELS |
parcels信息,是否可用,遠程地址等等。 |
PARCEL_COMPONENTS |
parcels名稱與組件之間的映射關系。 |
REVISIONS |
版本信息,CM變更之後,會產生一個新的版本。 |
ROLES |
群集中的角色信息 |
ROLE_CONFIG_GROUPS |
角色對應的角色組信息 |
SERVICES |
服務名,頁面顯示的一些信息。 |
SNAPSHOT_POLICIES |
快照策略(用戶備份以及災難恢復方面) |
USERS |
CM群集中的用戶信息(啟用認證時) |
USER_AUTH_ROLES |
用戶與認證角色對應關系 |
該庫記錄了關於CM服務中的元數據、操作記錄、用戶登錄、監控項采集、kerberos認證等等信息。
REVISIONS 每一次通過CM產生的變更都會產生一條記錄。包括重啟服務、修改服務、角色配置、修改CM配置。
AUDITS以及*_AUD為審計相關的信息記錄。包括類如HOSTS,ROLES的元數據表。
AUDITS (審計表,登陸日誌,重啟服務,群集,激活、停用parcels等操作)。
1、監控有沒有暴力登錄
示例:以下SQL查詢五分鐘內登錄失敗次數超過10次的用戶名,以及登錄IP。
SELECT * FROM ( SELECT SUBSTRING_INDEX(MESSAGE, ‘:‘ ,- 1) user_name, IP_ADDRESS ip_addr, count(1) AS login_counts FROM AUDITS WHERE AUDIT_TYPE = ‘AUTHENTICATION‘ AND ALLOWED = 0 AND TIMESTAMPDIFF( MINUTE, FROM_UNIXTIME(LEFT(CREATED_INSTANT, 10)), CURRENT_TIMESTAMP () ) < 5 GROUP BY user_name, ip_addr ) b WHERE b.login_counts > 10;
|
2、監控配置修改
SELECT t3.DISPLAY_NAME, t1.ATTR, t1.`VALUE` FROM CONFIGS_AUD t1 LEFT JOIN REVISIONS t2 ON t1.REV = t2.REVISION_ID LEFT JOIN SERVICES t3 ON t1.SERVICE_ID = t3.SERVICE_ID WHERE TIMESTAMPDIFF( MINUTE, FROM_UNIXTIME(LEFT(t2.`TIMESTAMP`, 10)), CURRENT_TIMESTAMP () ) < 5;
HUE的http端口屬性被改成8898 |
3、監控服務重啟,重啟impala服務。
SELECT SUBSTRING_INDEX(t3.message, ‘:‘ ,- 1), t2.INFO, t2.IP_ADDRESS FROM ( SELECT GROUP_CONCAT( MESSAGE ORDER BY CREATED_INSTANT SEPARATOR ‘ 結果:‘ ) INFO, GROUP_CONCAT(IP_ADDRESS) IP_ADDRESS FROM AUDITS t1 WHERE CREATED_INSTANT > REPLACE ( UNIX_TIMESTAMP( DATE_ADD(NOW(3), INTERVAL - 50 MINUTE) ), ‘.‘, ‘‘ ) AND AUDIT_TYPE = ‘COMMAND_SERVICE‘ ) t2 LEFT JOIN ( SELECT message, IP_ADDRESS, CREATED_INSTANT FROM AUDITS WHERE AUDIT_TYPE = ‘AUTHENTICATION‘ ) t3 ON t3.IP_ADDRESS = t2.IP_ADDRESS ORDER BY t3.CREATED_INSTANT DESC LIMIT 1; |
二、HIVE元數據表(對應生產BAOFOO_HIVE)
與上述不同,這不屬於Cloudera 公司Hadoop發行版獨有的。
DBS |
數據庫信息,DB名,所在位置。 |
COLUMNS_V2 |
表的列信息,註釋,列名,列的數據類型,列在表中的位置。通過CD_ID與CDS表關聯 |
TBL_PRIVS |
表的授權信息。 |
TABLE_PARAMS |
表的基本信息,最後更改時間,總大小,原生數據大小,行數,文件數量 |
SERDE_PARAMS |
字符分隔符,虛擬化格式信息。通過SERDE_ID與SERDES關聯 |
SDS |
表的屬性信息,輸入格式(表存儲類型),是否壓縮,所在位置,占桶的數量,等。通過SERDE_ID與SERDES關聯 |
SERDES |
虛擬化和反虛擬化的信息。 |
CDS |
只有一列,表的唯一ID |
TBLS |
存儲Hive表、視圖、索引表的基本信息。創建時間,上次訪問時間,所有者、表名,視圖HQL語句 |
PARTITION_KEYS |
表的分區信息,表名,分區鍵註釋,分區鍵名,類型,聯合分區所在位置 |
PARTITION_KEY_VALS |
已有分區信息。 |
PARTITION_PARAMS |
分區屬性信息,某個分區的文件數量,總代小,最後訪問時間等。 |
PARTITIONS |
分區的基本信息,分區ID,分區創建時間,最後訪問時間,分區名,分區存儲ID,表ID |
VERSION |
存儲Hive版本的元數據表,如果該表不存在,啟動hive-cli的時候會報Table ‘hive.version’ doesn’t exist” |
1、HIVE中庫表數據量統計。
SELECT d.`NAME` "庫",count(1) "表數量" from TBLS t RIGHT JOIN DBS d ON t.DB_ID = d.DB_ID group BY d.DB_ID ; |
2、表大小統計
SELECT round(CAST(a.PARAM_VALUE AS SIGNED)/1024/1024/1024,0) v, b.TBL_NAME, c.`NAME` FROM TABLE_PARAMS a LEFT JOIN TBLS b ON a.TBL_ID = b.TBL_ID LEFT JOIN DBS c ON b.DB_ID = c.DB_ID WHERE a.PARAM_KEY = ‘totalSize‘ -- AND c.`NAME` NOT like ‘tmp%‘ ORDER BY v DESC; |
CDH CM元數據梳理,包括HIVE