Problem
Smart Execution is not working and generates error. The files are compressed with Snappy version 1.1.4 but read with version 1.1.3.
Error message
...
2015-01-13 09:39:29,694 ERROR [TezChild] org.apache.tez.runtime.task.TezTaskRunner: Exception of type Error. Exiting now
java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z
at org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy(Native Method)
at org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:63)
at org.apache.hadoop.io.compress.SnappyCodec.getDecompressorType(SnappyCodec.java:190)
at org.apache.hadoop.io.compress.CodecPool.getDecompressor(CodecPool.java:176)
at org.apache.hadoop.io.SequenceFile$Reader.init(SequenceFile.java:1915)
at org.apache.hadoop.io.SequenceFile$Reader.initialize(SequenceFile.java:1810)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1759)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1773)
at datameer.dap.common.data.DatameerFile.open(DatameerFile.java:108)
at datameer.dap.common.graphv2.hadoop.GlobalDatameerFileReader.openSingleSplit(GlobalDatameerFileReader.java:175)
at datameer.dap.common.graphv2.hadoop.GlobalDatameerFileReader$3.apply(GlobalDatameerFileReader.java:201)
at datameer.dap.common.graphv2.hadoop.GlobalDatameerFileReader$3.apply(GlobalDatameerFileReader.java:197)
at datameer.dap.sdk.sequence.Sequence$13.moveToNext(Sequence.java:608)
at datameer.plugin.tez.input.AliasedRecords$CombinedAliasedRecords$1.computeNext(AliasedRecords.java:63)
at datameer.plugin.tez.input.AliasedRecords$CombinedAliasedRecords$1.computeNext(AliasedRecords.java:52)
at datameer.dap.sdk.sequence.Sequence$Simple.moveToNext(Sequence.java:157)
at datameer.dap.sdk.sequence.Sequence$11.computeNext(Sequence.java:558)
at datameer.dap.sdk.sequence.Sequence$Simple.moveToNext(Sequence.java:157)
at datameer.dap.sdk.sequence.Sequence$13.moveToNext(Sequence.java:603)
at datameer.dap.sdk.sequence.Sequence$14.computeNext(Sequence.java:647)
at datameer.dap.sdk.sequence.Sequence$Simple.moveToNext(Sequence.java:157)
at datameer.plugin.tez.processing.SimpleVertexProcessor.run(SimpleVertexProcessor.java:161)
at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:324)
...
Troubleshooting steps
During check of Hadoop Cluster the following settings were found:
tez.am.launch.env="/usr/lib/hadoop/lib/native</value>"
tez.task.launch.env="/usr/lib/hadoop/lib/native</value>"
The properties should be set EXACTLY to those without the quotes:
tez.am.launch.env=LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native
tez.task.launch.env=LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native
Cause
The Tez environment libraries are not configured properly for Datameer jobs.
Solution
To resolve this issue, ensure that the following properties are set in the Datameer Custom Properties:
tez.am.launch.env=LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native
tez.task.launch.env=LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native
Note
The Tez property has to be specified without use of quotes (") so it should be
tez.task.launch.env=LD_LIBRARY_PATH=... and NOT tez.task.launch.env="LD_LIBRARY_PATH=...
Once these properties are set, the job can be re-run to verify that this resolved the issue.
Comments
0 comments
Please sign in to leave a comment.