You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ar...@apache.org on 2011/08/18 00:51:30 UTC

svn commit: r1158959 - in /incubator/sqoop/trunk/src/docs/user: SqoopUserGuide.txt troubleshooting.txt

Author: arvind
Date: Wed Aug 17 22:51:29 2011
New Revision: 1158959

URL: http://svn.apache.org/viewvc?rev=1158959&view=rev
Log:
SQOOP-316. Added troubleshooting section to user guide.

Added:
    incubator/sqoop/trunk/src/docs/user/troubleshooting.txt
Modified:
    incubator/sqoop/trunk/src/docs/user/SqoopUserGuide.txt

Modified: incubator/sqoop/trunk/src/docs/user/SqoopUserGuide.txt
URL: http://svn.apache.org/viewvc/incubator/sqoop/trunk/src/docs/user/SqoopUserGuide.txt?rev=1158959&r1=1158958&r2=1158959&view=diff
==============================================================================
--- incubator/sqoop/trunk/src/docs/user/SqoopUserGuide.txt (original)
+++ incubator/sqoop/trunk/src/docs/user/SqoopUserGuide.txt Wed Aug 17 22:51:29 2011
@@ -55,4 +55,6 @@ include::compatibility.txt[]
 
 include::support.txt[]
 
+include::troubleshooting.txt[]
+
 

Added: incubator/sqoop/trunk/src/docs/user/troubleshooting.txt
URL: http://svn.apache.org/viewvc/incubator/sqoop/trunk/src/docs/user/troubleshooting.txt?rev=1158959&view=auto
==============================================================================
--- incubator/sqoop/trunk/src/docs/user/troubleshooting.txt (added)
+++ incubator/sqoop/trunk/src/docs/user/troubleshooting.txt Wed Aug 17 22:51:29 2011
@@ -0,0 +1,130 @@
+////
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+////
+
+Troubleshooting
+---------------
+
+General Troubleshooting Process
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following steps should be followed to troubleshoot any failure that you
+encounter while running Sqoop.
+
+- Turn on verbose output by executing the same command again and specifying
+  the +\--verbose+ option. This produces more debug output on the console
+  which can be inspected to identify any obvious errors.
+
+- Look at the task logs from Hadoop to see if there are any specific failures
+  recorded there. It is possible that the failure that occurs while task
+  execution is not relayed correctly to the console.
+
+- Make sure that the necessary input files or input/output tables are present
+  and can be accessed by the user that Sqoop is executing as or connecting to
+  the database as. It is possible that the necessary files or tables are present
+  but the specific user that Sqoop connects as does not have the necessary
+  permissions to access these files.
+
+- If you are doing a compound action such as populating a Hive table or
+  partition, try breaking the job into two separate actions to see where the
+  problem really occurs. For example if an import that creates and populates a
+  Hive table is failing, you can break it down into two steps - first for doing
+  the import alone, and the second to create a Hive table without the import
+  using the +create-hive-table+ tool. While this does not address the original
+  use-case of populating the Hive table, it does help narrow down the problem
+  to either regular import or during the creation and population of Hive table.
+
+- Search the mailing lists archives and JIRA for keywords relating to the
+  problem. It is possible that you may find a solution discussed there that
+  will help you solve or work-around your problem.
+
+Specific Troubleshooting Tips
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Oracle: Connection Reset Errors
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Problem: When using the default Sqoop connector for Oracle, some data does
+get transferred, but during the map-reduce job a lot of errors are reported
+as below:
+
+----
+11/05/26 16:23:47 INFO mapred.JobClient: Task Id : attempt_201105261333_0002_m_000002_0, Status : FAILED
+java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO Error: Connection reset
+at com.cloudera.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:164)
+at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
+at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
+at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:605)
+at org.apache.hadoop.mapred.MapTask.run(MapTask.java:322)
+at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
+at java.security.AccessController.doPrivileged(Native Method)
+at javax.security.auth.Subject.doAs(Subject.java:396)
+at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1115)
+at org.apache.hadoop.mapred.Child.main(Child.java:262)
+Caused by: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO Error: Connection reset
+at com.cloudera.sqoop.mapreduce.db.DBInputFormat.getConnection(DBInputFormat.java:190)
+at com.cloudera.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:159)
+... 9 more
+Caused by: java.sql.SQLRecoverableException: IO Error: Connection reset
+at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:428)
+at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
+at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
+at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
+at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
+at java.sql.DriverManager.getConnection(DriverManager.java:582)
+at java.sql.DriverManager.getConnection(DriverManager.java:185)
+at com.cloudera.sqoop.mapreduce.db.DBConfiguration.getConnection(DBConfiguration.java:152)
+at com.cloudera.sqoop.mapreduce.db.DBInputFormat.getConnection(DBInputFormat.java:184)
+... 10 more
+Caused by: java.net.SocketException: Connection reset
+at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96)
+at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
+at oracle.net.ns.DataPacket.send(DataPacket.java:199)
+at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:211)
+at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:227)
+at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
+at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
+at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
+at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
+at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
+at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
+at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
+at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
+at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
+at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)
+at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)
+at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366)
+... 18 more
+
+----
+
+Solution: This problem occurs primarily due to the lack of a fast random
+number generation device on the host where the map tasks execute. On
+typical Linux systems this can be addressed by setting the following
+property in the +java.security+ file:
+
+----
+java.security.egd=file:/dev/../dev/urandom
+----
+
+The +java.security+ file can be found under +$JAVA_HOME/jre/lib/security+
+directory. Alternatively, this property can also be specified on the
+command line via:
+
+----
+-D mapred.child.java.opts="\-Djava.security.egd=file:/dev/../dev/urandom"+
+----
+