hive账号注册被限制怎么办?求解答

您的举报已经提交成功,我们将尽快处理,谢谢!
官网...汗.这个也问.
大家还关注为什么使用Hive?Hive提供了什么?Hive支持哪些用户? - 博客频道 - CSDN.NET
zuoninger的专栏
最前沿的新书资讯
为什么使用Hive?
为什么使用Hive?那么,在哪里使用呢?在载入了亿行(经度、维度、时间、数据值、高度)数据集到后,系统崩溃了,并经历过数据丢失。这可能部分是因为我们最初的策略是将所有的数据都存储到单一的一张表中了。后来,我们调整了策略通过数据集和参数进行分表,这有所帮助但也因此引入了额外的消耗,而这并非是我们愿意接受的。
相反,我们决定尝试使用Apache&Hive技术。我们安装了Hive&0.5&+&20,使用和。还包含有许多其他相关工具,包括和这些在我们的架构中都标识出来了,如图-3底部所示。
我们使用转储数据到中,然后通过写一个包装器,来使按照空间时间约束查询数据,然后将结果提供给RCMET和其他用户图-2中间部分显示。集群的完整的架构如图-&3所示。我们有台机器,包括图中所示的一个主从配置,通过一个运行GigE的私人网进行连接。
Hive提供了什么
Photobucket公司使用的主要目标是为业务功能、系统性能和用户行为提供答案。为了满足这些需求,我们每晚都要通过从数百台服务器上的MySQL数据库中转储来自eb服务器和自定义格式日志级别的数据。这些数据有助于支持整个公司许多组织,比如行政管理、广告、客户支持、产品开发和操作,等等。对于历史数据,我们保持所有MySQL在每月的第一天创建的所有的数据作为分区数据并保留30天以上的日志文件。使用一个定制的框架来将MySQL数据库中数据迁移到Hive中。使用将日志文件数据写入到HDFS中并按照预定的Hive流程进行处理。
Hive支持的用户有哪些
行政管理依赖于使用Hadoop提供一般业务健康状况的报告。Hive允许我们解析结构化数据库数据和非结构化的点击流数据,以及业务所涉及的数据格式进行读取。
广告业务使用筛选历史数据来对广告目标进行预测和定义配额。产品开发无疑是该组织中产生最大数量的特定的查询的用户了。对于任何用户群,时间间隔变化或随时间而变化。Hive是很重要的,因为它允许我们通过对在当前和历史数据中运行测试来判断在一个快速变化的用户环境中新产品的相关特性。
在公司中,为我们的用户提供一流的系统是最重要的目标。从操作的角度来看,Hive被用来汇总生成跨多个维度的数据。在公司里知道最流行的媒体、用户、参考域是非常重要的。控制费用对于任何组织都是重要的。一个用户可以快速消耗大量的系统资源,并显著增加每月的支出。Hive可以用于识别和分析出这样的恶意用户,以确定哪些是符合我们的服务条款,而哪些是不符合的。也可以使用对一些操作运行测试来定义新的硬件需求和生成计算。Hive将用户从底层代码解放出来的能力意味着可以在几个小时或几天内就可以获得答案,而不是之前的数周。
Hive中的数据库
Hive中数据库的概念本质上仅仅是表的一个目录或者命名空间。然而,对于具有很多组和用户的大集群来说,这是非常有用的,因为这样可以避免表命名冲突。通常会使用数据库来将生产表组织成逻辑组。
如果用户没有显式指定数据库,那么将会使用默认的数据库。
下面这个例子就展示了如何创建一个数据库:
hive&&CREATE&DATABASE&
如果数据库已经存在的话,那么将会抛出一个错误信息。使用如下语句可以避免在这种情况下抛出错误信息:
hive&&CREATE&DATABASE&IF&NOT&EXISTS&
虽然通常情况下用户还是期望在同名数据库已经存在的情况下能够抛出警告信息的,但是这个子句对于那些在继续执行之前需要根据需要实时创建数据库的情况来说是非常有用的。
在所有的数据库相关的命令中,都可以使用这个关键字来替代关键字。
随时可以通过如下命令方式查看中所包含的数据库:
hive&&SHOW&DATABASES;
financials
hive&&CREATE&DATABASE&human_
hive&&SHOW&DATABASES;
financials
human_resources
如果数据库非常多的话,那么可以使用正则表达式匹配来筛选出需要的数据库名,正则表达式这个概念,将会在第节“”介绍。下面这个例子展示的是列举出所有以字母开头,以其他字符结尾(即部分含义)的数据库名:
hive&&SHOW&DATABASES&LIKE&'h.*';
human_resources
Hive会为每个数据库创建一个目录。数据库中的表将会以这个数据库目录的子目录形式存储。有一个例外就是数据库中的表,因为这个数据库本身没有自己的目录。
数据库所在的目录位于属性所指定的顶层目录之后,这个配置项我们已经在前面的第节“”和第节“”中进行了介绍。假设用户使用的是这个配置项默认的配置,也就是,那么当我们创建数据库时,将会对应地创建一个目录。这里请注意,数据库的文件目录名是以结尾的。
用户可以通过如下的命令来修改这个默认的位置:
hive&&CREATE&DATABASE&financials
&&LOCATION&'/my/preferred/directory';
用户也可以为这个数据库增加一个描述信息,这样通过命令就可以查看到该信息。
hive&&CREATE&DATABASE&financials
&&COMMENT&'Holds&all&financial&tables';
hive&&DESCRIBE&DATABASE&
financials&Holds&all&financial&tables
hdfs://master-server/user/hive/warehouse/financials.db
从上面的例子中,我们可以注意到,语句也会显示出这个数据库所在的文件目录位置路径。在这个例子中,格式是。如果安装的是,那么这里就应该是。对于亚马逊弹性()集群,这里应该是,但是用户可以设置为亚马逊特定的格式(例如,属性值设置为...)。用户可以使用作为模式,但是如果使用新版的规则会更好。
前面语句的输出中,我们使用了来代表权限,也就是说应该是由文件系统的“主节点”(例如,中运行服务的那台服务器)的服务器名加上一个可选的端口号构成的(例如,服务器名:端口号这样的格式)。如果用户执行的是伪分布式模式,那么主节点服务器名称就应该是。对于本地模式,这个路径应该是一个本地路径,例如。
如果这部分信息省略了,那么将会使用配置文件中的配置项作为所对应的服务器名和端口号,这个配置文件可以在这个目录下找到。
需要明确的是,和
warehouse/financials.db是等价的,其中是主节点的名和可选的端口号。
为了保持完整性,当用户指定一个相对路径(例如,)时,对于和,都会将这个相对路径放到分布式文件系统的指定根目录下(例如,)。然而,如果用户是在本地模式下执行的话,那么当前的本地工作目录将是的父目录。
为了脚本的可移植性,通常会省略掉那个服务器和端口号信息,而只有在涉及到另一个分布式文件系统实例(包括存储)的时候才会指明该信息。
此外,用户还可以为数据库增加一些和其相关的键值对属性信息,尽管目前仅有的功能就是提供了一种可以通过语句显示出这些信息的方式:
hive&&CREATE&DATABASE&financials
&&WITH&DBPROPERTIES&('creator'&=&'Mark&Moneybags',&'date'&=&'');
hive&&DESCRIBE&DATABASE&
financials hdfs://master-server/user/hive/warehouse/financials.db
hive&&DESCRIBE&DATABASE&EXTENDED&
financials hdfs://master-server/user/hive/warehouse/financials.db
{date=,&creator=Mark&Moneybags);
USE命令用于将某个数据库设置为用户当前的工作数据库,和在文件系统中切换工作目录是一个概念:
hive&&USE&
现在,使用像这样的命令就会显示当前这个数据库下所有的表。
不幸的是,并没有一个命令可以让用户查看当前所在的是哪个数据库!幸运的是,在中是可以重复使用…命令的,这是因为在ive中并没有嵌套数据库的概念。
可以回想下,在”中提到过,可以通过设置一个属性值来在提示符里面显示当前所在的数据库(版本以及之后的版本才支持此功能):
hive&&set&hive.cli.print.current.db=
hive&(financials)&&USE&
hive&(default)&&set&hive.cli.print.current.db=
最后,用户可以删除数据库:
hive&&DROP&DATABASE&IF&EXISTS&
IF&EXISTS子句是可选的,如果加了这个子句,就可以避免因数据库不存在而抛出警告信息。
默认情况下,是不允许用户删除一个包含有表的数据库的。用户要么先删除数据库中的表,然后再删除数据库;要么在删除命令的最后面加上关键字,这样可以使ive自行先删除数据库中的表:
hive&&DROP&DATABASE&IF&EXISTS&financials&CASCADE;
如果使用的是这个关键字而不是这个关键字的话,那么就和默认情况一样,也就是,如果想删除数据库,那么必须先要删除掉该数据库中的所有表。
如果某个数据库被删除了,那么其对应的目录也同时会被删除。
本文摘自:
排名:第7185名
(5)(0)(1)(1)(0)(4)(0)(1)(2)(1)(2)(0)(1)(1)(1)(0)(0)(0)(1)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&Hive&优化-限制用户误交大作业查询
&#160;&#160;&#160;
最近有些同事些sql进行查询时,sql语句里不指定partition字段,这样直接造成hive生成Hadoop的MapReduce任务时查询的数据量巨大,从而影响整个集群的性能。经研究可以通过配置Hive参数来预防此类错误,从而达到优化的目的。
在hive-site.xml中添加以下配置:
&property&
&name&hive.mapred.mode&/name&&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
&value&strict&/value&
&/property&
这样,在提交类似一下SQL(where中不指定partition条件)时,将会抛出错误而不执行该sql:
hive& select *from access_raw limit 10;
FAILED: Error in semantic analysis: No partition predicate found
for Alias &access_raw& Table
&access_raw&
而正确书写SQL的方法为:
hive& select *from access_raw where
log_date='' limit 10;
这样,就对sql语句进行了过滤。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。hive权限配置 - 为程序员服务
为程序员服务
hive权限配置
为了更好地使用好Hive,我将《Programming Hive》的Security章节取出来,翻译了一下。
Hive还是支持相当多的权限管理功能,满足一般数据仓库的使用。
Hive由一个默认的设置来配置新建文件的默认权限。
&property&
&name&hive.files.umask.value&/name&
&value&0002&/value&
&description&The dfs.umask value for the hive created folders&/description&
&/property&
当hive.metastore.authorization.storage.checks属性被设置成true时,
Hive将会阻止没有权限的用户进行表删除操作。
不过这个配置的默认值是false,应该设置成true
&property&
&name&hive.metastore.authorization.storage.checks&/name&
&value&true&/value&
&description&Should the metastore do authorization checks against
the underlying storage for operations like drop-partition (disallow
the drop-partition if the user in question doesn't have permissions
to delete the corresponding directory on the storage).&/description&
&/property&
同时,Hive会尽可能地将hive.metastore.execute.setugi设置成true。
开启Hive的身份认证功能,默认是false
&property&
&name&hive.security.authorization.enabled&/name&
&value&true&/value&
&description&Enable or disable the hive client authorization&/description&
&/property&
另外还有一个是表格创建者用于的权限配置项:
&property&
&name&hive.security.authorization.createtable.owner.grants&/name&
&value&ALL&/value&
&description&The privileges automatically granted to the owner whenever
a table gets created.An example like &select,drop& will grant select
and drop privilege to the owner of the table&/description&
&/property&
这个配置默认是NULL,我们建议将其设置成ALL,让用户能够访问自己创建的表。
试验,在命令行环境开启用户认证
hive& set hive.security.authorization.enabled=
hive& CREATE TABLE authorization_test (key int, value string);
Authorization failed:No privilege 'Create' found for outputs { database:default}.
Use show grant to get more details.
我们可以看到,建表需要权限了。
权限可以授予给不同的主题,如用户(USER),组(GROUP),角色(ROLES)
现在我们通过授权方式,将权限授予给当前用户:
hive& set system:user.
system:user.name=edward
hive& GRANT CREATE ON DATABASE default TO USER
hive& CREATE TABLE authorization_test (key INT, value STRING);
这样就可以创建表了。
我们可以通过SHOW GRANT命令确认我们拥有的权限:
hive& SHOW GRANT USER edward ON DATABASE
database default
principalName edward
principalType USER
privilege Create
grantTime Mon Mar 19 09:18:10 EDT 2012
grantor edward
当Hive里面用于N多用户和N多张表的时候,管理员给每个用户授权每张表会让他崩溃的。
所以,这个时候就可以进行组(GROUP)授权。
Hive里的用户组的定义等价于POSIX里面的用户组。
hive& CREATE TABLE authorization_test_group(a int,b int);
hive& SELECT * FROM authorization_test_
Authorization failed:No privilege 'Select' found for inputs
{ database:default, table:authorization_test_group, columnName:a}.
Use show grant to get more details.
hive& GRANT SELECT on table authorization_test_g
hive& SELECT * FROM authorization_test_
Time taken: 0.119 seconds
当给用户组授权变得不够灵活的时候,角色(ROLES)就派上用途了。
用户可以被放在某个角色之中,然后角色可以被授权。
角色不同于用户组,是由Hadoop控制的,它是由Hive内部进行管理的。
hive& CREATE TABLE authentication_test_role (a int , b int);
hive& SELECT * FROM authentication_test_
Authorization failed:No privilege 'Select' found for inputs
{ database:default, table:authentication_test_role, columnName:a}.
Use show grant to get more details.
hive& CREATE ROLE users_who_can_select_authentication_test_
hive& GRANT ROLE users_who_can_select_authentication_test_role TO USER
hive& GRANT SELECT ON TABLE authentication_test_role
& TO ROLE users_who_can_select_authentication_test_
hive& SELECT * FROM authentication_test_
Time taken: 0.103 seconds
介绍一下常用的授权关键字:
更改表结构,创建分区
DROP 删除表,或分区
创建和删除索引
LOCK 锁定表,保证并发
查询表权限
SHOW_DATABASE
查看数据库权限
为表加载本地数据的权限
分区表级别的授权
默认情况下,分区表的授权将会跟随表的授权
当然,也可以给每一个分区建立一个授权机制,
只需要设置表的属性PARTITION_LEVEL_PRIVILEGE设置成TRUE:
hive& ALTER TABLE authorization_part
& SET TBLPROPERTIES (&PARTITION_LEVEL_PRIVILEGE&=&TRUE&);
Authorization failed:No privilege 'Alter' found for inputs
{database:default, table:authorization_part}.
Use show grant to get more details.
属性hive.security.authorization.createtable.owner.grants决定了
建表者对表拥有的权限,一版情况下,有select和drop
&property&
&name&hive.security.authorization.createtable.owner.grants&/name&
&value&select,drop&/value&
&/property&
类似的,特定的用户可以被在表创建的时候自动授予其权限。
&property&
&name&hive.security.authorization.createtable.user.grants&/name&
&value&admin1,edward:user1:create&/value&
&/property&
当表建立的时候,管理员admin1和用户edward授予读所有表的权限。
而user1只能创建表。
同样的配置也可以作用于组授权和角色授权
hive.security.authorization.createtable.group.grants
hive.security.authorization.createtable.role.grants
您可能的代码
相关聚客文章
相关专栏文章}

我要回帖

更多关于 hive账号注册官网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信