問題場景
登錄服務器,使用hive -f test.sql
命令,啓動了統計腳本。但是,經過了SQL
校驗通過之後,啓動就報錯了。登錄Hadoop
控制檯,點開了自己的應用,發現了以下報錯提示:
問題環境
軟件 | 版本 |
---|---|
CDH | 5.15.1 |
Hive | 1.1.0 |
Centos | 7 |
問題原因
從報錯提示,我們可以看到,現在的任務在某個節點是不合法的。原本期待是SLAVE21:8041
,但是實際是slave21:8041
。
從這個,或許有聰明的讀者猜出原因了,這個就是域名啊!!!
那麼,是不是因爲/etc/hosts
文件裏面,存在重複的域名映射呢?
讓我們打開/etc/hosts
文件來一探究竟吧,下圖是我的檢查結果:
沒想到真的存在重複的域名映射!!!
一般而言,域名的大小寫是沒有區別的,一般在映射的時候,都會做一定的轉換,比如轉成小寫,然後再訪問。所以,這個存在多個重複的域名,那hive
之前是指定了126結尾的ip
的,但下一次獲取,又拿到了102結尾的ip
的。兩邊不一致導致了報錯!
解決方案
將重複的域名修改成不同的域名即可。這個要根據實際的業務場景來。因爲服務器不是我進行維護的,所以只是將這個問題告知了集羣的維護團隊,由他們將重複的域名進行修改!
結果
/etc/hosts
文件修改之後,再執行hive -f test.sql
,順利地跑起來了,沒有出現問題!
總結
問題的發生有各種的原因,找到原因並解決,纔是最快的方法!!!
隨緣求贊
如果我的文章對大家產生了幫忙,可以在文章底部點個贊或者收藏;
如果有好的討論,可以留言;
如果想繼續查看我以後的文章,可以點擊關注
可以掃描以下二維碼,關注我的公衆號:楓夜之求索閣,查看我最新的分享!