Hive常见配置
访问配置
使用元数据服务的方式访问 Hive
**1)**在 hive-site.xml 文件中添加如下配置信息
<!-- 指定存储元数据要连接的地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop102:9083</value>
</property>
**2)**启动 metastore
[atguigu@hadoop202 hive]$ hive --service metastore
注意: 启动后窗口不能再操作,需打开一个新的shell窗口做别的操作
hive,JDBC 访问(了解)
需要先启动metastore
#启动 hiveserver2 服务
bin/hiveserver2
##在新窗口启动 beeline
bin/beeline
##连接 hiveserver2
bin/beeline -u jdbc:hive2://hadoop102:10000 -n atguigu
或
beeline> !connect jdbc:hive2://hadoop:10000
Enter username for jdbc:hive2://hadoop:10000: atguigu
Enter password for jdbc:hive2://hadoop:10000: (直接回车)
123456789
通过jdbc访问的查询出来的内容有边框
常见属性配置
1. Hive数据仓库位置配置
- Default 数据仓库的最原始位置是
在 hdfs 上的/user/hive/warehouse 路径下。
- 在仓库目录下,没有对默认的数据库 default 创建文件夹。如果某张表属于 default数据库,直接在数据仓库目录下创建一个文件夹。
- 修改 default 数据仓库原始位置(将 hive-default.xml.template 如下配置信息拷贝到hive-site.xml 文件中)。
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> 12345
2. 查询后信息显示配置
在 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>
方便查看
3. Hive 运行日志信息配置
Hive 的 log 默认存放在/tmp/atguigu/hive.log 目录下(当前用户名下)
修改 hive 的 log 存放日志到
/opt/module/hive/logs
#修改/opt/module/hive/conf/hive-log4j.properties.template 文件名称为hive-log4j.properties mv hive-log4j.properties.template hive-log4j.properties #在 hive-log4j.properties 文件中修改 log 存放位置 hive.log.dir=/opt/module/hive/logs
4. 参数的配置三种方式
类似于hadoop的参数配置,以下三种设定方式的优先级依次递增。即
配置文件<命令行参数<参数声明
。注意某些系统级的参数,例如 log4j 相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。
#查看当前所有的配置信息
set;
12
4.1 配置文件方式
- 默认配置文件:
hive-default.xml
- 用户自定义配置文件:
hive-site.xml
注意:用户自定义配置会覆盖默认配置。
另外,Hive 也会读入 Hadoop 的配置,因为 Hive 是作为 Hadoop 的客户端启动的,Hive 的配置会覆盖 Hadoop 的配置。配置文件的设定对本机启动的所有 Hive 进程都有效。
4.2 命令行参数方式
启动 Hive 时,
可以在命令行添加-hiveconf param=value 来设定参数。
#注意:仅对本次 hive 启动有效 bin/hive -hiveconf mapred.reduce.tasks=10; #查看参数设置 set mapred.reduce.tasks;
4.3 参数声明方式
#可以在 HQL 中使用 SET 关键字设定参数
hive (default)> set mapred.reduce.tasks=100;
#注意:仅对本次 hive 启动有效。
hive (default)> set mapred.reduce.tasks;
Hive 常用交互命令
# “-e”不进入 hive 的交互窗口执行 sql 语句
bin/hive -e "select * from student;"
# “-f”执行脚本中 sql 语句
## 在/opt/module/data 目录下创建 hive.hql 文件
touch hive.hql
#文件中写入正确的 sql 语句
vim hive.hql
select * from student;
#执行文件中的 sql 语句
bin/hive -f /opt/module/data/hive.hql
#执行文件中的 sql 语句并将结果写入文件中
bin/hive -f /opt/module/data/hive.hql >> /opt/module/data/hive_result.txt
#在 hive cli 命令窗口中如何查看 hdfs 文件系统
hive> dfs -ls /;
#在 hive cli 命令窗口中如何查看本地文件系统
hive> ! ls /opt/module/datas;
#查看在 hive 中输入的所有历史命令
#进入到当前用户的根目录/root 或/home/atguigu
#查看. hivehistory 文件
cat .hivehistory
12345678910111213141516171819202122232425