您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Sqoop抽數(shù)到Hive表異常的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Sqoop抽數(shù)到Hive表異常的示例分析”這篇文章吧。
1.測試環(huán)境說明
CDH集群啟用了HDFS的HA
CM和CDH版本為5.14.2
2.問題描述
使用Sqoop抽取MySQL數(shù)據(jù)到Hive表時,抽取語句正常執(zhí)行在數(shù)據(jù)Load到Hive表時報“Operation category READ is not supported in state standby”,執(zhí)行的Sqoop抽數(shù)腳本如下:
export HADOOP_USER_NAME=hive
sqoop import \
--connect "jdbc:mysql://cdh02.fayson.com:3306/cm" \
--username cm \
--password password \
--table HOSTS \
--fields-terminated-by ',' \
--target-dir /user/hive/warehouse/test.db/hive_hosts \
--delete-target-dir \
--hive-import \
--hive-overwrite \
--hive-database test \
--hive-table hive_hosts \
--m 1
(可左右滑動)
在命令行執(zhí)行上述Sqoop腳本,顯示作業(yè)正常執(zhí)行
此時活動的NameNode節(jié)點為cdh02.fayson.com
將NameNode活動節(jié)點切換為cdh01.fayson.com
再次執(zhí)行腳本,執(zhí)行到“Loading datato table test.hive_hosts”,在這里Fayson在測試時會出現(xiàn)夯死現(xiàn)象很久沒有任何反應(yīng)。
根據(jù)錯誤提示不能move hdfs數(shù)據(jù)目錄,查看兩個數(shù)據(jù)目錄都是正常訪問
3.異常分析及處理
1.根據(jù)異常提示出現(xiàn)了兩個HDFS訪問路徑,在集群HDFS已啟用了HA,是不應(yīng)該再出現(xiàn)使用啟用HA之前NameNode節(jié)點的HDFS路徑
2.檢查Hive Metastore的庫及表元數(shù)據(jù)的Location地址,使用如下命令在HIveMetastore服務(wù)所在節(jié)點執(zhí)行
[root@cdh01 ~]# export HIVE_CONF_DIR="/var/run/cloudera-scm-agent/process/`ls -1 /var/run/cloudera-scm-agent/process | grep HIVEMETASTORE| sort -n| tail -1`"
[root@cdh01 ~]# HADOOP_CREDSTORE_PASSWORD=$(strings /proc/$(ps -ef|grep HiveMetaStore|grep java|awk '{print $2}')/environ|grep CRED|awk -F= '{print $2}') hive --auxpath /usr/share/java/ --config $HIVE_CONF_DIR --service metatool -listFSRoot
(可左右滑動)
3.經(jīng)檢查發(fā)現(xiàn)Hive Metastore的Location地址指向還是之前NameNode地址,定位問題可能出現(xiàn)在這里,下面我們來更新HiveMetastore NameNode的地址指向。
4.更新Hive Metastore的Location地址有兩種方式一種是在CM界面進行操作,一種是在命令行手動的進行更新
方式一:
登錄Clouder Manager管理界面進入Hive服務(wù),首先停止Hive服務(wù),然后在Hive的服務(wù)的菜單列表中執(zhí)行“更新Hive Metastore NameNode”
更新完成后,啟動Hive服務(wù),在Hive Metastore服務(wù)所在節(jié)點使用上面的命令進行查看驗證是否更新成功,如果這里更新不成功,可以使用方式二手動更新。
方式二:
在HiveMetastore服務(wù)所在節(jié)點執(zhí)行如下命令更新Hive元數(shù)據(jù)Location地址
[root@cdh01 ~]# export HIVE_CONF_DIR="/var/run/cloudera-scm-agent/process/`ls -1 /var/run/cloudera-scm-agent/process | grep HIVEMETASTORE| sort -n| tail -1`"
[root@cdh01 ~]# HADOOP_CREDSTORE_PASSWORD=$(strings /proc/$(ps -ef|grep HiveMetaStore|grep java|awk '{print $2}')/environ|grep CRED|awk -F= '{print $2}') hive --auxpath /usr/share/java/ --config $HIVE_CONF_DIR --service metatool -updateLocation hdfs://nameservice1 hdfs://cdh01.fayson.com:8020
[root@cdh01 ~]# HADOOP_CREDSTORE_PASSWORD=$(strings /proc/$(ps -ef|grep HiveMetaStore|grep java|awk '{print $2}')/environ|grep CRED|awk -F= '{print $2}') hive --auxpath /usr/share/java/ --config $HIVE_CONF_DIR --service metatool -listFSRoot
(可左右滑動)
檢查更新結(jié)果
注意:使用手動方式更新Hie Metastore的NameNode指向時,第二條命令的最后兩個參數(shù),hdfs://nameservice1為更新后值,hdfs://cdh01.fayson.com:8020為更新前的值。
4.Sqoop命令驗證
Sqoop命令正常執(zhí)行
以上是“Sqoop抽數(shù)到Hive表異常的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。