Impala升級(CDH4->CDH5)踩坑經歷

    首先按照CDH官方文檔對Impala進行升級,但是升級後有幾個小問題需要注意下。

    在shell環境下,輸入正常的SQL語句,報錯如下

    wKioL1P8ToPhCazjAAIEzrJKiDs385.jpg    從報錯信息上可以看出是在讀取Hive Metadata過程中出了問題。由於在CDH5中配置了NameNode HA,而老版本CDH4中是單NameNode,所以在新版本中讀取的時候,希望讀取到新配置的fs.defaultFS屬性值,即hdfs://dfs.nameservices,但是在Hive的MetaStore中存儲的數據庫,表以及表分區的位置還是按照老版本的單NameNode節點來配置的,類似hdfs://h031,這個時候需要手動update下Hive的metastore庫下的兩張表DBS和SDS,DBS主要存儲Hive中的數據庫名稱和HDFS數據目錄等信息,SDS存儲Hive表以及表分區的HDFS數據目錄和數據格式等信息。命令如下

update DBS SET DB_LOCATION_URI=REPLACE(DB_LOCATION_URI, 'h031', 'mycluster'); 
update SDS SET LOCATION=REPLACE(LOCATION, 'h031', 'mycluster');

    上述語句用dfs.nameservices的值替換掉老的NameNode的HOST信息,替換完成後就可以正常查詢數據了。也可以使用Hive自帶的工具metatool進行替換

metatool -updateLocation hdfs://nameservice1 hdfs://oldnamenode.com

    如果Hive表採用lzo方式壓縮存儲,直接查詢會報錯,如下

    wKiom1P8UEih3WQhAALlenTznDE543.jpg    問題的原因是impala-lzo沒有進行升級,這一點在CDH官方文檔中並沒有進行說明,所以進行升級就可以正常使用了,命令如下

yum update impala-lzo

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章