[ https://issues.apache.org/jira/browse/DRILL-5280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15882762#comment-15882762 ]
Arina Ielchiieva commented on DRILL-5280: ----------------------------------------- [~usmanshahid] drillbit.sh calls drill-config.sh to setup environment. it contains similar code as in sqlline.bat for those who use cygwin: {code} # Adjust paths for CYGWIN if $is_cygwin; then DRILL_HOME=`cygpath -w "$DRILL_HOME"` DRILL_CONF_DIR=`cygpath -w "$DRILL_CONF_DIR"` DRILL_LOG_DIR=`cygpath -w "$DRILL_LOG_DIR"` DRILL_TMP_DIR=`cygpath -w "$DRILL_TMP_DIR"` CP=`cygpath -w -p "$CP"` if [ -z "$HADOOP_HOME" ]; then export HADOOP_HOME=${DRILL_HOME}/winutils fi fi {code} Are you saying this code doesn't work correctly on your environment? > Error during udf area creation due to NullPointerException during drillbit > startup > ---------------------------------------------------------------------------------- > > Key: DRILL-5280 > URL: https://issues.apache.org/jira/browse/DRILL-5280 > Project: Apache Drill > Issue Type: Bug > Affects Versions: 1.10.0 > Environment: Windows 7 64-bit > Java(TM) SE Runtime Environment (build 1.8.0_111-b14) > Reporter: Usman Shahid > > I tried to start drill in distributed mode but ran into this: > {code}Exception in thread "main" > org.apache.drill.exec.exception.DrillbitStartupException: Failure during > initial startup of Drillbit. > at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:296) > at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:272) > at org.apache.drill.exec.server.Drillbit.main(Drillbit.java:268) > Caused by: org.apache.drill.common.exceptions.DrillRuntimeException: Error > during udf area creation [/C:/Users/Usman.Shahid/drill/udf/registry] on file > system [file:///] > at > org.apache.drill.common.exceptions.DrillRuntimeException.format(DrillRuntimeException.java:49) > at > org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.createArea(RemoteFunctionRegistry.java:251) > at > org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.prepareAreas(RemoteFunctionRegistry.java:208) > at > org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.init(RemoteFunctionRegistry.java:105) > at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:126) > at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:292) > ... 2 more > Caused by: java.lang.NullPointerException > at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012) > at org.apache.hadoop.util.Shell.runCommand(Shell.java:483) > at org.apache.hadoop.util.Shell.run(Shell.java:456) > at > org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722) > at org.apache.hadoop.util.Shell.execCommand(Shell.java:815) > at org.apache.hadoop.util.Shell.execCommand(Shell.java:798) > at org.apache.hadoop.fs.FileUtil.execCommand(FileUtil.java:1097) > at > org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:654) > at > org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission(RawLocalFileSystem.java:629) > at > org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.createArea(RemoteFunctionRegistry.java:232) > ... 6 more > {code} > The complete stack trace for the `NullPointerException` is: > {code} > Thread [main] (Suspended (exception NullPointerException)) > owns: Object (id=57) > ProcessBuilder.start() line: 1012 > Shell$ShellCommandExecutor(Shell).runCommand() line: 483 > Shell$ShellCommandExecutor(Shell).run() line: 456 > Shell$ShellCommandExecutor.execute() line: 722 > Shell.execCommand(Map<String,String>, String[], long) line: 815 > Shell.execCommand(String...) line: 798 > FileUtil.execCommand(File, String...) line: 1097 > RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo() > line: 654 > RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission() line: > 629 > RemoteFunctionRegistry.createArea(FileSystem, String, String) line: 232 > RemoteFunctionRegistry.prepareAreas(DrillConfig) line: 208 > RemoteFunctionRegistry.init(DrillConfig, PersistentStoreProvider, > ClusterCoordinator) line: 105 > Drillbit.run() line: 126 > Drillbit.start(DrillConfig, RemoteServiceSet) line: 292 > Drillbit.start(StartupOptions) line: 272 > Drillbit.main(String[]) line: 268 > {code} > To further pinpoint it, the call to _Shell.getGetPermissionCommand()_ at > _RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo()_ > returns a new String[] { WINUTILS, "ls", "-F" }. It's this WINUTILS that's > null because my system doesn't have hadoop installed (nor do I intend to use > it). > The shortest workaround to this is to have a _HADOOP_HOME_ environment > variable pointing towards the _winutils.exe_ bin directory. -- This message was sent by Atlassian JIRA (v6.3.15#6346)