Hive安装指南

1.下载Hive

下载Hive并解压:https://dlcdn.apache.org/hive/

2. 修改环境变量

1
sudo vi /etc/profile

添加如下(需将HIVE_HOME修改为本地Hive路径):

1
2
3
4
5
export HIVE_HOME=/home/Yihua/App/apache-hive-2.3.9-bin
export PATH=$HIVE_HOME/bin:$PATH

export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib/*:.
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib/*:

使用source /etc/profile命令使对环境变量的修改立即生效

3. 修改Hive配置文件

默认的配置文件为hive-default.xml.template,我们copy一份新的hive-site并在其上面做修改

1
cp hive-default.xml.template hive-site.xml

检查配置内容:

  • ConnectionURL:表明我们想使用什么数据库作为metastore, 这里我们配置为使用Hive内置的数据库Derby
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=metastore_db;create=true</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>
  • Warehouse.dir:配置数据在HDFS上存储的路径
    1
    2
    3
    4
    5
    <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
    </property>
  • 替换${system:java.io.tmpdir}为/tmp/hive_io,这是Hive存储其临时文件的位置
    1
    :%s#${system:java.io.tmpdir}#/tmp/hive_io#g
  • 替换${system:user.name}为UserName
    1
    %s/${system:user.name}/Yihua/g

    4. 创建HDFS路径并赋权限

    在创建前,需使用jps命令检查Hadoop进程是否都在运行,其中NameNode DataNode和SecondaryNameNode是HDFS进程,NodeManager和ResourceManager是Yarn进程
    1
    2
    3
    4
    5
    6
    hadoop fs -mkdir /tmp
    hadoop fs -mkdir /user
    hadoop fs -mkdir /user/hive
    hadoop fs -mkdir /user/hive/warehouse
    hadoop fs -chmod g+w /tmp
    hadoop fs -chmod g+w /user/hive/warehouse

    5. Metastore_db

    在运行Hive的目录下会有一个Metastore_db文件,是一个derby数据库,包含Hive table的所有metadata。我们将现有的metastore做一个备份,并用schematool去实例化metastore, 为metastore初始化schema,表明数据库是derby。
    1
    2
    mv metastore_db metastore_db.tmp
    schematool -initSchema -dbType derby

    6. 运行Hive或者在bin目录下运行beeline -u jdbc:hive2://