1. 程式人生 > >Error: Java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Error: Java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

tel -- 版本 erro cit nio bsp ip地址 cto

我在用sqoop把數據從mysql導入到hive的過程中遇到報錯Error: Java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure。在網上搜了很多方法,例如以下幾種:

1.將倒入語句的hadoop001改為對應的ip地址。嘗試無果。

sqoop import --connect jdbc:mysql://hadoop001:3306/d6_hive\
--username root \

--password 123456 \
--delete-target-dir \
--table city_info \
--hive-import \
--hive-overwrite \
--hive-table city_info \
--fields-terminated-by ‘\t‘\
--lines-terminated-by ‘\n‘ \
--split-by ip
-m 2

2.拷貝一個mysql-connector-java-5.1.27-bin.jar驅動包放到sqoop的家目錄下的lib目錄下。我看的是要求一個最新版本才可以,所以大家可以自行下載。嘗試後無果。

以上方法嘗試以後均無效果,後來我就想去yarn的web界面看一下mr和log,結果發現打不開,並且一直都打不開,持續了好幾天了,我在想可能是yarn出問題了。然後我就把yarn關閉重啟,嘗試以後依舊報錯,web界面依舊打不開。後來我把這個問題拋到我們學習的內部群裏,有小夥伴指導我說,你的web界面打不開,需要執行一下幾部,經過整理如下。

我的環境是建立在雲主機之上的。

第一步:在Windows上打開cmd(window鍵+R鍵 快捷方式)點擊確定

技術分享圖片

第二步,在cmd中ping一下主機名稱,如果ping不通,就ping一下主機名稱對應的ip地址,如果ip地址ping通了,就說明host文件有問題,需要把主機名稱與相應的ip地址對應起來。如果主機名稱ping通了,如以下所示。那就說明ip是沒有問題的。

技術分享圖片

第三步:看一下電腦能不能鏈接yarn的 IP 端口號

執行telnet hadoop001 8088 如下圖所示,發現加上端口號鏈接是無法打開到主機的鏈接的。這就說明是端口號出了問題。

技術分享圖片

第四步:去linux上看一下8088端口號是否存在

打開root窗口輸入 netstat -nlp |grep 8088 如下所示

技術分享圖片

也就是說端口號也是存在的,yarn也是起來的,我們可以考慮這個端口號可能被墻了。

但是我可以確定我的不是被墻了,我的是8088端口號沒有在雲主機裏列入安全組之內,只要把8088端口加進去就可以了。

Error: Java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure