hive
下载
https://archive.apache.org/dist/hive/
国内源
https://mirror.bit.edu.cn/apache/hive/
本地安装
解压后导入环境变量
export HIVE_HOME="/opt/projects/libs/apache-hive-2.3.7-bin"
export PATH="$PATH:$HIVE_HOME/bin"
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
export HADOOP_HOME=<hadoop-install-dir>
$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
配置 metadata
cp $HIVE_HOME/conf/hive-default.xml.template $HIVE_HOME/conf/hive-site.xml
添加这几段
system:java.io.tmpdir/tmp/hive/javasystem:user.name${user.name}
修改 metadata 数据库到 mysql
javax.jdo.option.ConnectionURLjdbc:mysql://localhost:3306/hive_metastore 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.javax.jdo.option.ConnectionPasswordhivepasswordpassword to use against metastore databasejavax.jdo.option.ConnectionUserNamehiveUsername to use against metastore databasejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverDriver class name for a JDBC metastore
mysql 创建表
CREATE USER 'hive'@'%' IDENTIFIED BY 'hivepassword';
create database hive_metastore;
GRANT ALL ON hive_metastore.* TO 'hive'@'%';
flush privileges;
将正确版本的mysql-mysql-connector-java.jar 放到 $HIVE_HOME/lib中
初始化metadata表
schematool -dbType mysql -initSchema
观察是否安装正常
hive
使用外部表
当一个目录下有一堆相同类型的csv时, 似乎需要制定文件夹而不是某个csv,LOCATION默认是hdfs,与hdfs:///testhive 类似
CREATE EXTERNAL TABLE IF NOT EXISTS hive_test(
Id1 STRING, Id2 STRING, Id3 STRING, Name STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/testhive';
这样可以直接select *
拷贝一个表的内容
例如需要拷贝的表为 hive_test
观察表结构
show create table hive_test;
将第一步的result表名字改成要拷贝的表名创建hive表, 例如 export_hive_test
插入数据
insert into export_hive_test select * from hive_test;
bash执行hive短句
hive -S -e 'show create table hive_test'
bash通过文件执行sql
hive -f /tmp/hive_test.sql
Last updated
Was this helpful?