• Hive参数的临时设置和永久性设置


    Hive中有一些参数是系统给提供给用户的,我们可以通过这些参数的设置可以让Hive在不同的模式下工作,或者改变显示的效果。

    1.通过set对参数值进行设定,这种设置只能是在本次会话有效,退出Hive就会失效;

    hive (default)> set hive.exec.dynamic.partition.mode=nostrict;
    hive (default)> INSERT OVERWRITE TABLE emp
    > PARTITION(province,city)
    > SELECT name,salary,subordinates,deductions,address,province,city
    > FROM jimdb.employees;
    Query ID = hadoop_20180617101852_4cbca9ef-db37-4910-9061-058142bde778
    Total jobs = 3
    ........

    .........
    Partition default.emp{province=taiwan, city=taibei} stats: [numFiles=1, numRows=21504, totalSize=1843968, rawDataSize=1822464]
    Partition default.emp{province=zhejiang, city=hangzhou} stats: [numFiles=1, numRows=21504, totalSize=1929982, rawDataSize=1908478]
    MapReduce Jobs Launched:
    Stage-Stage-1: HDFS Read: 72254860 HDFS Write: 74253520 SUCCESS
    Total MapReduce CPU Time Spent: 0 msec
    OK
    name salary subordinates deductions address province city
    Time taken: 10.881 seconds

    2. 如果希望永久性的对参数进行设置,那就需要将相关的参数在$HIVE_HOME/conf/hive-site.xml中进行设置

    比如我需要设置打开动态分区,并且动态分区模式为strict

    <property>
    <name>hive.exec.dynamic.partition</name>
    <value>true</value>
    <description>Whether or not to allow dynamic partitions in DML/DDL.</description>
    </property>
    <property>
    <name>hive.exec.dynamic.partition.mode</name>
    <value>strict</value>
    <description>
    In strict mode, the user must specify at least one static partition
    in case the user accidentally overwrites all partitions.
    In nonstrict mode all partitions are allowed to be dynamic.
    </description>
    </property>

    在Hive中,进入Hive环境后,Hive有一个默认的库default,用户可以创建新的库名,可以使用CREATE DATABASE XX; 

    也可以通过select语句查询表数据,但是在默认情况下,Hive无法显示当前到底是处于 哪个库中,虽然可以通过use 库名称进行库的切换,但是也造成了一些不便。

    在查询表时,CLI命令行默认是无法显示列名称的,只是显示了数据。这对用户就造成了一些麻烦。

    因此可以在$HIVE_HOME/conf/hive-site.xml中进行设置:

    <property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
    <description>Whether to include the current database in the Hive prompt.</description>
    </property>

    <property>
    <name>hive.cli.print.header</name>
    <value>true</value>
    <description>Whether to print the names of the columns in query output.</description>
    </property>

  • 相关阅读:
    Permission denied (publickey). fatal: Could not read from remote repository.
    jQuery OCUpload一键上传文件
    org.apache.subversion.javahl.ClientException: Working copy is not up-to-date
    测开之路一百三十五:实现登录身份验证功能
    测开之路一百三十四:实现指定查找功能
    测开之路一百三十三:实现sql函数封装
    测开之路一百三十二:实现修改功能
    测开之路一百三十一:实现删除功能
    测开之路一百三十:实现前端到数据库交互(增和查)
    测开之路一百二十九:jinja2模板语法
  • 原文地址:https://www.cnblogs.com/nanshanjushi/p/9192244.html
Copyright © 2020-2023  润新知