{"id":13487770,"url":"https://github.com/elastic/elasticsearch-hadoop","last_synced_at":"2026-04-01T18:37:56.564Z","repository":{"id":7382979,"uuid":"8710734","full_name":"elastic/elasticsearch-hadoop","owner":"elastic","description":" :elephant: Elasticsearch real-time search and analytics natively integrated with Hadoop","archived":false,"fork":false,"pushed_at":"2026-03-30T19:50:30.000Z","size":11125,"stargazers_count":2025,"open_issues_count":134,"forks_count":992,"subscribers_count":480,"default_branch":"main","last_synced_at":"2026-03-30T21:27:42.175Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.elastic.co/products/hadoop","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elastic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-03-11T18:57:37.000Z","updated_at":"2026-03-30T19:50:37.000Z","dependencies_parsed_at":"2024-02-14T19:59:15.347Z","dependency_job_id":"9effe5d6-fd29-49e1-b151-71dea6b1bff4","html_url":"https://github.com/elastic/elasticsearch-hadoop","commit_stats":{"total_commits":2232,"total_committers":136,"mean_commits":16.41176470588235,"dds":0.3646953405017921,"last_synced_commit":"b46ad9e9b0cae2ffeff75d70cdc11920d5c6e973"},"previous_names":["elasticsearch/elasticsearch-hadoop"],"tags_count":356,"template":false,"template_full_name":null,"purl":"pkg:github/elastic/elasticsearch-hadoop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-hadoop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-hadoop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-hadoop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-hadoop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elastic","download_url":"https://codeload.github.com/elastic/elasticsearch-hadoop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Felasticsearch-hadoop/sbom","scorecard":{"id":23258,"data":{"date":"2025-08-11","repo":{"name":"github.com/elastic/elasticsearch-hadoop","commit":"3f41699c36a0c31cbfa514baede8dcff8b707854"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Code-Review","score":3,"reason":"Found 10/30 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":8,"reason":"9 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/docs-build.yml:18","Warn: jobLevel 'deployments' permission set to 'write': .github/workflows/docs-build.yml:16","Info: found token with 'none' permissions: .github/workflows/docs-cleanup.yml:12","Warn: jobLevel 'deployments' permission set to 'write': .github/workflows/docs-cleanup.yml:14","Warn: no topLevel permission defined: .github/workflows/docs-build.yml:1","Warn: no topLevel permission defined: .github/workflows/docs-cleanup.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs-build.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/elastic/elasticsearch-hadoop/docs-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs-cleanup.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/elastic/elasticsearch-hadoop/docs-cleanup.yml/main?enable=pin","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/elastic/.github/SECURITY.md:1","Info: Found linked content: github.com/elastic/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/elastic/.github/SECURITY.md:1","Info: Found text in security policy: github.com/elastic/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":5,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Warn: 'stale review dismissal' is disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Warn: no status checks found to merge onto branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T17:17:34.655Z","repository_id":7382979,"created_at":"2025-08-14T17:17:34.656Z","updated_at":"2025-08-14T17:17:34.656Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T18:01:03.598Z","updated_at":"2026-04-01T18:37:56.391Z","avatar_url":"https://github.com/elastic.png","language":"Java","funding_links":[],"categories":["Java","Elasticsearch plugins","II. Databases, search engines, big data and machine learning","大数据","Hadoop","Elasticsearch"],"sub_categories":["Integrations and SQL support","7. Big data","Tools"],"readme":"# Elasticsearch Hadoop [![Build Status](https://travis-ci.org/elastic/elasticsearch-hadoop.svg?branch=master)](https://travis-ci.org/elastic/elasticsearch-hadoop)\nElasticsearch real-time search and analytics natively integrated with Hadoop.\nSupports [Map/Reduce](#mapreduce), [Apache Hive](#apache-hive), and [Apache Spark](#apache-spark).\n\nSee  [project page](https://www.elastic.co/elasticsearch/hadoop/) and [documentation](http://www.elastic.co/guide/en/elasticsearch/hadoop/current/index.html) for detailed information.\n\n## Requirements\nElasticsearch cluster accessible through [REST][]. That's it!\nSignificant effort has been invested to create a small, dependency-free, self-contained jar that can be downloaded andput to use without any dependencies. Simply make it available to your job classpath and you're set.\nFor a certain library, see the dedicated [chapter](http://www.elastic.co/guide/en/elasticsearch/hadoop/current/requirements.html).\n\nWhile an effort has been made to keep ES-Hadoop backwards compatible with older versions of Elasticsearch, it is best\nto use the version of ES-Hadoop that is the same as the Elasticsearch version. See the\n[product compatibility support matrix](https://www.elastic.co/support/matrix#matrix_compatibility) for more information. \n\n## Installation\n\n### Stable Release (`9.0.0` used in the examples below)\nSupport for Hadoop is available through any Maven-compatible tool:\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.elasticsearch\u003c/groupId\u003e\n  \u003cartifactId\u003eelasticsearch-hadoop\u003c/artifactId\u003e\n  \u003cversion\u003e9.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\nor as a stand-alone [ZIP](http://www.elastic.co/downloads/hadoop).\n\nSpark support depends on the versions of Spark and Scala your cluster uses. For Scala 2.12 and Spark 3.0, 3.1, 3.2, 3.3, or 3.4, use:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.elasticsearch\u003c/groupId\u003e\n  \u003cartifactId\u003eelasticsearch-spark-30_2.12\u003c/artifactId\u003e\n  \u003cversion\u003e9.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\nFor Scala 2.13 and Spark 3.2, 3.3, or 3.4, use:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.elasticsearch\u003c/groupId\u003e\n  \u003cartifactId\u003eelasticsearch-spark-30_2.13\u003c/artifactId\u003e\n  \u003cversion\u003e9.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n\n### Supported Hadoop Versions\n\nES-Hadoop is developed for and tested against Hadoop 2.x and 3.x on YARN.\nMore information in this [section](http://www.elastic.co/guide/en/elasticsearch/hadoop/current/install.html).\n\n### Supported Spark Versions\n\nSpark 3.0 through 3.4 are supported. Only Scala 2.12 is supported for Spark 3.0 and 3.1. Both Scala 2.12 and 2.13\nare supported for Spark 3.2 and higher.  \n\n## Feedback / Q\u0026A\nWe're interested in your feedback! You can find us on the [Elastic forum](https://discuss.elastic.co/).\n\n\n## Online Documentation\n\nThe latest reference documentation is available online on the project [home page](http://www.elastic.co/guide/en/elasticsearch/hadoop/index.html). Below the README contains _basic_ usage instructions at a glance.\n\n## Usage\n\n### Configuration Properties\n\nAll configuration properties start with `es` prefix. Note that the `es.internal` namespace is reserved for the library internal use and should _not_ be used by the user at any point.\nThe properties are read mainly from the Hadoop configuration but the user can specify (some of) them directly depending on the library used.\n\n### Required\n```\nes.resource=\u003cES resource location, relative to the host/port specified above\u003e\n```\n### Essential\n```\nes.query=\u003curi or query dsl query\u003e              # defaults to {\"query\":{\"match_all\":{}}}\nes.nodes=\u003cES host address\u003e                     # defaults to localhost\nes.port=\u003cES REST port\u003e                         # defaults to 9200\n```\n\nThe full list is available [here](http://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html)\n\n## [Map/Reduce][]\n\nFor basic, low-level or performance-sensitive environments, ES-Hadoop provides dedicated `InputFormat` and `OutputFormat` that read and write data to Elasticsearch. To use them, add the `es-hadoop` jar to your job classpath\n(either by bundling the library along - it's ~300kB and there are no-dependencies), using the [DistributedCache][] or by provisioning the cluster manually.\nSee the [documentation](http://www.elastic.co/guide/en/elasticsearch/hadoop/current/index.html) for more information.\n\nNote that es-hadoop supports the Hadoop API through its `EsInputFormat` and `EsOutputFormat` classes.\n\n### Reading\n```java\nConfiguration conf = new Configuration();\nconf.set(\"es.resource\", \"radio/artists\");\nconf.set(\"es.query\", \"?q=me*\");             // replace this with the relevant query\nJob job = new Job(conf)\njob.setInputFormatClass(EsInputFormat.class);\n...\njob.waitForCompletion(true);\n```\n### Writing\n```java\nConfiguration conf = new Configuration();\nconf.set(\"es.resource\", \"radio/artists\"); // index or indices used for storing data\nJob job = new Job(conf)\njob.setOutputFormatClass(EsOutputFormat.class);\n...\njob.waitForCompletion(true);\n```\n\n## [Apache Hive][]\nES-Hadoop provides a Hive storage handler for Elasticsearch, meaning one can define an [external table][] on top of ES.\n\nAdd es-hadoop-\u003cversion\u003e.jar to `hive.aux.jars.path` or register it manually in your Hive script (recommended):\n```\nADD JAR /path_to_jar/es-hadoop-\u003cversion\u003e.jar;\n```\n### Reading\nTo read data from ES, define a table backed by the desired index:\n```SQL\nCREATE EXTERNAL TABLE artists (\n    id      BIGINT,\n    name    STRING,\n    links   STRUCT\u003curl:STRING, picture:STRING\u003e)\nSTORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'\nTBLPROPERTIES('es.resource' = 'radio/artists', 'es.query' = '?q=me*');\n```\nThe fields defined in the table are mapped to the JSON when communicating with Elasticsearch. Notice the use of `TBLPROPERTIES` to define the location, that is the query used for reading from this table.\n\nOnce defined, the table can be used just like any other:\n```SQL\nSELECT * FROM artists;\n```\n\n### Writing\nTo write data, a similar definition is used but with a different `es.resource`:\n```SQL\nCREATE EXTERNAL TABLE artists (\n    id      BIGINT,\n    name    STRING,\n    links   STRUCT\u003curl:STRING, picture:STRING\u003e)\nSTORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'\nTBLPROPERTIES('es.resource' = 'radio/artists');\n```\n\nAny data passed to the table is then passed down to Elasticsearch; for example considering a table `s`, mapped to a TSV/CSV file, one can index it to Elasticsearch like this:\n```SQL\nINSERT OVERWRITE TABLE artists\n    SELECT NULL, s.name, named_struct('url', s.url, 'picture', s.picture) FROM source s;\n```\n\nAs one can note, currently the reading and writing are treated separately but we're working on unifying the two and automatically translating [HiveQL][] to Elasticsearch queries.\n\n## [Apache Spark][]\nES-Hadoop provides native (Java and Scala) integration with Spark: for reading a dedicated `RDD` and for writing, methods that work on any `RDD`. Spark SQL is also supported\n\n### Reading\nTo read data from ES, create a dedicated `RDD` and specify the query as an argument:\n\n```scala\nimport org.elasticsearch.spark._\n\n..\nval conf = ...\nval sc = new SparkContext(conf)\nsc.esRDD(\"radio/artists\", \"?q=me*\")\n```\n\n#### Spark SQL\n```scala\nimport org.elasticsearch.spark.sql._\n\n// DataFrame schema automatically inferred\nval df = sqlContext.read.format(\"es\").load(\"buckethead/albums\")\n\n// operations get pushed down and translated at runtime to Elasticsearch QueryDSL\nval playlist = df.filter(df(\"category\").equalTo(\"pikes\").and(df(\"year\").geq(2016)))\n```\n\n### Writing\nImport the `org.elasticsearch.spark._` package to gain `savetoEs` methods on your `RDD`s:\n\n```scala\nimport org.elasticsearch.spark._\n\nval conf = ...\nval sc = new SparkContext(conf)\n\nval numbers = Map(\"one\" -\u003e 1, \"two\" -\u003e 2, \"three\" -\u003e 3)\nval airports = Map(\"OTP\" -\u003e \"Otopeni\", \"SFO\" -\u003e \"San Fran\")\n\nsc.makeRDD(Seq(numbers, airports)).saveToEs(\"spark/docs\")\n```\n\n#### Spark SQL\n\n```scala\nimport org.elasticsearch.spark.sql._\n\nval df = sqlContext.read.json(\"examples/people.json\")\ndf.saveToEs(\"spark/people\")\n```\n\n### Java\n\nIn a Java environment, use the `org.elasticsearch.spark.rdd.java.api` package, in particular the `JavaEsSpark` class.\n\n### Reading\nTo read data from ES, create a dedicated `RDD` and specify the query as an argument.\n\n```java\nimport org.apache.spark.api.java.JavaSparkContext;\nimport org.elasticsearch.spark.rdd.api.java.JavaEsSpark;\n\nSparkConf conf = ...\nJavaSparkContext jsc = new JavaSparkContext(conf);\n\nJavaPairRDD\u003cString, Map\u003cString, Object\u003e\u003e esRDD = JavaEsSpark.esRDD(jsc, \"radio/artists\");\n```\n\n#### Spark SQL\n\n```java\nSQLContext sql = new SQLContext(sc);\nDataFrame df = sql.read().format(\"es\").load(\"buckethead/albums\");\nDataFrame playlist = df.filter(df.col(\"category\").equalTo(\"pikes\").and(df.col(\"year\").geq(2016)))\n```\n\n### Writing\n\nUse `JavaEsSpark` to index any `RDD` to Elasticsearch:\n```java\nimport org.elasticsearch.spark.rdd.api.java.JavaEsSpark;\n\nSparkConf conf = ...\nJavaSparkContext jsc = new JavaSparkContext(conf);\n\nMap\u003cString, ?\u003e numbers = ImmutableMap.of(\"one\", 1, \"two\", 2);\nMap\u003cString, ?\u003e airports = ImmutableMap.of(\"OTP\", \"Otopeni\", \"SFO\", \"San Fran\");\n\nJavaRDD\u003cMap\u003cString, ?\u003e\u003e javaRDD = jsc.parallelize(ImmutableList.of(numbers, airports));\nJavaEsSpark.saveToEs(javaRDD, \"spark/docs\");\n```\n\n#### Spark SQL\n\n```java\nimport org.elasticsearch.spark.sql.api.java.JavaEsSparkSQL;\n\nDataFrame df = sqlContext.read.json(\"examples/people.json\")\nJavaEsSparkSQL.saveToEs(df, \"spark/docs\")\n```\n\n## Building the source\n\nElasticsearch Hadoop uses [Gradle][] for its build system and it is not required to have it installed on your machine. By default (`gradlew`), it automatically builds the package and runs the unit tests. For integration testing, use the `integrationTests` task.\nSee `gradlew tasks` for more information.\n\nTo create a distributable zip, run `gradlew distZip` from the command line; once completed you will find the jar in `build/libs`.\n\nTo build the project, JVM 8 (Oracle one is recommended) or higher is required.\n\n## License\nThis project is released under version 2.0 of the [Apache License][]\n\n```\nLicensed to Elasticsearch under one or more contributor\nlicense agreements. See the NOTICE file distributed with\nthis work for additional information regarding copyright\nownership. Elasticsearch licenses this file to you under\nthe Apache License, Version 2.0 (the \"License\"); you may\nnot use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing,\nsoftware distributed under the License is distributed on an\n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, either express or implied.  See the License for the\nspecific language governing permissions and limitations\nunder the License.\n```\n\n[Hadoop]: http://hadoop.apache.org\n[Map/Reduce]: http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html\n[Apache Hive]: http://hive.apache.org\n[Apache Spark]: http://spark.apache.org\n[HiveQL]: http://cwiki.apache.org/confluence/display/Hive/LanguageManual\n[external table]: http://cwiki.apache.org/Hive/external-tables.html\n[Apache License]: http://www.apache.org/licenses/LICENSE-2.0\n[Gradle]: http://www.gradle.org/\n[REST]: http://www.elastic.co/guide/en/elasticsearch/reference/current/api-conventions.html\n[DistributedCache]: http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Felasticsearch-hadoop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felastic%2Felasticsearch-hadoop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Felasticsearch-hadoop/lists"}