Hive安装与配置

清泓
2022-05-06 / 0 评论 / 275 阅读 / 5916字 / 正在检测是否收录...

Hive安装与配置

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

Hive的安装

  所有Hadoop的子项目,如Hive, Pig,和HBase 支持Linux的操作系统。且在Hive安装之前,Java和Hadoop必须在系统上已经安装。使用下面的命令来验证是否已经安装Java和Hadoop

验证Java

java -version

如果Java已经安装在系统上,就可以看到如下回应

java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

验证Hadoop

hadoop version

如果Hadoop已经安装在系统上,就可以看到如下回应

Compiled by stevel on 2018-07-18T22:47Z
Compiled with protoc 2.5.0
From source with checksum 792e15d20b12c74bd6f19a1fb886490
This command was run using /opt/hadoop-2.7.7/share/hadoop/common/hadoop-common-2.7.7.jar

java和hadoop的安装可以自行查阅,本文主要讲述Hive的安装配置

下载Hive

hive官网地址:http://hive.apache.org/
文档查看地址:https://cwiki.apache.org/confluence/display/Hive/GettingStarted
下载地址:http://archive.apache.org/dist/hive/

我这里使用的是hive-2.3.4,下载完成后使用远程工具传输到linux下,我习惯放在/usr/local/src/software下
安装目录选在/opt目录,这里按照你自己的习惯指定就好

解压安装

命令行输入

tar -zxvf /usr/local/src/software/apache-hive-2.3.4-bin.tar.gz -C /opt/

进行解压,-C 指定解压到哪个路径

配置环境变量

  环境变量看个人寻求,如果想所有用户可用就配置在/etc/profile,如果想当前用户可用就配置在/home/用户名/profile
我使用root用户进行操作,配置仅root用户可用,那就直接配置在/root/profile
使用vi编辑

vi /root/profile

添加

# 路径按照你hive安装的实际路径配置
export HIVE_HOME=/opt/hive-2.3.4
export PATH=$PATH:$HIVE_HOME/bin

配置完成后需要使环境变量文件生效,在命令行输入

# 按照你实际配置的环境变量文件
source /root/profile

配置Hive

修改hive-env.sh

进入hive安装目录下,重命名conf目录下hive-env.sh.templatehive-env.sh

[root@master ~]# cd /opt/hive-2.3.4/conf
[root@master conf]# mv hive-env.sh.template hive-env.sh

编辑hive-env.sh,添加HADOOP_HOME

[root@master conf]# vim hive-env.sh 
  # 按照你hadoop实际安装目录来
  export HADOOP_HOME=/usr/local/src/hadoop

修改hive-site.xml

进入hive安装目录下,重命名conf目录下hive-default.xml.templatehive-site.xml

[root@master ~]# cd /opt/hive-2.3.4/conf
[root@master conf]# mv hive-default.xml.template hive-site.xml

配置hive-site.xml
其实hive配置完hive-env.sh其实就可以使用了,但是Metastore默认存储在自带的derby数据库中,
推荐使用MySQL存储 Metastore,因为derby不能多用户共享

编辑hive-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <!--连接地址 master处可为主机名或Ip hive为hive在元数据库中的库名-->
    <!--createDatabaseIfNotExist=true 当数据库不存在时创建-->
    <!--useSSL=false MySQL在高版本需要指明是否进行SSL连接-->
    <!--Xml文件中不能使用&,要使用他的转义&amp;来代替-->
    <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <!--连接驱动-->
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <!--连接mysql数据库用户名-->
    <value>root</value>
    <description>username to use against metastore database</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456(填写mysql的用户密码,这里是root用户的密码)</value>
  </property>

  <property>
    <name>hive.exec.scratchdir</name>
    <value>/usr/local/src/set/hive/tmp</value>
  </property>

  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/usr/local/src/set/hive/tmp/local</value>
  </property>

  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/usr/local/src/set/hive/tmp/resources</value>
 </property>

  <!--是否开启静态分区-->
  <property>
    <name>hive.exec.dynamtic.partition</name>
    <value>true</value>
  </property>
  <!--动态分区模式-->
  <property>
      <name>hive.exec.dynamtic.partition.mode</name>
      <value>nosstrict</value>
  </property>
  <!--所有执行MR的节点最大可以创建动态分区数-->
  <property>
      <name>hive.exec.max.dynamtic.partitions</name>
      <value>100000</value>
  </property>
  <!--每个执行MR的节点最大可以创建动态分区数-->
  <property>
      <name>hive.exec.max.dynamtic.partitions.pernode</name>
      <value>100000</value>
  </property>
  <!--是否在控制台打印表头信息-->
  <property>
      <name>hive.cli.print.header</name>
      <value>true</value>
  </property>
  <!--是否在控制台显示当前数据库-->
  <property>
      <name>hive.cli.print.current.db</name>
      <value>true</value>
  </property>
  <!--配置hive元数据服务-->
  <property>
      <name>hive.metastore.uris</name>
      <value>thrift://master:9083</value>
  </property>
</configuration>

初始化元数据

命令行输入

schematool -initSchema -dbType mysql

成功截图
1.png
若报错可参考 Hive初始化元数据常见报错

启动Hive

  配置hive元数据服务后,使用hive需要先开启hive的 metastore元数据服务。
客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可

hive --service metastore &

开启元数据服务后会话被阻塞,需要另外在开启窗口会话,你也可以使用nohup开启服务

nohup hive --service metastore &

命令行输入hive进入hive
2.png

测试

查询数据库

3.png

创建测试表

4.png

向表中插入数据

5.png

查询测试表

6.png

到这里,hive的安装与配置就完成了!

0

打赏

评论

博主关闭了当前页面的评论