在Ubuntu上安装Apache Hive

时间:2020-02-23 14:33:26  来源:igfitidea点击:

Apache Hive是Hadoop生态系统中最重要的框架之一,从而使其对Hadoop认证至关重要。
在此教程 中,我们将学习Apache Hive和在Ubuntu上的Hive安装。

"什么是Apache Hive?"

" Apache Hive"是一种数据仓库基础结构,可促进查询和管理驻留在分布式存储系统中的大型数据集。
它建立在Hadoop之上,由Facebook开发。
" Hive"提供了一种使用称为" HiveQL(Hive查询语言)"的类似SQL的查询语言来查询数据的方法。

在内部,编译器将HiveQL语句转换为MapReduce作业,然后将其提交给Hadoop框架以执行。

Hive和SQL之间的区别:

" Hive"看起来非常类似于具有SQL访问权限的传统数据库。
但是,由于" Hive"基于Hadoop和MapReduce操作,因此存在几个主要区别:

由于Hadoop适用于长时间连续扫描,而" Hive"基于Hadoop,因此我们希望查询具有很高的延迟。
它意味着" Hive"不适用于需要非常快的响应时间的应用程序,就像我们在传统RDBMS数据库中所期望的那样。

最后," Hive"是基于读取的,因此不适用于通常涉及大量写操作的事务处理。

在Ubuntu上进行Hive安装:

请按照以下步骤在Ubuntu上安装Apache Hive

步骤1:下载Hive tar。

命令:

wget http://archive.apache.org/dist/hive/hive-2.1.0/apache-hive-2.1.0-bin.tar.gz

步骤2:提取tar文件。

命令:

tar -xzf apache-hive-2.1.0-bin.tar.gz

步骤3:编辑.bashrc文件,为用户更新环境变量。

sudo gedit .bashrc

在文件末尾添加以下内容:

设置HIVE_HOME

export HIVE_HOME=/home/theitroad/apache-hive-2.1.0-bin  
export PATH=$PATH:/home/theitroad/apache-hive-2.1.0-bin/bin

另外,请确保也设置了hadoop路径。

运行以下命令以使更改在同一终端上生效。

source .bashrc

步骤4:检查配置单元版本。

第5步:在HDFS中创建Hive目录。
目录"仓库"是用于存储与配置单元相关的表或者数据的位置。

命令:

hdfs dfs -mkdir -p /user/hive/warehouse

hdfs dfs -mkdir /tmp

步骤6:设置表的读/写权限。

命令:

在此命令中,我们授予该组写权限:

hdfs dfs -chmod g + w/user/hive/warehouse

hdfs dfs -chmod g + w/tmp

步骤7:在h ive-env.sh中设置Hadoop路径

cd apache-hive-2.1.0-bin/

 gedit conf/hive-env.sh

如下快照所示设置参数。

步骤8:编辑hive-site.xml

gedit conf/hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-
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 Jan not use this file except in compliance with
the License. You Jan 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.
-->
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/home/theitroad/apache-hive-2.1.0-bin/metastore_db;create=true</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.metastore.uris</name>
<value
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.datanucleus.api.jdo.JDOPersistenceManagerFactory</value>
<description>class implementing the jdo persistence</description>
</property>
</configuration>

步骤9:默认情况下,Hive使用Derby数据库。
初始化Derby数据库。

bin/schematool -initSchema -dbType derby

步骤10:启动Hive。

hive

第11步:在Hive Shell中运行几个查询。

 show databases;

 create table employee (id string, name string, dept string) row format delimited fields terminated by ‘	‘ stored as textfile;

 show tables;

步骤12:从Hive退出:

exit;