hive-site.xml
由%hive-1.1.0%/conf/hive-default.xml.template文件复制得到。
在hive-site.xml文件中配置Hive默认的数据文件存放目录。须提前创建。这里的配置会覆盖hive-default.xml中的配置。
1) hive.exec.scratchdir
约46行:
<property> <name>hive.exec.scratchdir</name> <!-- 指定HDFS内hive数据临时文件存放目录。启动hive,HDFS即自动创建 --> <value>/hive-1.1.0/scratchdir/tmp</value> <!-- HDFS路径,可hadoop fs -ls / 查看。默认:/tmp/hive --> <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description> </property> |
2)hive.metastore.warehouse.dir
约334行:
<property> <name>hive.metastore.warehouse.dir</name> <!-- 指定HDFS内hive数据存放目录。HDFS自动创建 --> <value>/hive-1.1.0/warehousedir/home</value> <!-- HDFS路径。默认:/user/hive/warehouse --> </property> |
3)javax.jdo.option.ConnectionURL
Derby
约385行,指定derby数据库地址(可选):
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:/derby_dbs;create=true;logDevice=/derby_logs;</value> <!-- derby_dbs、derby_logs由程序自动创建,后者保存日志。如果按照默认,数据库和日志目录创建在hive启动的目录。 如果下次启动hive不是在相同的目录,可能会报错找不到数据库。 不管从哪个目录启动hive,都会在其中创建一个Derby.log文件。不知道如何改变这个情况。删除之不影响下次启动。 默认 jdbc:derby:;databaseName=metastore_db;create=true --> </property> |
Mysql
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description></property> |
4)system:java.io.tmpdir
关于下面的4个属性,可以在第50行之前,创建:
<property> <name>system:java.io.tmpdir</name> <!-- 指定下文可用的${system:java.io.tmpdir}。默认对应 /tmp --> <value>/home/hive-1.1.0</value> </property> |
如果感觉不理想,可以单独配置:
(1)约51行:
<property>
<name>hive.exec.local.scratchdir</name>
<!-- 指定Hive的DDL/DML作业计算结果本地存储目录 -->
<value>/home/hive-1.1.0/scratchdir</value> <!-- value>${system:java.io.tmpdir}/${system:user.name}</value -->
</property>
(2)约56行:
<property>
<name>hive.downloaded.resources.dir</name>
<!-- 用于向远程文件系统添加资源的本地临时目录 -->
<value>/home/hive-1.1.0/resourcesdir/${hive.session.id}_resources</value>
<!-- value>${system:java.io.tmpdir}/${hive.session.id}_resources</value -->
</property>
(3)约1181行:
<property>
<name>hive.querylog.location</name>
<!-- 指定hive查询日志本地存放目录 -->
<value>/home/hive-1.1.0/query_logs</value> <!-- value>${system:java.io.tmpdir}/${system:user.name}</value -->
</property>
(4)约2720行:
<property>
<name>hive.server2.logging.operation.log.location</name>
<!-- 开启日志功能后存储日志的本地顶层目录 -->
<value>/home/hive-1.1.0/operation_logs</value>
<!-- value>${system:java.io.tmpdir}/${system:user.name}/operation_logs</value -->
</property>