Hive数仓实战之Hive配置

604 阅读4分钟

大家好,我将会在这篇文章中讲解一下Hive实战之Hive配置的过程。

Hive简介

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。

1.下载的软件

先在Hadoop目录下启动我们的集群

image.png Hive下载可以在官网下载:(hive.apache.org) 我们选择最新版本为:hive-3.13/,这个版本针对Hadoop 3.x 下载完成后文件名为:apache-hive-3.1.3-bin.tar.gz

2.常规操作

然后回到我们的bigdata01的softwares目录 image.png 之后pwd,显示为/home/softwares路径后,使用命令rz上传我们的hive文件。

image.png 上传完毕后,ls出我们softwares里面的文件,使用命令tar -zxf apache-hive-3.1.3-bin.tar.gz进行解压。解压完毕,使用命令rm -rf apache-hive-3.1.3-bin.tar.gz删除原文件,删除的原因是源文件占内存太大。然后mv apache-hive-3.1.3-bin hive 重命名我们的文件。

image.png

3.配置环境变量

首先了解一下hive的路径,路径千万不要错,不然系统就识别不了。

image.png 在softwares目录里使用命令 vi /etc/profile进入下边这个界面:

image.png 下滑至最末尾完成我们环境变量的配置

image.png 按照我本人电脑路径所填内容如下:

	export HADOOP_HOME=/home/softwares/hadoop
	export ZOOKEEPER_HOME=/home/softwares/zookeeper
	export HIVE_HOME=/home/softwares/hive
	export JRE_HOME=$JAVA_HOME/jre
	export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin
	export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

4.配置hive的各项配置(仿照hadoop配置)

接着使用一个很神奇的软件notepad++来打开配置, 首先我们来修改文件名: hive-env.sh.template --->hive-env.sh hive-default.xml.template -->hive-site.xml 在hive-env.sh文件最下面加上以下路径:

    export JAVA_HOME=/home/softwares/jdk
export HADOOP_HOME=/home/softwares/hadoop
export HIVE_HOME=/home/softwares/hive

修改完之后在 [root@bigdata01 softwares]#recource /etc/profile 此操作为刷新我们的配置。而且一定要进行刷新!

image.png

然后进入hive,使用echo $HIVE_HOME看系统是否可以找到hive

image.png

4.1配置hive-site.xml

再次强调一下,在配置这一步的时候,我们电脑里必须安装mysql(5.7.x) 7.x版本而不是8.x版本。我本人电脑mysql版本如下:

image.png 此文件有7项基本设置,否则容易出错(以往踩过的坑) 1->4JDBC的设置:1.connection(注意查看本机的ip地址---win+r cmd-->ipconfig/all-->用VMnet8的地址) 2.driver 3.user 4.password 使用notepad++打开hive-site.xml文件

image.png

4.1.1 配置connection

找到ConnectionURL,发现它默认derby数据库,改为mysql数据库。

image.png 修改后:

image.png 修改内容如下:

<property>
    		<name>javax.jdo.option.ConnectionURL</name>
    		<value>jdbc:mysql://192.168.234.1:3306/hive?characterEncoding=utf-8&amp;useSSL=false</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>
4.1.2 配置driver:

也是默认derby数据库,修改它。

image.png 修改成: image.png 修改内容如下:

<property>
    		<name>javax.jdo.option.ConnectionDriverName</name>
    		<value>com.mysql.jdbc.Driver</value>
    		<description>Driver class name for a JDBC metastore</description>
 </property>
4.1.3 配置user

发现是UserName,但我的数据库用户名是root,将其修改成root。

image.png

修改内容如下:

<property>
    		<name>javax.jdo.option.ConnectionUserName</name>
    		<value>root</value>
    		<description>Username to use against metastore database</description>
 </property
4.1.4 配置password

我们看见它默认是mine,但我的数据库和密码一致,都为root,将其修改成root。 image.png 修改成:

image.png 修改内容如下:

<property>
    		<name>javax.jdo.option.ConnectionPassword</name>
    		<value>root</value>
    		<description>password to use against metastore database</description>
</property>
4.1.5 querylog配置

找到这个地方,因为临时目录容易出错,将其修改成我们安装目录下: image.png 修改成:

image.png 修改内容如下:

<property>
    		<name>hive.querylog.location</name>
    		<value>/home/softwares/hive/querylog</value>
    		<description>Location of Hive run time structured log file</description>
</property>
4.1.6 exec.local配置

找到这个地方,也将其修改成我们的安装目录下:

image.png 修改成:

image.png 修改内容如下:

<property>
    		<name>hive.exec.local.scratchdir</name>
    		<value>/home/softwares/hive/scratchdir</value>
    		<description>Local scratch space for Hive jobs</description>
</property>
4.1.7 hive.downloaded配置

终于到了第7步配置。。。。。。。 发现也是临时目录,修改它。

image.png 修改成:

image.png 修改内容如下:

<property>
    		<name>hive.downloaded.resources.dir</name>
    		<value>/home/softwares/hive/resources</value>
    		<description>Temporary local directory for added resources in the remote file system.</description>
</property>

到这步已经配置完毕了!撒花!!

5.初始化mysql数据类型

因为之前是derby数据库,后面我们修改成mysql数据库,所以要初始化操作。 我们使用下图的schematool命令来进行初始化:

image.png

执行 [root@bigdata01 hive]# bin/schematool -dbType mysql -initSchema image.png

如果在这一步出错,看看有没有建立数据库或者检查一下数据库的权限,因为我是root用户,所以之前就打开了权限。 下一步我们把本地mysql驱动拷贝到/home/softwares/hive/lib/下。 这是我的mysql驱动:

image.png 进入以下路径然后rz上传我们的mysql驱动(我把两个都上传了):

image.png 然后重新初始化,执行命令:[root@bigdata01 hive]# bin/schematool -dbType mysql -initSchema 先看到这个 image.png 然后你就一直往下拉,会看到一直都是黑屏:

image.png 拉到最底下,你会看见以下界面,然后出现 Initialization script completed schemaTool completed就代表成功了:

image.png 然后我们就可以直接在[root@bigdata01 hive]中输入命令hive

image.png 然后出现提示图标(像mysql的那一种),不信就你看看下面的截图,直接可以输入show databases;看看有哪些数据库啦。

image.png 到此,Hive已全部配置完毕。