2.3 Hive 常见属性配置

    技术2025-10-05  9

    任务目的

    了解 Hive 数据仓库位置的相关配置信息掌握在客户端显示当前数据库以及表头信息的配置步骤了解 Hive 运行日志相关的配置信息

    任务清单

    任务1:Hive 数据仓库位置配置任务2:查询后信息显示配置任务3:Hive 运行日志信息配置

    任务步骤

    任务1:Hive 数据仓库位置配置

      default 数据仓库的最原始位置是在 HDFS 上的:/user/hive/warehouse 路径下。

      在仓库目录下,没有对默认的数据库 default 创建文件夹。如果某张表属于 default 数据库,直接在数据仓库 /user/hive/warehouse 目录下创建一个文件夹。

      要想修改 default 数据仓库原始位置,方式是将 hive-default.xml.template 如下配置信息拷贝到 hive-site.xml 文件中,并将 value 值修改为自己想要的 HDFS 路径。

    <!--Hive默认数据库的位置 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property>

    任务2:查询后信息显示配置

      Hive 中默认是不显示当前使用的数据库和查询表的头信息的,我们可以在 hive-default.xml.template 配置文件中查询涉及这两项内容的默认配置:

    <!-- 客户端显示当前数据库名称信息 --> <property> <name>hive.cli.print.current.db</name> <value>false</value> <description>Whether to include the current database in the Hive prompt.</description> </property> <!-- 客户端显示当前查询表的头信息 --> <property> <name>hive.cli.print.header</name> <value>false</value> <description>Whether to print the names of the columns in query output.</description> </property>

      为了让 Hive 使用起来更便捷,我们可以在 hive-site.xml 文件中添加如下配置信息,这样就可以实现显示当前数据库,以及查询表的头信息配置了。

    <!-- 客户端显示当前数据库名称信息,默认为false --> <property> <name>hive.cli.print.current.db</name> <value>true</value> <description>Whether to include the current database in the Hive prompt.</description> </property> <!-- 客户端显示当前查询表的头信息,默认为false --> <property> <name>hive.cli.print.header</name> <value>true</value> <description>Whether to print the names of the columns in query output.</description> </property>

      在任意目录下使用 Hive 的三种连接方式之一:CLI 启动 Hive。对比配置前后差异。

    hive 或者 hive --service cli

      配置前,如下图所示:

    图1:配置前

      配置后,如下图所示:

    图2:配置后

    任务3:Hive 运行日志信息配置

      在很多程序中,我们都可以通过输出日志的形式来得到程序运行情况,通过这些输出日志来调试程序,Hive也不例外。在Hive中,使用的是 Log4j 来输出日志,默认情况下,CLI 是不能将日志信息输出到控制台的。 在 Hive0.13.0 之前的版本,默认的日志级别是 WARN,在 Hive0.13.0 开始,默认的日志级别是 INFO。默认的日志存放在/tmp/${user.name}文件夹的hive.log文件中,全路径就是/tmp/${user.name}/hive.log。

      在${HIVE_HOME}/conf/hive-log4j2.properties.template 文件中记录了Hive日志的存储情况,默认的存储情况如下所示:

    property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name} # 默认的存储位置 property.hive.log.file = hive.log # 默认的文件名

      我们可以通过修改以上两个参数的值来重新设置 Hive log 日志的存放地址。

      首先,将 ${HIVE_HOME}/conf 目录下的 hive-log4j2.properties.template 文件复制一份并重命名为 hive-log4j2.properties,具体命令如下所示:

    cp hive-log4j2.properties.template hive-log4j2.properties

      效果图如下所示:

    图3

      之后使用 vi 编辑器进行编辑,将 Hive 日志配置到 /root/hivelog/hive.log 文件中。

    property.hive.log.dir = /root/hivelog property.hive.log.file = hive.log

    ​ 重新启动 Hive,验证新的日志文件是否自动创建:

    图4

    ​ 从上图可以看出,我们成功将 Hive 日志存放路径修改为 /root/hivelog/hive.log 。

    Processed: 0.008, SQL: 9