hi Luoc, I gave full permission to the UDF folder and that error is gone and drillbit started successfully. But when I query the json file I get the following error message.
2021-10-05 16:33:18,428 [1ea3cf09-19d4-55fe-3b84-6235e7f1eae6:foreman] INFO o.a.drill.exec.work.foreman.Foreman - Query text for query with id 1ea3cf09-19d4-55fe-3b84-6235e7f1eae6 issued by anonymous: select * from archival_hdfs.`mytable` 2021-10-05 16:33:18,435 [1ea3cf09-19d4-55fe-3b84-6235e7f1eae6:foreman] INFO o.a.d.e.p.s.conversion.SqlConverter - User Error Occurred: Invalid range: [0..-1) (Invalid range: [0..-1)) org.apache.drill.common.exceptions.UserException: VALIDATION ERROR: Invalid range: [0..-1) Regards Prabhakar On Tue, Oct 5, 2021 at 2:28 PM luoc <l...@apache.org> wrote: > 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 > >>>>> > >>>>> > >>> > >> > >> > > > >