您好,登錄后才能下訂單哦!
故障描述:
以前上傳圖片以及文件是通過nginx的配置來上傳和下載圖片,文件存儲用的是Hadoop作為文件存儲,昨晚上仿真的過程中,上傳圖片過程中無法連接Hadoop,發現問題很多:處理完連接報錯后,還是不能上傳圖片,各種報錯。。。。
處理思路:
一般的故障信息都是日志來入手的。從上傳圖片的整個過程:從前端nginx代理后接入tomcat上傳圖片的實例的日志報錯信息排除
之前是Hadoop的配置中hdfs的端口修改了9100,但是tomcat的上傳文件的實例中application.properties的配置文件的地址配置有問題,這些是排查故障前發生的問題,修改后還是有問題,然后繼續如下的排查!
nginx的配置正常的前提下報錯:
實際日志報錯信息:
首先打開nginx的日志錯誤日志報的是連接tomcat超時:
[root@web01 server]# tail -100f /webserver/nginx/nginx-upload/logs/error.log
2016/07/10 11:26:51 [error] 18444#0: *17007 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 123.125.138.174, server: online.898china.com, request: "POST /innospace-file-server/file/upload.json?x=100&y=100&w=200&h=200&userId=87 HTTP/1.1", upstream:
發現nginx連接tomcat超時,此時排查到上傳文件的tomcat實例有問題,直接定位到innospace-file-server的日志在看錯誤信息:
[root@web01 server]# tail -1000f /webserver/tomcat/innospace-file-server/logs/catalina.out
[ERROR] 2016-07-10 11:13:49,958 com.inno.innospace.utils.HDFSUtil - 上傳文件失敗
java.io.IOException: Bad connect ack with firstBadLink as 10.24.198.117:50010
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1460) ~[hadoop-hdfs-2.6.3.jar:?]
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1361) ~[hadoop-hdfs-2.6.3.jar:?]
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:588) ~[hadoop-hdfs-2.6.3.jar:?]
到這里還真不知道哪里出現的問題,最好只好百度一下:
發現與防火墻有關,數據在Hadoop上存儲的是在從slave的節點上,連接Hadoop主的過程需要50010端口連接,最終在防火墻開啟50010端口
iptables -A INPUT -p tcp --dport 50010 -j ACCEPT
開啟之后問題解決了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。