---
title: "Apache Hive"
date: 2023-01-27T19:16:15+05:30
draft: false
---

<!---
  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. -->

The Apache Hive &trade; data warehouse software facilitates reading,
writing, and managing large datasets residing in distributed storage
using SQL.  Structure can be projected onto data already in storage.
A command line tool and JDBC driver are provided to connect users to
Hive.

## Getting Started With Apache Hive Software

* Check out the [Getting Started Guide][GETTING_STARTED].
* Learn more [About Hive's Functionality][HIVE_DETAILS].
* Read the [Getting Started Guide][GETTING_STARTED] to learn how to install Hive
* The [User and Hive SQL documentation][HIVE_QL] shows how to program Hive

## Getting Involved With The Apache Hive Community

Apache Hive is an open source project run by volunteers at the Apache
Software Foundation. Previously it was a subproject of [Apache&reg;
Hadoop&reg;][APACHE_HADOOP], but has now graduated to become a
top-level project of its own. We encourage you to learn about the
project and contribute your expertise.

* Give us [feedback or submit bug reports][ISSUE_TRACKING]: What can we do better?
* Join the [mailing list][MAILING_LISTS] and meet our [community][COMMUNITY]
* Read through our [Contributor's Guides][CONTRIBUTOR] about where to find the source or submit patches
* Become a [Hive Fan on Facebook][HIVE_FACEBOOK]
* Follow [@ApacheHive on Twitter][HIVE_TWITTER]

[GETTING_STARTED]: {{ site.wiki }}/GettingStarted
[APACHE_HADOOP]: http://hadoop.apache.org
[ISSUE_TRACKING]: {{ '/issue_tracking.html' | relative_url }}
[MAILING_LISTS]: {{ '/mailing_lists.html' | relative_url }}
[HIVE_FACEBOOK]: http://www.facebook.com/pages/Hive/43928506208
[HIVE_DETAILS]: {{ site.wiki }}/Home
[HIVE_QL]: {{ site.wiki }}/Home#Home-UserDocumentation
[COMMUNITY]: {{ '/people.html' | relative_url }}
[CONTRIBUTOR]: {{ site.wiki }}/Home#Home-ResourcesforContributors
[HIVE_TWITTER]: https://twitter.com/apachehive


