Hive相关

Hive

  1. 解压设置环境变量
    tar -zxvf apache-hive-2.3.4-bin.tar.gz

export HIVE_HOME=/home/hive/apache-hive-2.3.4-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:${PATH}

  1. 创建目录
    hadoop fs -mkdir /tmp
    hadoop fs -mkdir -p /user/hive/warehouse
    hadoop fs -chmod g+w /tmp
    hadoop fs -chmod g+w /user/hive/warehouse

  2. 修改hive配置文件
    修改${system:java.io.tmpdir}为另外的777权限下的目录。
    修改${system:user.name}为执行程序的用户名

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <property
    <name>javax.jdo.option.ConnectionDriverName</name
    <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <!--<value>jdbc:derby:;databaseName=metastore_db;create=true</value>-->
    <value>jdbc:mysql://192.168.7.229:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>*******</value>
    </property>

XML中配置JDBC连接符号中&需要转义成&

最后需要把MYSQL的连接驱动JDBC包放到Hive对应的Lib目录下。地址

  1. 初始化数据库
    schematool -dbType mysql -initSchema

  2. 测试
    hive命令启动,默认配置创建的数据库在当前程序在的目录。
    hiveserver2
    beeline -u jdbc:hive2://localhost:10000

  3. DML操作
    LOAD DATA LOCAL INPATH ‘./examples/files/kv1.txt’ OVERWRITE INTO TABLE pokes;
    载入用ctrl-a分隔的文件。
    LOCAL 没有指定将会从HDFS查找文件,如果有将移动到Hive所在的命名空间目录下。
    OVERWRITE 表示存在的数据将会被删除,如果没有设置将会追加数据在表下。
    Load命令不验证数据。
    在载入数据前,先在HDFS创建好对应hive配置的目录。