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 <[email protected]> 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 <[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 > >>> > >>> > > > >
