1.修改默认的数据仓库位置,在hive-site.xml文件中配置如下参数:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>自己指定仓库位置(eg:/user/hive/warehouse)</value>
</property>
添加好参数以后,需要对指定的目录附上用户组的权限,执行以下命令:
$ $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(自己新的目录)
2.配置Hive运行日志信息的存放位置,执行如下命令:
mv hive-log4j.properties.template hive-log4j.properties
修改这两个参数
hive.log.dir=/opt/modules/hive-0.13.1/logs(log存放的位置)
hive.log.file=hive.log(log文件的名字)
3.指定log日志的现实级别,修改如下参数:
hive.root.logger=INFO,DRFA
4.在HIve的 cli命令行上显示当前数据库,以及查询表的行头信息,在hive-site.xml文件下增加如下参数:
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
5.在Hive启动的时候配置一些参数信息,改配置只对本次会话起作用。执行如下命令:
$ bin/hive --hiveconf <property=value>
6.在hive的客户端执行hdfs的操作命令,执行如下命令:
dfs -ls / 查看hive的信息
dfs -rm -R /... 删除执行文件
7.hive中常见的几种SQL操作方式:
bin/hive -e "select * from test"
bin/hive -f /usr/datas/hiveq.sql 以脚本的方式执行SQL语句
bin/hive -f /usr/datas/hiveq.sql > /usr/data/result.txt 将执行结果写入指定的文件中
bin/hive -I <filename> 初始化使用,通常与UDF配合使用
8.在Hive中操作本地文件系统,只需要在命令前面加一个“!”即可
9.关于分区表的一些操作:
1>创建一个分区表:
create table test(
username string,
password string
)
partitioned by (month string)
row format delimited fields termsnated by '\t'
2>加载本地数据到一个分区表中:
load data local inpath '/usr/test/1.data' into table test partition (month='201304')
3>修复分区表的两种操作:
1⃣️. msck repair table test;
2⃣️. alter table test add partition(month='201303'); 这种更加常用
10.将Hive中的数据导出到本地:
insert overwrite local directory ‘/usr/datas/hive-test'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' (指定导出时的字段之间格式)
COLLECTION ITEMS TERMINATED BY '\n' (指定导出时行之间的格式)
select * from test;
11.order by,sort by,distributed by,cluster by的区别:
order by:这个是对全局排序
sort by:这个是在reduce 中进行的局部排序
distributed by:这个类似于mapreduce中的partition,常常配合sort by一块使用,且sort by 放在后面
cluster by:当sort by 和distributed by 的字段相同时,使用cluster by代替
12.UDF编程实用方式:
1>第一种方式:将编写的java打包成jar文件,然后在hive客户端执行如下命令:
add jar /usr/datas/hiveudf.jar 添加jar到当前运行的hive中
create temporary function my_lower as "com.test.hive.udf.LowerUDF"; 创建一个函数
2>第二种方式:同样将java打包成jar然后运行如下命令(注意,这里的jar要上传到hdfs):
create function my_lower as "com.test.hive.udf.LowerUDF" using jar 'hdfs://master:8020/datas/hiveudf.jar;
总结:以上为对Hive的一些简单操作,后续不断更新,请关注。。。