Apache hive 是一个数据仓库和强大的 ETL(提取转换和加载)工具,构建在 Hadoop 之上,可与关系数据库一起使用,以管理和执行 RDBMS 上的操作。它是用Java编写的,由 Apache 基金会于 2012 年为那些不太熟悉Java。 Hive使用 HIVEQL 语言,其语法与 SQL 语法非常相似。 HIVE 支持 C++、 Java和Python编程语言。我们可以使用 hive 和 SQL 处理或查询 PB 级的数据。
Derby 也是一个开源关系数据库工具,它带有一个 hive(默认情况下)并且归 apache 所有。如今,从行业角度来看,derby仅用于测试目的,而出于部署目的,则使用MySql的Metastore。
先决条件:应预先安装Hadoop 。
步骤 1:从此链接下载Hive版本 3.1.2
第 2 步:将下载的 tar 文件放在您想要的位置(在我们的例子中,我们将它放在 /home 目录中)。
第 3 步:现在在下面显示的命令的帮助下解压缩 tar 文件。
tar -xvzf apache-hive-3.1.2-bin.tar.gz
第 4 步:现在我们必须将 hive 路径放在.bashrc文件中为此使用以下命令。
sudo gedit ~/.bashrc
HIVE路径(添加正确的路径和hive版本名称)
export HIVE_HOME="/home/dikshant/apache-hive-3.1.2-bin"
export PATH=$PATH:$HIVE_HOME/bin
将 HIVE 路径放在这个.bashrc文件中(不要忘记保存,按 CTRL + S)。检查下图中的第 122 和 123 行以供参考。
第 5 步:现在将以下属性添加到core-site.xml文件中。我们可以在/home/{user-name}/hadoop/etc/hadoop目录中找到该文件。为简单起见,我们将我的 hadoop-3.1.2 文件夹重命名为仅 Hadoop。
# to change the directory
cd /home/dikshant/hadoop/etc/hadoop/
# to list the directory content
ls
# to open and edit core-site.xml
sudo gedit core-site.xml
属性(不要删除之前添加的 Hadoop 属性)
hadoop.proxyuser.dikshant.groups
*
hadoop.proxyuser.dikshant.hosts
*
hadoop.proxyuser.server.hosts
*
hadoop.proxyuser.server.groups
*
第 6 步:现在借助以下命令在 HDFS 中创建一个名为/tmp的目录。
hdfs dfs -mkdir /tmp
第 7 步:使用下面给出的命令创建仓库、配置单元和用户目录,我们将使用这些目录来存储我们的表和其他数据。
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hive
hdfs dfs -mkdir /user/hive/warehouse
现在,借助以下命令检查目录是否已成功创建。
hdfs dfs -ls -R / #switch -R will help -ls to recursively show /(root) hdfs data
第 8 步:现在借助以下命令为这些创建的目录的所有用户授予读、写和执行权限。
hdfs dfs -chmod ugo+rwx /tmp
hdfs dfs -chmod ugo+rwx /user/hive/warehouse
第九步:进入/apache-hive-3.1.2-bin/conf目录,将hive-default.xml.template的文件名改为hive-site.xml 。现在在这个文件中转到第 1 行。 3215 并删除因为这会在初始化 derby 数据库时给你一个错误,而且因为它在描述中,所以对我们来说不是很重要。
然后,
现在,
第 10 步:现在初始化 derby 数据库,因为 HIVE 默认使用 derby 数据库进行存储和其他透视。使用下面给出的命令(确保您在 apache-hive-3.1.2-bin 目录中)。
bin/schematool -dbType derby -initSchema
第 11 步:现在使用以下命令启动 HiveServer2。
hiveserver2
第 12 步:在不同的选项卡上键入以下命令,以启动 beeline 命令外壳。
cd /home/dikshant/apache-hive-3.1.2-bin/bin/
beeline -n dikshant -u jdbc:hive2://localhost:10000 (If you face any problem try to use hadoop instead of your user name)
现在我们已经成功配置并安装了带有 derby 数据库的 apache hive。
第 13 步:让我们使用 show databases 命令来检查它是否工作正常。
show databases;