Hi Prabhakar, If you removed the configured UDF block, can all the Drillbit start properly? I mean, if the host is configured but not working, we need to locate the wrong configuration block first.
> 2021年10月4日 下午1:13,Prabhakar Bhosaale <bhosale....@gmail.com> 写道: > > hi Luoc, > > I already tried giving hdfs host name in UDF section and even then it gives > same error. > My understanding of that element is that it just tell what kind of file > system it need to use. I checked for the documentation on understanding > the every element of that configuration file but could not find it. If you > could give me some pointers for the documentation that would be great. thx > > Regards > Prabhakar > > > > On Sat, Oct 2, 2021 at 1:08 PM luoc <l...@apache.org> wrote: > >> 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 <bhosale....@gmail.com> 写道: >>> >>> Hi Luoc, >>> Could you please help with it? thanks >>> >>> Regards >>> Prabhakar >>> >>>> On Fri, Oct 1, 2021 at 4:55 PM Prabhakar Bhosaale < >> bhosale....@gmail.com> >>>> 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 <l...@apache.org> 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 <bhosale....@gmail.com> 写道: >>>>>> >>>>>> 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 >>>>> >>>>> >>> >> >> >