0466-CDH5.16.1和CM5.16.1的新功能
Fayson在2018年的6月15日介紹了《CDH5.15和CM5.15的新功能》,今天11月29日,Cloudera正式發布CDH5.16.1。從5.15到5.16,差不多等待了5個月,當然Cloudera在期間還發布了CDH6正式版,隨後發布CDH6.0.1,參考《Cloudera Enterprise 6正式發布》。我們注意到這次CDH新版本的發布,沒有5.16.0而直接是5.16.1,具體原因未知。
這次有一個很激動人心的更新就是,CDH的OpenJDK支持,參考《Java收費,Hadoop怎麼辦?》。
以下我們看看CDH5.15和CM5.15具體的更新內容。
1
CDH5.16.1的新功能
1.1
OpenJDK支持
Cloudera Manager和CDH5.16.1現在支持OpenJDK。更多如何從Oracle JDK遷移到OpenJDK,參考:
如果你是新搭平台,想直接使用OpenJDK,參考:
1.2
Apache Hive
Sentry和Hive引入了細粒度許可權,為角色提供對象級許可權。細粒度許可權添加CREATE許可權,允許用戶創建資料庫和表。
這裡Fayson解釋一下,以前的Sentry,如果你想要讓某個用戶能夠創建資料庫和表即CREATE許可權,你必須得給他賦ALL許可權,這樣其實是不太合理的,比如某個用戶你只想讓他能夠創建表,但是因為有了ALL許可權,某個Database下的所有表他都有許可權,包括他還能drop掉整個Database或者所有table。參考:
1.2.1
對象所有權(Object Ownership)
Objecto wnership在Sentry中為database,table和view指定一個owner(所有者)。對象的所有者擁有的OWNER許可權與對象的ALL許可權等效。參考:
因為這個新的object ownership功能,在Hive中創建表或資料庫的用戶會被HMS存儲為對象所有者(object owner)。如果啟用了object ownership,Sentry會授予用戶OWNER許可權。無論是否啟用object ownership,HMS都會將創建對象的用戶存儲為對象所有者(object owner)。以前,HMS是將hive用戶保存為對象所有者(object owner)。
現在在Hive中新增以下語句以使Sentry支持object ownership:
ALTER DATABASE SET OWNER
ALTER TABLE SET OWNER
SHOW GRANT USER
1.3
Apache Impala
1.3.1
細粒度許可權
同Hive一樣,Sentry在Impala中同樣也引入了細粒度許可權,為角色提供對象級許可權。
細粒度的許可權包括REFRESH和CREATE,它允許用戶創建資料庫和表,以及執行更新Impala資料庫和表的元數據信息的命令。參考:
以下是新增的許可權:
REFRESH許可權
CREATE許可權
SERVER上的SELECT和INSERT許可權
在升級到CDH5.16.1之前,如果某個角色對Impala中的對象具有SELECT或INSERT許可權,則該角色在CDH升級期後會自動獲得REFRESH許可權。
1.3.2
對象所有權(Object Ownership)
通Hive一樣,Object ownership在Sentry中為database,table和view指定一個owner(所有者)。對象的所有者擁有的OWNER許可權與對象的ALL許可權等效。參考:
如果啟用了object ownership,Sentry會授予用戶OWNER許可權。無論是否啟用object ownership,HMS都會將創建對象的用戶存儲為默認的對象所有者(object owner)。之前,HMS將Kerberos用戶保存為對象所有者(object owner)。
現在在Impala中新增以下語句以使Sentry支持object ownership:
ALTER DATABASE SET OWNER
ALTER TABLE SET OWNER
ALTER VIEW SET OWNER
SHOW GRANT USER
1.3.3
Admission Control增強
新增查詢參數MAX_MEM_ESTIMATE_FOR_ADMISSION,使用這個參數,你可以限定單個Impala查詢作業的最大內存,從而防止有些查詢超過了你預估的內存使用依舊會被執行。參考:
1.3.4
通用性能改進
新增查詢參數SHUFFLE_DISTINCT_EXPRS,使用這參數可以控制你的SQL語句中同時有grouping和distinct的行為。具體參考:
1.3.5
元數據性能改進
1.Incremental Stats(增量統計)
以下增強功能可以提高Impala的穩定性。這些特性可以減少使用增量統計時由於內存不足導致catalogd和impalad崩潰的幾率。
catalogd現在會在內存中壓縮增量統計信息,從而減少catalogd中的內存佔用。
增量統計信息現在會由impalad的coordinator按需從catalogd中獲取。此增強功能可以減少impalad的coordinator和statestore的內存佔用,同時還可以降低廣播元數據的網路開銷。
具體參考:
2.元數據自動失效
為了控制元數據的大小並降低catalogd緩存OOM的幾率,CDH5.16.1的Impala引入了自動元數據失效功能,它會按時間或者內存失效。
元數據的自動失效為Impala服務提供了更好的穩定性,同時降低了OOM的幾率,但可能會導致性能風險,所以現階段該功能默認是關閉的。具體參考:
1.3.6
兼容性和可用性增強
1.在默認的TIMESTAMP格式中,日期和時間之間支持其他分隔符,特別是多空格分隔符和「T」分隔符。具體參考:
2.INSERT語句支持新的hint placement,具體參考:
3.REGEX_ESCAPE()函數可以轉義特殊字元,從而可以讓你在字元串中逐字處理它們。
4.SHOW CREATE VIEW與SHOW CREATE TABLE具有相同的功能。
5.現在如果啟用了load balancer和Kerberos,Impala Shell也可以直接連接到impalad,而以前只能連接到load balancer。具體參考:
1.4
Apache Sentry
1.4.1
細粒度許可權
引入CREATE和REFRESH(僅限Impala)許可權,允許用戶創建資料庫,表和函數,以及執行更新Impala資料庫和表上的元數據信息的命令。具體參考:
1.4.2
對象所有權(Object Ownership)
Object ownership在Sentry中為database,table和view指定一個owner(所有者)。對象的所有者擁有的OWNER許可權與對象的ALL許可權等效。
在CDH5.16.1中,object ownership默認是關閉的。具體參考:
1.5
Apache Kudu
從Apache Kudu1.5.0/CDH 5.13.x開始,Kudu服務默認打包到CDH,不需要額外下載Kudu的Parcel包進行安裝。
1.5.1
Kudu 1.7.0/CDH 5.16.1的新功能
1.Kudu scan token API新增掃描請求超時。
2.Spark connector中新增兩個新的配置參數,從而方便更好的調優,以避免高負載下的掃描超時:socketReadTimeoutMs和scanRequestTimeout
3.新增kudu tablet unsafe_replace_tablet工具從而實現替換tablet。當其中一個tablet永久丟失所有副本時,使用此工具可以恢復table。替換後的tablet中是沒有數據的,所以此工具建議在你沒有其他選擇的情況下再使用。
4.兩個新工具允許超級用戶從遠程Kudu進程中檢索所有命令行的flag值:kudu tserver get_flags和kudu master get_flags。get_flag工具支持按標籤過濾返回flag。默認情況下,它們僅返回顯式設置的flag。
5.新增命令行工具可以在tablet server之間rebalance表的副本,使用kudu cluster rebalance命令可以實現該功能,這個功能在CDH 5.12(Kudu 1.4.0)以後的版本中可以使用。
1.5.2
Kudu 1.7.0/CDH 5.16.1的優化和改進
1.在刪除表中大量的連續行時,添加了優化以提高性能。例如,用戶可以在重新添加之前使用刪除表或分區中的所有行,或者可以刪除與主鍵的某些前綴對應的所有數據。
2.tablet複製的默認時間從3秒增加到30秒,以便在目標伺服器上存在大量磁碟I/O時,使tablet的自動複製更加健壯。此外相應的,你可以使用tablet server的flag高級配置--tablet_copy_begin_session_timeout_ms
3.kudu cluster ksck工具增強
ksck現在會檢查master的運行狀況和一致性狀態,顯示集群中設置的任何不安全或隱藏的flag,同時生成Kudu master和tablet server上運行的Kudu版本摘要。
ksck現在支持JSON輸出,無論是pretty-printed還是compact格式。
輸出格式由-ksck_format標誌控制
4.kudu local_replica dump rowset的輸出現在更易於閱讀。
2
Cloudera Manager 5.16.1的新功能
2.1
Backup and Disaster Recovery (BDR)日誌保留
你現在可以在CM中配置Backup and Disaster Log Retention參數來設置保留BDR日誌的天數。具體參考:
2.2
Impala
1.Impala圖表庫更新
更新了Impala圖表庫,刪除了很少使用的圖表,同時引入了一些更有意義的指標。
2.配置ImpalaD的JVM大小
CM中現在你可以為Impala Daemon配置Java的heap大小,參數名為:Java Heap Size of Impala Daemon in Bytes,默認為4GB。
3.達到最大客戶端連接時,Impala會報警
當Impala Daemon達到最大客戶端並發數時,新的運行狀況檢查會報警。參數名為:Impala Daemon Max Client Connections
4.新增Impala空閑查詢超時和空閑會話超時配置
配置參數名為:Idle Query Timeout和Idle Session Timeout
5.從Cloudera Manager中刪除了Impala Assignment Locality運行狀況測試
2.3
Auditor和Dashboard角色用戶無法查看Solr collection的統計信息頁面
Cloudera Manager的Auditor和Dashboard角色用戶現在可以查看Solr Collection Statistics和HBase Table Statistics頁面。
2.4
新的Kafka運行狀況檢查
Cloudera Manager增加了兩項新的Kafka Broker運行狀況測試:Kafka Broker Swap Memory Usage和Kafka Broker Unexpected Exits。CM5.14後的Kafka,默認會啟用這些運行狀況測試。具體參考:
2.5
CM中新增Sentry的Object Ownership配置
Sentry配置頁面中添加了一個新的配置參數,該配置用於啟用Sentry的OWNER許可權,默認情況下是關閉的。具體參考:
2.6
強如果啟用了HDFS靜態數據加密,禁用了降級到Cloudera免費版的功能
如果使用Navigator KMS Key Trustee server實現了HDFS靜態數加密,則不允許降級到Cloudera免費版,如果點擊Downgrade License,會有警告提示,提示會指示用戶先把數據轉換為非加密格式。因為Navigator是CDH企業版的工具。
2.7
Zookeeper配置修改
ZooKeeper中的Enable Kerberos Authentication和Enable Server to Server SASL Authentication兩個配置現在綁在了一起,即任一參數更改為打開或關閉,則另一個參數將自動更改為相同的值,關於這個CM也新增了警告。
本文翻譯參考:


TAG:Hadoop實操 |