• hive安装


    1 前提

    1. 安装java
    2. 安装hadoop

    2 下载安装

    2.1 下载

    从这里下载,这里以apache-hive-2.3.5为例。 https://hive.apache.org/downloads.html

    2.2 解压 & 配置环境变量

    tar -xzvf hive-2.3.5.tar.gz
    export HIVE_HOME=/home/xxx/hive-2.3.5
    export PATH=$HIVE_HOME/bin:$PATH
    

    3 配置

    3.1 前提

    1. 必须在path中有hadoop,或者
    2. export HADOOP_HOME=<hadoop-install-dir>

    3.2 修改配置文件

    cd HIVE_HOME/conf
    cp hive-default.xml.template hive-default.xml
    cp hive-log4j2.properties.template hive-log4j2.properties
    
    1. 默认情况下hive从hive-default.xml中获取配置,所以这个最好不要改动,当做是hive的默认配置
    2. 可以在hive-site.xml中定义或者重定义配置。重定义可以覆盖hive-default.xml中的配置。所以有新的修改可以改在hive-site.xml中
    3. hive-site.xml默认是空白的,在添加配置项的时候需要在<configuration></configuration>中添加,否则启动hive会报错。

    3.3 配置日志文件(可选)

    hive的日志默认在/tmp/<user.name>/下,可以通过修改配置文件来改变:

    1. 在$HIVE_HOME/conf/hive-log4j2.properties中添加 hive.log.dir=<other_location>
    2. 修改query log位置:在hive-site.xml中添加如下配置:
     <property>
        <name>hive.querylog.location</name>
        <value>other_location</value>
    </property>
    

    3.4 创建hdfs文件

    在hdfs中创建如下目录:

      $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
      $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
      $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
      $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse
    

    /user/hive/warehouse 是在$HIVE_HOME/conf/hive-default.xml 中指定的(hive.metastore.warehouse.dir), 如3.2所述,如果要修改该路径,可以在hive-site.xml中修改。

    4 运行

    4.1 修改内置derby配置

    hive默认使用内嵌的derby数据库来存储元数据,这样有个缺点:

    1. derby会在运行hive命令的本地目录生成metastore_db文件,如果换一个目录就看不到之前的元数据了
    2. 每次切换目录都需要运行$HIVE_HOME/bin/schematool -dbType -initSchema 来初始化metastore_db

    原因就是在hive-default.xml的默认配置下,metastore_db是生成在当前目录:

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
    </property>
    

    所以我们可以配置下内置的derby,让其metastore_db只生成在一个目录下: 在hive-site.xml中添加如下配置,来覆盖默认配置:

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:derby:/home/xxx/metastore_db;create=true</value>
    </property>
    

    4.2 初始化derby

    运行命令

    $HIVE_HOME/bin/schematool -dbType derby -initSchema
    

    运行结果最后是 schemaTool completed,则表示成功,这个时候可以看到在/home/xxx/下有metastore_db存在。

    如果出现类似Error: FUNCTION 'NUCLEUS_ASCII' already exists的错误,则说明在/home/xxx/下存在有metastore_db,则删除掉metastore_db,重新运行以上命令即可。

    4.3 启动hive

    配置好外置的derby后,我们就可以启动hive了。运行show tables 验证安装。

    参考

    1. https://cwiki.apache.org/confluence/display/Hive/GettingStarted
    2. https://cwiki.apache.org/confluence/display/Hive/HowToContribute#HowToContribute-UnderstandingHiveBranches
    3. https://stackoverflow.com/questions/43947930/unable-to-initialize-hive-with-derby-from-brew-install
  • 相关阅读:
    SDN2017 第四次作业
    SDN2017 第三次实验作业
    软件工程实践2017 个人作业——软件工程实践总结作业
    sdn2017 第三次作业
    Golang 探索对Goroutine的控制方法
    SDN2017 第二次实验作业
    SDN2017 第二次作业
    Redis在游戏服务器中的应用
    手机游戏开发
    手机游戏开发
  • 原文地址:https://www.cnblogs.com/set-cookie/p/11183076.html
Copyright © 2020-2023  润新知