Uploaded image for project: 'Talend Component Kit'
  1. Talend Component Kit
  2. TCOMP-595

Failed to locate the winutils binary in the hadoop binary path when running S3 component on Windows

Apply templateInsert Lucidchart Diagram
    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 0.20.0
    • None
    • None
    • None
    • Hide

      Use OS Windows

      1. Check that HADOOP_HOME env var is not set in your OS
      2. cd simplefileio-runtime maven module
      3. remove Ignore annotation from S3DatasetRuntimeTestIT class
      4. run following command
        mvn clean test-compile failsafe:integration-test -Dit.test=S3DatasetRuntimeTestIT
      5. Test will fail with described exception
      Show
      Use OS Windows Check that HADOOP_HOME env var is not set in your OS cd simplefileio-runtime maven module remove Ignore annotation from S3DatasetRuntimeTestIT class run following command mvn clean test-compile failsafe:integration-test -Dit.test=S3DatasetRuntimeTestIT Test will fail with described exception
    • All
    • Small

    Description

      S3 component from component/components-fileio module requires following things:

      1. winutils.exe
      2. hadoop.dll
      3. HADOOP_HOME env var to be set
      4. %HADOOP_HOME%\bin should be appended to PATH env variable

      If above is missed following exception occurs on Windows OS:

      ERROR [main] (Shell.java:374) - Failed to locate the winutils binary in the hadoop binary path
      java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
              at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:356)
              at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:371)
              at org.apache.hadoop.util.Shell.<clinit>(Shell.java:364)
              at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
              at org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1437)
              at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:367)
              at org.talend.components.simplefileio.runtime.s3.S3Connection.createFileSystem(S3Connection.java:59)
              at org.talend.components.simplefileio.runtime.s3.S3TestResource.after(S3TestResource.java:179)
              at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:50)
              at org.junit.rules.RunRules.evaluate(RunRules.java:20)
              at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
              at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
              at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
              at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
              at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
              at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:351)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
              at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:245)
              at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:184)
              at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:312)
              at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:266)
              at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:147)
       WARN [main] (NativeCodeLoader.java:62) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
      

      Solution for TCOMP service is to pack service with above binaries and to set env var in start.bat file

      Attachments

        Activity

          People

            igonchar Ivan Gonchar
            igonchar Ivan Gonchar
            Ivan Gonchar
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 day, 7 hours
                1d 7h