整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

12.3.1 配置Hive

hadoop 小红牛 10℃ 0评论

这一节介绍运行Hive的一些更实用的技术,包括如何设置Hive使其能运 行在Hadoop集群和共享的metastore上。为此,我们会深入介绍Hive体 系结构。

12.3.1配置Hive

Hadoop类似,Hive使用XML配置文件进行设置。配置文件为hivesite.xml,它在Hive的conf目录下。通过这个文件,可以设置每次运行
Hive时希望Hive使用的选项。该目录下还包括hive-default.xml(其中记 录Hive使用的选项及其默认值)。

传递–config选项参数给hive命令,可以通过这种方式重新定义Hive查 找文件:

% hive --config /Users/tom/dev/hive-conf

注意,这个选项指定的是包含配置文件的自录,而不是配置文件hive-site.xml本身。这对于有(对应于多个集群的)多个站点文件时很有用,可以 方便地在这些站点文件之间进行切换。还有另一种方法,可以设置 HIVE_CONF_DIR环境变量来指定配置文件目录,效果相同。

Hive-site.xml文件最适合存放详细的集群连接信息,因为可以使用Hadoop
属性 fs.default.name 和 mapred.job.tracker来指定文件系统和
jobtracker(关于配置Hadcwp的详细信息,请参见附录A)。如果没有设定这
两个参数,它们就像在Hadoop中一样,被设为默认值,也就是使用本地文 件系统和本地(正在运行的)“作业运行器”(job
runner)——这对于试着用 Hive来处理测试数据集非常方便。metastore的配置选项(参见12.3.3节对
metastore的讨论)一般也能在hive-site.xml中找到。

Hive还允许向hive命令传递-hiveconf选项来为单个会话(session)设置属性。例如,下面的命令设定在会话中使用一个(伪分布)集群:

% hive -hiveconf fs.default.name=localhost -hiveconf mapped.job.tracker=localhost:8021

如果准备让多个Hive用户共享一个Hadoop集群,则需要使Hive所 用的目录对所有用户可写。以下命令将创建目录,并设置合适的权限:

% hadoop fs -mkdir /tmp 
% hadoop fs -chmod a+w /tmp 
% hadoop fs -mkdir /user/hive/warehouse 
% hadoop fs -chmod a+w /user/hive/warehouse

如果所有用户在同一个用户组中,把仓库目录的权限设为g+w就 够了。

还可以在一个会话中使用SET命令更改设置。这对于为某个特定的查询修 改Hive或MapReduce作业设置非常有用。例如,以下命令确保表的定义中 都使用“桶”(bucket),详情可以参见12.6.2节。

hive> SET hive.enforce.bucketing=true;

可以用只带属性名的SET命令査看任何属性的当前值:

hive> SET hive.enforce.bucketing;
hive.enforce.bucketing=true

不带参数的SET命令会列出Hive所设置的所有属性(及其取值)。注意,这 个列表中不包含Hadoop的默认值,除非这个值用本节中介绍的某个方法重 写了。使用SET -V可以列出系统中的所有属性,包括Hadoop的默认值。

设置属性有一个优先级层次。在下面的列表中,越小的值表示优先级 越高。

(1)Hive SET 命令。
(2)命令行-hiveconf选项。
(3)hive-site.xml。
(4)hive-default.xml。
(5) hadoop-site.xml(或等价的 core-site.xml、hdfs-site.xml 与 mapred- site.xml)。
(6)hadoop-default.xml(或等价的 core-default.xml、hdfs-default.xml 与 mapred- default.xml)。

日志记录

可以在本地文件系统的/tmp/$USER/hive.log中找到Hive的错误日志。错误 日志对于诊断配置问题和其他错误非常有用。Hadoop的MapReduce任务日 志对于调试也非常有帮助,相关信息请参见5.5.6节对Hadoop用户日志的讨论。

日志的配置存放在中。可以通过编辑这个文件来 修改日志的级别和其他日志相关设置。但是,更方便的办法是在会话中对 日志配置进行设置。例如,下面的语句可以方便地将调试消息发送到控制台:

% hive -hiveconf hive.root.logger=DEBUG,console


转载请注明:全栈大数据 » 12.3.1 配置Hive

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址