Hi Prabhakar,

  Which configuration block is the host name you mentioned? I see that the UDF 
block.

```
    # instead of default taken from Hadoop configuration
    fs: "hdfs:///",
```

> 在 2021年10月2日,15:11,Prabhakar Bhosaale <[email protected]> 写道:
> 
> Hi Luoc,
> Could you please help with it?  thanks
> 
> Regards
> Prabhakar
> 
>> On Fri, Oct 1, 2021 at 4:55 PM Prabhakar Bhosaale <[email protected]>
>> wrote:
>> Hi Luoc,
>> I have already given the host name. Below is the complete file for your
>> reference. Not sure where to give the hostname.
>> # 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.
>> #
>> #  This file tells Drill to consider this module when class path scanning.
>> #  This file can also include any supplementary configuration information.
>> #  This file is in HOCON format, see
>> https://github.com/typesafehub/config/blob/master/HOCON.md for more
>> information.
>> drill.logical.function.packages += "org.apache.drill.exec.expr.fn.impl"
>> drill.exec: {
>> cluster-id: "drillcluster"
>> rpc: {
>>  user: {
>>    server: {
>>      port: 31010
>>      threads: 1
>>    }
>>    client: {
>>      threads: 1
>>    }
>>  },
>>  bit: {
>>    server: {
>>      port : 31011,
>>      retry:{
>>        count: 7200,
>>        delay: 500
>>      },
>>      threads: 1
>>    }
>>  },
>>  use.ip : false
>> },
>> operator: {
>>  packages += "org.apache.drill.exec.physical.config"
>> },
>> optimizer: {
>>  implementation: "org.apache.drill.exec.opt.IdentityOptimizer"
>> },
>> functions: ["org.apache.drill.expr.fn.impl"],
>> storage: {
>>  packages += "org.apache.drill.exec.store",
>>  file: {
>>    text: {
>>      buffer.size: 262144,
>>      batch.size: 4000
>>    },
>>    partition.column.label: "dir"
>>  },
>>  # The action on the storage-plugins-override.conf after it's use.
>>  # Possible values are "none" (default), "rename", "remove"
>>  action_on_plugins_override_file: "none"
>> },
>> zk: {
>>  connect: "10.81.68.6:2181,10.81.68.110:2181,10.81.70.139:2181",
>>  root: "user/pstore",
>>  refresh: 500,
>>  timeout: 5000,
>>  retry: {
>>    count: 7200,
>>    delay: 500
>>  }
>>  # This option controls whether Drill specifies ACLs when it creates
>> znodes.
>>  # If this is 'false', then anyone has all privileges for all Drill
>> znodes.
>>  # This corresponds to ZOO_OPEN_ACL_UNSAFE.
>>  # Setting this flag to 'true' enables the provider specified in
>> "acl_provider"
>>  apply_secure_acl: false,
>>  # This option specified the ACL provider to be used by Drill.
>>  # Custom ACL providers can be provided in the Drillbit classpath and
>> Drill can be made to pick them
>>  # by changing this option.
>>  # Note: This option has no effect if "apply_secure_acl" is 'false'
>>  #
>>  # The default "creator-all" will setup ACLs such that
>>  #    - Only the Drillbit user will have all privileges(create, delete,
>> read, write, admin). Same as ZOO_CREATOR_ALL_ACL
>>  #    - Other users will only be able to read the
>> cluster-discovery(list of Drillbits in the cluster) znodes.
>>  #
>>  acl_provider: "creator-all"
>> },
>> http: {
>>  enabled: true,
>>  ssl_enabled: false,
>>  port: 8047
>>  session_max_idle_secs: 3600, # Default value 1hr
>>  cors: {
>>    enabled: false,
>>    allowedOrigins: ["null"],
>>    allowedMethods: ["GET", "POST", "HEAD", "OPTIONS"],
>>    allowedHeaders: ["X-Requested-With", "Content-Type", "Accept",
>> "Origin"],
>>    credentials: true
>>  },
>>  auth: {
>>      # Http Auth mechanisms to configure. If not provided but user.auth
>> is enabled
>>      # then default value is ["FORM"].
>>      mechanisms: ["BASIC", "FORM", "SPNEGO"],
>>      # Spnego principal to be used by WebServer when Spnego
>> authentication is enabled.
>>      spnego.principal: "HTTP://<localhost>"
>>      # Location to keytab file for above spnego principal
>>      spnego.keytab: "<keytab_file_location>";
>>  },
>>  jetty: {
>>    server: {
>>      # development option which allows to log Jetty server state after
>> start
>>      dumpAfterStart: false,
>>      # Optional params to set on Jetty's
>> org.eclipse.jetty.util.ssl.SslContextFactory when
>> drill.exec.http.ssl_enabled
>>      sslContextFactory: {
>>        # allows to specify cert to use when multiple non-SNI
>> certificates are available.
>>        certAlias: "certAlias",
>>        # path to file that contains Certificate Revocation List
>>        crlPath: "/etc/file.crl",
>>        # enable Certificate Revocation List Distribution Points Support
>>        enableCRLDP: false,
>>        # enable On-Line Certificate Status Protocol support
>>        enableOCSP: false,
>>        # when set to "HTTPS" hostname verification will be enabled
>>        endpointIdentificationAlgorithm: "HTTPS",
>>        # accepts exact cipher suite names and/or regular expressions.
>>        excludeCipherSuites: ["SSL_DHE_DSS_WITH_DES_CBC_SHA"],
>>        # list of TLS/SSL protocols to exclude
>>        excludeProtocols: ["TLSv1.1"],
>>        # accepts exact cipher suite names and/or regular expressions.
>>        includeCipherSuites: ["SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
>> "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"],
>>        # list of TLS/SSL protocols to include
>>        includeProtocols: ["TLSv1.2", "TLSv1.3"],
>>        # the algorithm name (default "SunX509") used by the
>> javax.net.ssl.KeyManagerFactory
>>        keyManagerFactoryAlgorithm: "SunX509",
>>        # classname of custom java.security.Provider implementation
>>        keyStoreProvider: null,
>>        # type of key store (default "JKS")
>>        keyStoreType: "JKS",
>>        # max number of intermediate certificates in sertificate chain
>>        maxCertPathLength: -1,
>>        # set true if ssl needs client authentication
>>        needClientAuth: false,
>>        # location of the OCSP Responder
>>        ocspResponderURL: "",
>>        # javax.net.ssl.SSLContext provider
>>        provider: null,
>>        # whether TLS renegotiation is allowed
>>        renegotiationAllowed: false,
>>        # number of renegotions allowed for this connection (-1 for
>> unlimited, default 5) .
>>        renegotiationLimit: 5,
>>        # algorithm name for java.security.SecurityRandom instances.
>>        #
>> https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#SecureRandom
>>        secureRandomAlgorithm: "NativePRNG",
>>        # set the flag to enable SSL Session caching
>>        sessionCachingEnabled: false,
>>        # set if you want to bound session cache size
>>        sslSessionCacheSize: -1,
>>        # session timeout in seconds.
>>        sslSessionTimeout: -1,
>>        # the algorithm name (default "SunX509") used by the
>> javax.net.ssl.TrustManagerFactory
>>        trustManagerFactoryAlgorithm: "SunX509",
>>        # provider of the trust store
>>        trustStoreProvider: null,
>>        # type of the trust store (default "JKS")
>>        trustStoreType: "JKS",
>>        # sets whether the local cipher suites preference should be
>> honored.
>>        useCipherSuiteOrder: false,
>>        # true if SSL certificates have to be validated
>>        validateCerts: false,
>>        # true if SSL certificates of the peer have to be validated
>>        validatePeerCerts: false,
>>        # true if SSL wants client authentication.
>>        wantClientAuth: false
>>      },
>>      response: {
>>        # any response headers with constant values may be configured
>> like this
>>        headers: {
>>          "X-XSS-Protection": "1; mode=block",
>>          "X-Content-Type-Options": "nosniff",
>>          "Strict-Transport-Security":
>> "max-age=31536000;includeSubDomains",
>>          # NOTE: 'unsafe-inline' is required until DRILL-7642 is
>> resolved
>>          "Content-Security-Policy": "default-src https:; script-src
>> 'unsafe-inline' https:; style-src 'unsafe-inline' https:; font-src data:
>> https:; img-src data: https:"
>>        }
>>      }
>>    }
>>  }
>> },
>> # Below SSL parameters need to be set for custom transport layer
>> settings.
>> ssl: {
>>  #If not provided then the default value is java system property
>> javax.net.ssl.keyStore value
>>  keyStorePath: "/keystore.file",
>>  #If not provided then the default value is java system property
>> javax.net.ssl.keyStorePassword value
>>  keyStorePassword: "ks_passwd",
>>  #If not provided then the default value is java system property
>> javax.net.ssl.trustStore value
>>  trustStorePath: "/truststore.file",
>>  #If not provided then the default value is java system property
>> javax.net.ssl.trustStorePassword value
>>  trustStorePassword: "ts_passwd"
>> },
>> functions: ["org.apache.drill.expr.fn.impl"],
>> network: {
>>  start: 35000
>> },
>> work: {
>>  max.width.per.endpoint: 5,
>>  global.max.width: 100,
>>  affinity.factor: 1.2,
>>  executor.threads: 4
>> },
>> sys.store.provider: {
>>  class:
>> "org.apache.drill.exec.store.sys.store.provider.ZookeeperPersistentStoreProvider",
>>  # The following section is used by ZkPStoreProvider
>>  zk: {
>>    blobroot: "file:///var/log/drill"
>>  },
>>  # The following section is only required by LocalPStoreProvider
>>  local: {
>>    path: "/tmp/drill",
>>    write: true
>>  }
>> },
>> impersonation: {
>>  enabled: false,
>>  max_chained_user_hops: 3
>> },
>> security.user.auth {
>>  enabled: false,
>>  packages += "org.apache.drill.exec.rpc.user.security",
>>  # There are 2 implementations available out of the box with annotation
>> UserAuthenticatorTemplate
>>  # Annotation type "pam" is providing implementation using JPAM
>>  # Annotation type "pam4j" is providing implementation using libpam4j
>>  # Based on annotation type configured below corresponding
>> authenticator is used.
>>  impl: "pam",
>>  pam_profiles: [ "sudo", "login" ]
>> },
>> trace: {
>>  directory: "/tmp/drill-trace",
>>  filesystem: "file:///"
>> },
>> tmp: {
>>  directories: ["/tmp/drill"],
>>  filesystem: "drill-local:///"
>> },
>> buffer:{
>>  impl: "org.apache.drill.exec.work.batch.UnlimitedRawBatchBuffer",
>>  size: "100",
>>  spooling: {
>>    delete: false,
>>    size: 100000000
>>  }
>> },
>> cache.hazel.subnets: ["*.*.*.*"],
>> spill: {
>>   # These options are common to all spilling operators.
>>   # They can be overriden, per operator (but this is just for
>>   # backward compatibility, and may be deprecated in the future)
>>   directories : [ "/tmp/drill/spill" ],
>>   fs : "file:///"
>> }
>> sort: {
>>  purge.threshold : 100,
>>  external: {
>>    batch.size : 4000,
>>    spill: {
>>      batch.size : 4000,
>>      group.size : 100,
>>      threshold : 200,
>>      # The 2 options below override the common ones
>>      # they should be deprecated in the future
>>      directories : [ "/tmp/drill/spill" ],
>>      fs : "file:///"
>>    }
>>  }
>> },
>> hashagg: {
>>  # The partitions divide the work inside the hashagg, to ease
>>  # handling spilling. This initial figure is tuned down when
>>  # memory is limited.
>>  #  Setting this option to 1 disables spilling !
>>  num_partitions: 32,
>>  spill: {
>>      # The 2 options below override the common ones
>>      # they should be deprecated in the future
>>      directories : [ "/tmp/drill/spill" ],
>>      fs : "file:///"
>>  }
>> },
>> memory: {
>>  top.max: 1000000000000,
>>  operator: {
>>    max: 20000000000,
>>    initial: 10000000
>>  },
>>  fragment: {
>>    max: 20000000000,
>>    initial: 20000000
>>  }
>> },
>> scan: {
>>  threadpool_size: 8,
>>  decode_threadpool_size: 1
>> },
>> debug.error_on_leak: true,
>> # Settings for Dynamic UDFs (see
>> https://issues.apache.org/jira/browse/DRILL-4726 for details).
>> udf: {
>>  # number of retry attempts to update remote function registry
>>  # if registry version was changed during update
>>  retry-attempts: 10,
>>  directory: {
>>    # Override this property if custom file system should be used to
>> create remote directories
>>    # instead of default taken from Hadoop configuration
>>    fs: "hdfs:///",
>>    # Set this property if custom absolute root should be used for
>> remote directories
>>    root: "user/udf"
>>  }
>> },
>> # Settings for Temporary Tables (see
>> https://issues.apache.org/jira/browse/DRILL-4956 for details).
>> # Temporary table can be created ONLY in default temporary workspace.
>> # Full workspace name should be indicated (including schema and
>> workspace separated by dot).
>> # Workspace MUST be file-based and writable. Workspace name is
>> case-sensitive.
>> default_temporary_workspace: "dfs.tmp"
>> 
>> # Enable and provide additional parameters for Client-Server
>> communication over SSL
>> # see also the javax.net.ssl parameters below
>> security.user.encryption.ssl: {
>>  #Set this to true to enable all client server communication to occur
>> over SSL.
>>  enabled: false,
>>  #key password is optional if it is the same as the keystore password
>>  keyPassword: "key_passwd",
>>  #Optional handshakeTimeout in milliseconds. Default is 10000 ms (10
>> seconds)
>>  handshakeTimeout: 10000,
>>  #protocol is optional. Drill will default to TLSv1.2. Valid values
>> depend on protocol versions
>>  # enabled for tje underlying securrity provider. For JSSE these are :
>> SSL, SSLV2, SSLV3,
>>  # TLS, TLSV1, TLSv1.1, TLSv1.2
>>  protocol: "TLSv1.2",
>>  #ssl provider. May be "JDK" or "OPENSSL". Default is "JDK"
>>  provider: "JDK"
>> }
>> 
>> # HTTP client proxy configuration
>> net_proxy: {
>> 
>>  # HTTP URL. Omit if from a Linux env var
>>  # See
>> https://www.shellhacks.com/linux-proxy-server-settings-set-proxy-command-line/
>>  http_url: "",
>> 
>>  # Explicit HTTP setup, used if URL is not set
>>  http: {
>>    type: "none", # none, http, socks. Blank same as none.
>>    host: "",
>>    port: 80,
>>    user_name: "",
>>    password: ""
>>  },
>> 
>>  # HTTPS URL. Omit if from a Linux env var
>>  https_url: "",
>> 
>>  # Explicit HTTPS setup, used if URL is not set
>>  https: {
>>    type: "none", # none, http, socks. Blank same as none.
>>    host: "",
>>    port: 80,
>>    user_name: "",
>>    password: ""
>>  }
>> }
>> },
>> 
>> drill.metrics : {
>> context: "drillbit",
>> jmx: {
>>  enabled : true
>> },
>> log: {
>>  enabled : false,
>>  interval : 60
>> }
>> }
>> 
>>> On Fri, Oct 1, 2021 at 3:12 PM luoc <[email protected]> wrote:
>>> 
>>> Hi Prabhakar,
>>> Check your config. The following error message shows that a valid host
>>> name is missing :
>>> 
>>> "Caused by: java.io.IOException: Incomplete HDFS URI, no host: hdfs:///"
>>> 
>>>> 2021年10月1日 下午5:26,Prabhakar Bhosaale <[email protected]> 写道:
>>>> 
>>>> Hi Team,
>>>> I have installed drill in distributed mode on hadoop 3 node cluster.
>>>> 
>>>> I get following error in the drillbit.out file when try to start the
>>>> drillbit
>>>> 
>>>> ----- ERROR----
>>>> 12:34:46.984 [main-EventThread] ERROR
>>> o.a.c.framework.imps.EnsembleTracker
>>>> - Invalid config event received:
>>>> {server.1=machinename1:2888:3888:participant, version=0, server.3=
>>>> machinename2:2888:3888:participant, server.2=
>>>> machinename3:2888:3888:participant}
>>>> 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:588)
>>>> at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:554)
>>>> at org.apache.drill.exec.server.Drillbit.main(Drillbit.java:550)
>>>> Caused by: org.apache.drill.common.exceptions.DrillRuntimeException:
>>> Error
>>>> during file system hdfs:/// setup
>>>> at
>>>> 
>>> org.apache.drill.common.exceptions.DrillRuntimeException.create(DrillRuntimeException.java:48)
>>>> at
>>>> 
>>> org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.prepareAreas(RemoteFunctionRegistry.java:231)
>>>> at
>>>> 
>>> org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.init(RemoteFunctionRegistry.java:109)
>>>> at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:233)
>>>> at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:584)
>>>> ... 2 more
>>>> Caused by: java.io.IOException: Incomplete HDFS URI, no host: hdfs:///
>>>> at
>>>> 
>>> org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:170)
>>>> at
>>> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3375)
>>>> at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:125)
>>>> at
>>> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3424)
>>>> at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3392)
>>>> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:485)
>>>> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:233)
>>>> at
>>>> 
>>> org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.prepareAreas(RemoteFunctionRegistry.java:229)
>>>> ... 5 more
>>>> ----ERROR END----
>>>> 
>>>> THe drill version is - 1.19
>>>> Haddop version is - 3.3.1
>>>> Zookeeper version is - 3.71
>>>> 
>>>> I have following settings done
>>>> 
>>>> zoo.cfg file
>>>> server.1=machine1:2888:3888
>>>> server.2= machine2:2888:3888
>>>> server.3= machine3:2888:3888
>>>> 
>>>> drill-override.conf
>>>> zk: {
>>>> connect: "machine1:2181, machine2:2181, machine3:2181",
>>>> root: "user/pstore",
>>>> refresh: 500,
>>>> timeout: 5000,
>>>> retry: {
>>>>   count: 7200,
>>>>   delay: 500
>>>> }
>>>> 
>>>> udf: {
>>>> # number of retry attempts to update remote function registry
>>>> # if registry version was changed during update
>>>> retry-attempts: 10,
>>>> directory: {
>>>>   # Override this property if custom file system should be used to
>>>> create remote directories
>>>>   # instead of default taken from Hadoop configuration
>>>>   fs: "hdfs:///",
>>>>   # Set this property if custom absolute root should be used for
>>> remote
>>>> directories
>>>>   root: "user/udf"
>>>> }
>>>> 
>>>> Any help and pointer is appreciated. thx
>>>> 
>>>> Regards
>>>> Prabhakar
>>> 
>>> 
> 

Reply via email to