내 sqoop2가 갑자기 충돌하여 시작되지 않습니다. 이틀 전부터 sqoop2의 설정을 변경하지 않았습니다. /var/log/sqoop2 catalina 로그를 확인했는데 다음과 같습니다.
Mar 14, 2016 2:06:17 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib<br>
Mar 14, 2016 2:06:18 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-12000<br>
Mar 14, 2016 2:06:18 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2661 ms<br>
Mar 14, 2016 2:06:18 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina<br>
Mar 14, 2016 2:06:18 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.44<br>
Mar 14, 2016 2:06:18 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive sqoop.war<br>
Mar 14, 2016 2:06:32 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT<br>
Mar 14, 2016 2:06:33 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-12000<br>
Mar 14, 2016 2:06:33 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 15277 ms<br>
Mar 14, 2016 2:06:33 PM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:404)
at org.apache.catalina.startup.Catalina.await(Catalina.java:676)
at org.apache.catalina.startup.Catalina.start(Catalina.java:628)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)<br>
Mar 14, 2016 2:06:33 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-12000<br>
Mar 14, 2016 2:06:34 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina<br>
Mar 14, 2016 2:06:34 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc<br>
SEVERE: The web application [/sqoop] registered the JDBC driver [org.apache.derby.jdbc.AutoloadedDriver40] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.<br>
Mar 14, 2016 2:06:35 PM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-12000
누구든지 어떤 아이디어가 있습니까? 감사해요!
답변1
이것은 로그의 관련 부분인 것 같습니다.
java.net.BindException: Address already in use
가장 가능성이 높은 이유는 다음과 같습니다.
- sqoop2는 이미 실행 중입니다(그러나 거의 죽은 상태이고, 응답하지 않거나 유용한 작업을 수행하지 않지만 여전히 실행 중입니다. 즉 충돌 대신 정지됨).
실행 중이 면 ps aux | grep sqoop
종료하고 다시 시작하십시오.
또는:
- 실행 중인 다른 프로그램이 동일한 포트를 사용하고 있습니다. 실행해 보십시오
netstat -tupan | grep :port
(여기서 "port"는 sqoop2가 바인딩하려는 포트 번호입니다). 그것을 죽이고 sqoop2를 시작하십시오.