hive怎么配置kerberoshive 可视化客户端端认证

您所在的位置: &
Kerberos V5身份认证的启用与策略配置
Kerberos V5身份认证的启用与策略配置
电子工业出版社
《网络工程师必读――网络安全系统设计》第5章全面、深入地介绍了在Windows系统中默认采用的Kerberos身份认证技术体系架构、深层身份验证原理、主要应用及基本配置方法。这是目前国内图书市场和网站上极难得到的第一手专业文献。本节说的是Kerberos V5身份认证的启用与策略配置。
5.8& Kerberos V5身份认证的启用与策略配置
Kerberos V5身份认证协议在安装期间为所有加入Windows Server 2003或Windows 2000域的计算机默认启用。Kerberos可对域内的资源和驻留在受信任的域中的资源提供单一登录,所以一般不需要手动启用Kerberos策略,除非在此之前你手动禁用了Kerberos策略。
可通过那些作为账户策略一部分的Kerberos安全设置来控制Kerberos配置的某些方面。Kerberos策略如图5-26所示,但仅在域组策略中有。例如,你可以设置用户的Kerberos V5票证的寿命。作为管理员,你可以使用默认的Kerberos策略,也可以更改它以适应环境的需要。
图5-26& 域组策略中的Kerberos策略
使用Kerberos V5进行成功的身份认证要求客户端和服务器计算机都必须运行Windows 2000、Windows Server 2003家族或Windows XP Professional操作系统。如果客户端系统尝试向运行其他版本的Windows操作系统的服务器进行身份认证,那么将使用NTLM协议作为身份认证机制。
使用Kerberos进行身份认证的计算机必须使其时间设置在5分钟内与常规时间服务同步,否则身份认证将失败。运行Windows Server 2003家族成员、Windows XP Professional或Windows 2000的计算机将使用域控制器作为网络时间服务来自动更新当前时间。
Kerberos策略用于域用户账户。它们确定与 Kerberos 相关的设置,例如票证的有效期限和强制执行。Kerberos 策略不存在于本地计算机策略中。这部分包括以下几个内容。
强制用户登录限制。
服务票证最长寿命。
用户票证最长寿命。
用户票证续订最长寿命。
计算机时钟同步的最大容差。
1. 强制用户登录限制
本安全设置确定Kerberos V5密钥分发中心(KDC)是否要根据用户账户的用户权限来验证每一个会话票证请求。验证每一个会话票证请求是可选的,因为额外的步骤需要花费时间,并可能降低服务的网络访问速度。
默认值:已启用。
2. 服务票证最长寿命
该安全设置确定使用所授予的会话票证可访问特定服务的最长时间(以分钟为单位)。该设置必须大于10分钟并且小于或等于"用户票证最长寿命"策略项设置。
如果客户端请求服务器连接时出示的会话票证已过期,服务器将返回错误消息。该客户端必须从Kerberos V5密钥分发中心(KDC)请求新的会话票证。然而一旦连接通过了身份认证,该会话票证是否仍然有效就无关紧要了。会话票证仅用于验证和服务器的新建连接。如果用于验证连接的会话票证在连接时过期,则当前的操作不会中断。
默认值:600分钟(10小时)。
3. 用户票证最长寿命
该安全设置确定用户票证授予票证(TGT)的最长使用时间(单位为小时)。用户的TGT期满后,必须申请新的或续订现有的用户票证。
默认值:10小时。
4. 用户票证续订最长寿命
该安全设置确定可以续订用户票证授予票证(TGT)的期限(以天为单位)。
默认值:7天。
5. 计算机时钟同步的最大容差
本安全设置确定Kerberos V5所允许的客户端时钟和提供Kerberos身份认证的Windows Server 2003域控制器上的时间的最大差值(以分钟为单位)。
为了防止"轮番攻击",Kerberos V5将时间戳用做其协议定义的一部分。为使时间戳正常工作,客户端和域控制器的时钟应尽可能地保持同步。换言之,应该将这两台计算机设置成相同的时间和日期。因为两台计算机的时钟常常不同步,所以管理员可使用该策略来设置Kerberos V5所能接受的客户端时钟和域控制器时钟间的最大差值。如果客户端时钟和域控制器时钟间的差值小于该策略中指定的最大时间差,那么在这两台计算机的会话中使用的任何时间戳都将被认为是可信的。
默认值:5分钟。
该设置并不是永久性的。如果配置该设置后重新启动计算机,那么该设置将被还原为默认值。
【责任编辑: TEL:(010)】&&&&&&
关于&&&&&&的更多文章
本周,搜狗浏览器被爆存在重大漏洞的消息被炒得沸沸扬扬,“安全
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
如何应对21世纪新商业环境中的变化?全球最大商务社交
这本书是写给程序员和项目经理的。作者结合自身的丰富
本书全面讲解WPF的实际工作原理,是一本WPF权威著作。
本书是按照全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》的要求,参照《网络管理员教程》及近年来考试试
51CTO旗下网站出处:/blogs
本文主要记录 CDH 5.2 Hadoop 集群中配置 Impala 和 Hive 集成 Sentry 的过程,包括 Sentry 的安装、配置以及和 Impala、Hive 集成后的测试。
使用 Sentry 来管理集群的权限,需要先在集群上配置好 Kerberos。
关于 Hadoop 集群上配置 kerberos 以及 ldap 的过程请参考本博客以下文章:
Sentry 会安装在三个节点的 hadoop 集群上,每个节点的ip、主机名和部署的组件分配如下:
192.168.56.121
NameNode、Hive、ResourceManager、HBase、impala-state-store、impala-catalog、Kerberos Server、sentry-store
192.168.56.122
DataNode、SSNameNode、NodeManager、HBase、impala-server
192.168.56.123
DataNode、HBase、NodeManager、impala-server
Sentry 的使用有两种方式,一是基于文件的存储方式(SimpleFileProviderBackend),一是基于数据库的存储方式(SimpleDbProviderBackend),如果使用基于文件的存储则只需要安装
sentry,否则还需要安装
sentry-store。
1. 基于数据库的存储方式
1.1 安装服务
在 cdh1 节点上安装 sentry-store 服务:
yum install sentry sentry-store -y
修改 Sentry 的配置文件
/etc/sentry/conf/sentry-store-site.xml,下面的配置参考了
&?xml version=&1.0& encoding=&UTF-8&?&
&configuration&
&property&
&name&sentry.service.admin.group&/name&
&value&impala,hive,hue&/value&
&/property&
&property&
&name&sentry.service.allow.connect&/name&
&value&impala,hive,hue&/value&
&/property&
&property&
&name&sentry.verify.schema.version&/name&
&value&true&/value&
&/property&
&property&
&name&sentry.service.server.rpc-address&/name&
&value&cdh1&/value&
&/property&
&property&
&name&sentry.service.server.rpc-port&/name&
&value&8038&/value&
&/property&
&property&
&name&sentry.store.jdbc.url&/name&
&value&jdbc:postgresql://cdh1/sentry&/value&
&/property&
&property&
&name&sentry.store.jdbc.driver&/name&
&value&org.postgresql.Driver&/value&
&/property&
&property&
&name&sentry.store.jdbc.user&/name&
&value&sentry&/value&
&/property&
&property&
&name&sentry.store.jdbc.password&/name&
&value&redhat&/value&
&/property&
&property&
&name&sentry.hive.server&/name&
&value&server1&/value&
&/property&
&property&
&name&sentry.store.group.mapping&/name&
&value&org.apache.mon.HadoopGroupMappingService&/value&
&/property&
&/configuration&
创建数据库,请参考
yum install postgresql-server postgresql-jdbc -y
ln -s /usr/share/java/postgresql-jdbc.jar /usr/lib/hive/lib/postgresql-jdbc.jar
ln -s /usr/share/java/postgresql-jdbc.jar /usr/lib/sentry/lib/postgresql-jdbc.jar
su -c & /usr/bin/pg_ctl start -w -m fast -D /var/lib/pgsql/data& postgres
su -c & /usr/bin/psql --command \&create user sentry with password &redhat&; \& & postgres
su -c & /usr/bin/psql --command \&CREATE DATABASE sentry owner=\& & postgres
su -c & /usr/bin/psql --command \&GRANT ALL privileges ON DATABASE sentry TO\& & postgres
su -c & /usr/bin/psql -U sentry -d sentry -f /usr/lib/sentry/scripts/sentrystore/upgrade/sentry-postgres-1.4.0-cdh5.sql& postgres
su -c & /usr/bin/pg_ctl restart -w -m fast -D /var/lib/pgsql/data& postgres
/var/lib/pgsql/data/pg_hba.conf 内容如下:
CIDR-ADDRESS
# &local& is for Unix domain socket connections only
# IPv4 local connections:
127.0.0.1/32
# IPv6 local connections:
如果集群开启了 Kerberos 验证,则需要在该节点上生成 Sentry 服务的 principal 并导出为 ticket:
$ cd /etc/sentry/conf
kadmin.local -q &addprinc -randkey sentry/ &
kadmin.local -q &xst -k sentry.keytab sentry/ &
chown sentry:hadoop sentry. chmod 400 *.keytab
然后,在/etc/sentry/conf/sentry-store-site.xml 中添加如下内容:
&property&
&name&sentry.service.security.mode&/name&
&value&kerberos&/value&
&/property&
&property&
&name&sentry.service.server.principal&/name&
&value&sentry/&/value&
&/property&
&property&
&name&sentry.service.server.keytab&/name&
&value&/etc/sentry/conf/sentry.keytab&/value&
&/property&
1.2. 准备测试数据
,准备测试数据:
$ cat /tmp/events.csv
10.1.2.3,US,android,createNote
10.200.88.99,FR,windows,updateNote
10.1.2.3,US,android,updateNote
10.200.88.77,FR,ios,createNote
10.1.4.5,US,windows,updateTag
hive& creat
hive& create table sensitive.events (
ip STRING, country STRING, client STRING, action STRING
) ROW FORMAT DELIMITED FIELDS TERMINATED BY &,&;
hive& load data local inpath &/tmp/events.csv& overwrite into table sensitive.
hive& crea
hive& create view filtered.events as select country, client, action from sensitive.
hive& create view filtered.events_usonly as
select * from filtered.events where country = &US&;
1.3 Hive-server2 集成 sentry
在使用 Sentry 时,有如下要求:
1、需要修改
/user/hive/warehouse 权限:
hdfs dfs -chmod -R 770 /user/hive/warehouse
hdfs dfs -chown -R hive:hive /user/hive/warehouse
2、修改 hive-site.xml 文件,关掉
HiveServer2 impersonation
3、taskcontroller.cfg 文件中确保
min.user.id=0。
修改配置文件
修改 hive-site.xml,添加如下:
&property&
&name&hive.security.authorization.task.factory&/name&
&value&org.apache.sentry.binding.hive.SentryHiveAuthorizationTaskFactoryImpl&/value&
&/property&
&property&
&name&hive.server2.session.hook&/name&
&value&org.apache.sentry.binding.hive.HiveAuthzBindingSessionHook&/value&
&/property&
&property&
&name&hive.sentry.conf.url&/name&
&value&file:///etc/hive/conf/sentry-site.xml&/value&
&/property&
在 /etc/hive/conf/ 目录创建 sentry-site.xml:
&?xml version=&1.0& encoding=&UTF-8&?&
&configuration&
&property&
&name&sentry.service.client.server.rpc-port&/name&
&value&8038&/value&
&/property&
&property&
&name&sentry.service.client.server.rpc-address&/name&
&value&cdh1&/value&
&/property&
&property&
&name&sentry.service.client.server.rpc-connection-timeout&/name&
&value&200000&/value&
&/property&
&property&
&name&sentry.service.security.mode&/name&
&value&kerberos&/value&
&/property&
&property&
&name&sentry.service.server.principal&/name&
&value&sentry/_&/value&
&/property&
&property&
&name&sentry.service.server.keytab&/name&
&value&/etc/sentry/conf/sentry.keytab&/value&
&/property&
&property&
&name&sentry.hive.provider&/name&
&value&org.apache.sentry.provider.file.HadoopGroupResourceAuthorizationProvider&/value&
&/property&
&property&
&name&sentry.hive.provider.backend&/name&
&value&org.apache.sentry.provider.db.SimpleDBProviderBackend&/value&
&/property&
&property&
&name&sentry.hive.server&/name&
&value&server1&/value&
&/property&
&property&
&name&sentry.metastore.service.users&/name&
&value&hive&/value&
&/property&
&property&
&name&sentry.hive.testing.mode&/name&
&value&false&/value&
&/property&
&/configuration&
sentry-store 中创建角色和组
在 beeline 中通过 hive(注意,在 sentry 中 hive 为管理员用户)的 ticket 连接 hive-server2,创建 role、group 等等,执行下面语句:
create role admin_
GRANT ALL ON SERVER server1 TO ROLE admin_
GRANT ROLE admin_role TO GROUP
GRANT ROLE admin_role TO GROUP
create role test_
GRANT ALL ON DATABASE filtered TO ROLE test_
GRANT ALL ON DATABASE sensitive TO ROLE test_
GRANT ROLE test_role TO GROUP
上面创建了两个角色,一个是 admin_role,具有管理员权限,可以读写所有数据库,并授权给 admin 和 hive 组(对应操作系统上的组);一个是 test_role,只能读写 filtered 和 sensitive 数据库,并授权给 test 组
在 ldap 创建测试用户
在 ldap 服务器上创建系统用户 yy_test,并使用 migrationtools 工具将该用户导入 ldap,最后设置 ldap 中该用户密码。
# 创建 yy_test用户
useradd yy_test
grep -E &yy_test& /etc/passwd
&/opt/passwd.txt
/usr/share/migrationtools/migrate_passwd.pl /opt/passwd.txt /opt/passwd.ldif
ldapadd -x -D &uid=ldapadmin,ou=people,dc=lashou,dc=com& -w secret -f /opt/passwd.ldif
#使用下面语句修改密码,填入上面生成的密码,输入两次:
ldappasswd -x -D &uid=ldapadmin,ou=people,dc=lashou,dc=com& -w secret &uid=yy_test,ou=people,dc=lashou,dc=com& -S
在每台 datanode 机器上创建 test 分组,并将 yy_test 用户加入到 test 分组:
useradd yy_ usermod -G test,yy_test yy_test
通过 beeline 连接 hive-server2,进行测试:
# 切换到 test 用户进行测试
$ kinit -k -t test.keytab test/
$ beeline -u &jdbc:hive2://cdh1:10000/principal=test/&
1.4 Impala 集成 Sentry
修改 /etc/default/impala 文件中的
IMPALA_SERVER_ARGS 参数,添加:
-server_name=server1
-sentry_config=/etc/impala/conf/sentry-site.xml
IMPALA_CATALOG_ARGS 中添加:
-sentry_config=/etc/impala/conf/sentry-site.xml
注意:server1 必须和 sentry-provider.ini 文件中的保持一致。
IMPALA_SERVER_ARGS 参数最后如下:
hostname=`hostname -f |tr &[:upper:]& &[:lower:]&`
IMPALA_SERVER_ARGS=& \
-log_dir=${IMPALA_LOG_DIR} \
-catalog_service_host=${IMPALA_CATALOG_SERVICE_HOST} \
-state_store_port=${IMPALA_STATE_STORE_PORT} \
-use_statestore \
-state_store_host=${IMPALA_STATE_STORE_HOST} \
-kerberos_reinit_interval=60 \
-principal=impala/${hostname}@ \
-keytab_file=/etc/impala/conf/impala.keytab \
-enable_ldap_auth=true -ldap_uri=ldaps://cdh1 -ldap_baseDN=ou=people,dc=javachen,dc=com \
-server_name=server1 \
-sentry_config=/etc/impala/conf/sentry-site.xml \
-be_port=${IMPALA_BACKEND_PORT} -default_pool_max_requests=-1 -mem_limit=60%&
创建 /etc/impala/conf/sentry-site.xml 内容如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&configuration&
&property&
&name&sentry.service.client.server.rpc-port&/name&
&value&8038&/value&
&/property&
&property&
&name&sentry.service.client.server.rpc-address&/name&
&value&cdh1&/value&
&/property&
&property&
&name&sentry.service.client.server.rpc-connection-timeout&/name&
&value&200000&/value&
&/property&
&property&
&name&sentry.service.security.mode&/name&
&value&kerberos&/value&
&/property&
&property&
&name&sentry.service.server.principal&/name&
&value&sentry/_&/value&
&/property&
&property&
&name&sentry.service.server.keytab&/name&
&value&/etc/sentry/conf/sentry.keytab&/value&
&/property&
&/configuration&
请参考下午基于文件存储方式中 impala 的测试。
2. 基于文件存储方式
2.1 hive 集成 sentry
修改配置文件
在 hive 的 /etc/hive/conf 目录下创建 sentry-site.xml 文件,内容如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&configuration&
&property&
&name&hive.sentry.server&/name&
&value&server1&/value&
&/property&
&property&
&name&sentry.hive.provider.backend&/name&
&value&org.apache.sentry.provider.file.SimpleFileProviderBackend&/value&
&/property&
&property&
&name&hive.sentry.provider&/name&
&value&org.apache.sentry.provider.file.HadoopGroupResourceAuthorizationProvider&/value&
&/property&
&property&
&name&hive.sentry.provider.resource&/name&
&value&/user/hive/sentry/sentry-provider.ini&/value&
&/property&
&/configuration&
创建 sentry-provider.ini 文件并将其上传到 hdfs 的
/user/hive/sentry/ 目录:
$ cat /tmp/sentry-provider.ini
[databases]
# Defines the location of the per DB policy file for the customers DB/schema
#db1 = hdfs://cdh1:8020/user/hive/sentry/db1.ini
admin = any_operation
hive = any_operation
test = select_filtered
any_operation = server=server1-&db=*-&table=*-&action=*
select_filtered = server=server1-&db=filtered-&table=*-&action=SELECT
select_us = server=server1-&db=filtered-&table=events_usonly-&action=SELECT
test = test
hive= hive
$ hdfs dfs -rm -r /user/hive/sentry/sentry-provider.ini
$ hdfs dfs -put /tmp/sentry-provider.ini /user/hive/sentry/
$ hdfs dfs -chown hive:hive /user/hive/sentry/sentry-provider.ini
$ hdfs dfs -chmod 640 /user/hive/sentry/sentry-provider.ini
关于 sentry-provider.ini 文件的语法说明,请参考官方文档。这里我指定了 Hive 组有全部权限,并指定 Hive 用户属于 Hive 分组,而其他两个分组只有部分权限。
然后在 hive-site.xml 中添加如下配置:
&property&
&name&hive.security.authorization.task.factory&/name&
&value&org.apache.sentry.binding.hive.SentryHiveAuthorizationTaskFactoryImpl&/value&
&/property&
&property&
&name&hive.server2.session.hook&/name&
&value&org.apache.sentry.binding.hive.HiveAuthzBindingSessionHook&/value&
&/property&
&property&
&name&hive.sentry.conf.url&/name&
&value&file:///etc/hive/conf/sentry-site.xml&/value&
&/property&
将配置文件同步到其他节点,并重启 hive-server2 服务。
这里,我集群中 hive-server2 开启了 kerberos 认证,故通过 hive 用户来连接 hive-server2。
$ kinit -k -t /etc/hive/conf/hive.keytab hive/
$ beeline -u &jdbc:hive2://cdh1:10000/principal=hive/&
scan complete in 10ms
Connecting to jdbc:hive2://cdh1:10000/principal=hive/
Connected to: Apache Hive (version 0.13.1-cdh5.2.0)
Driver: Hive JDBC (version 0.13.1-cdh5.2.0)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 0.13.1-cdh5.2.0 by Apache Hive
5 rows selected (0.339 seconds)
0: jdbc:hive2://cdh1:10000/default&
+----------------+--+
| database_name
+----------------+--+
| filtered
| sensitive
+----------------+--+
10 rows selected (0.145 seconds)
0: jdbc:hive2://cdh1:10000/default& use filtered
No rows affected (0.132 seconds)
0: jdbc:hive2://cdh1:10000/default&
+----------------+--+
+----------------+--+
| events_usonly
+----------------+--+
2 rows selected (0.158 seconds)
0: jdbc:hive2://cdh1:10000/default&
No rows affected (0.115 seconds)
0: jdbc:hive2://cdh1:10000/default&
+-----------+--+
| tab_name
+-----------+--+
+-----------+--+
1 row selected (0.148 seconds)
impala 集成 sentry
修改配置文件
修改 /etc/default/impala 文件中的
IMPALA_SERVER_ARGS 参数,添加:
-server_name=server1
-authorization_policy_file=/user/hive/sentry/sentry-provider.ini
-authorization_policy_provider_class=org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider
注意:server1 必须和 sentry-provider.ini 文件中的保持一致。
IMPALA_SERVER_ARGS 参数最后如下:
hostname=`hostname -f |tr &[:upper:]& &[:lower:]&`
IMPALA_SERVER_ARGS=& \
-log_dir=${IMPALA_LOG_DIR} \
-catalog_service_host=${IMPALA_CATALOG_SERVICE_HOST} \
-state_store_port=${IMPALA_STATE_STORE_PORT} \
-use_statestore \
-state_store_host=${IMPALA_STATE_STORE_HOST} \
-be_port=${IMPALA_BACKEND_PORT} \
-server_name=server1 \
-authorization_policy_file=/user/hive/sentry/sentry-provider.ini \
-authorization_policy_provider_class=org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider \
-enable_ldap_auth=true -ldap_uri=ldaps://cdh1 -ldap_baseDN=ou=people,dc=javachen,dc=com \
-kerberos_reinit_interval=60 \
-principal=impala/${hostname}@ \
-keytab_file=/etc/impala/conf/impala.keytab \
重启 impala-server 服务,然后进行测试。因为我这里 impala-server 集成了 kerberos 和 ldap,现在通过 ldap 来进行测试。
先通过 ldap 的 test 用户来测试:
impala-shell -l -u test
Starting Impala Shell using LDAP-based authentication
LDAP password for test:
Connected to cdh1:21000
Server version: impalad version 2.0.0-cdh5 RELEASE (build ecf30af0b4d6e56ea87ada6b7da7)
Welcome to the Impala shell. Press TAB twice to see a list of available commands.
Copyright (c) 2012 Cloudera, Inc. All rights reserved.
(Shell build version: Impala Shell v2.0.0-cdh5 (ecf30af) built on Sat Oct 11 13:56:06 PDT 2014)
[cdh1:21000] &
Query: show databases
+---------+
+---------+
| default |
+---------+
Fetched 1 row(s) in 0.11s
[cdh1:21000] &
Query: show tables
ERROR: AuthorizationException: User &test& does not have privileges to access: default.*
[cdh1:21000] &
可以看到 test 用户没有权限查看和数据库,这是因为 sentry-provider.ini 文件中并没有给 test 用户分配任何权限。
下面使用 hive 用户来测试。使用下面命令在 ldap 中创建 hive 用户和组并给 hive 用户设置密码。
$ grep hive /etc/passwd
&/opt/passwd.txt
$ /usr/share/migrationtools/migrate_passwd.pl /opt/passwd.txt /opt/passwd.ldif
$ ldapadd -x -D &uid=ldapadmin,ou=people,dc=javachen,dc=com& -w secret -f /opt/passwd.ldif
$ grep hive /etc/group
&/opt/group.txt
$ /usr/share/migrationtools/migrate_group.pl /opt/group.txt /opt/group.ldif
$ ldapadd -x -D &uid=ldapadmin,ou=people,dc=javachen,dc=com& -w secret -f /opt/group.ldif
# 修改 ldap 中 hive 用户密码
$ ldappasswd -x -D &uid=ldapadmin,ou=people,dc=javachen,dc=com& -w secret &uid=hive,ou=people,dc=javachen,dc=com& -S
然后,使用 hive 用户测试:
$ impala-shell -l -u hive
Starting Impala Shell using LDAP-based authentication
LDAP password for hive:
Connected to cdh1:21000
Server version: impalad version 2.0.0-cdh5 RELEASE (build ecf30af0b4d6e56ea87ada6b7da7)
Welcome to the Impala shell. Press TAB twice to see a list of available commands.
Copyright (c) 2012 Cloudera, Inc. All rights reserved.
(Shell build version: Impala Shell v2.0.0-cdh5 (ecf30af) built on Sat Oct 11 13:56:06 PDT 2014)
[cdh1:21000] &
Query: show databases
+------------------+
+------------------+
| _impala_builtins |
| filtered
| sensitive
+------------------+
Fetched 11 row(s) in 0.11s
[cdh1:21000] &
Query: use sensitive
[cdh1:21000] &
Query: show tables
+--------+
+--------+
| events |
+--------+
Fetched 1 row(s) in 0.11s
[cdh1:21000] & select *
Query: select * from events
+--------------+---------+---------+------------+
| country | client
+--------------+---------+---------+------------+
| 10.1.2.3
| android | createNote |
| 10.200.88.99 | FR
| windows | updateNote |
| 10.1.2.3
| android | updateNote |
| 10.200.88.77 | FR
| createNote |
| 10.1.4.5
| windows | updateTag
+--------------+---------+---------+------------+
Fetched 5 row(s) in 0.76s
同样,你还可以使用其他用户来测试。
也可以使用 beeline 来连接 impala-server 来进行测试:
$ beeline -u &jdbc:hive2://cdh1:21050/& -n test -p test
scan complete in 2ms
Connecting to jdbc:hive2://cdh1:21050/
Connected to: Impala (version 2.0.0-cdh5)
Driver: Hive JDBC (version 0.13.1-cdh5.2.0)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 0.13.1-cdh5.2.0 by Apache Hive
0: jdbc:hive2://cdh1:21050/default&
3. 参考文章
相关 [impala hive sentry] 推荐:
- SegmentFault 最新的文章
本文主要记录 CDH 5.2 Hadoop 集群中配置 Impala 和 Hive 集成 Sentry 的过程,包括 Sentry 的安装、配置以及和 Impala、Hive 集成后的测试. 使用 Sentry 来管理集群的权限,需要先在集群上配置好 Kerberos. 关于 Hadoop 集群上配置 kerberos 以及 ldap 的过程请参考本博客以下文章:. HDFS配置Kerberos认证. YARN配置Kerberos认证. Hive配置Kerberos认证. Impala配置Kerberos认证. Hadoop配置LDAP集成Kerberos. Sentry 会安装在三个节点的 hadoop 集群上,每个节点的ip、主机名和部署的组件分配如下:.
- CSDN博客云计算推荐文章
其架构如图
1所示,Impala主要由Impalad, State Store和CLI组成. 同时Impalad也与State
Store保持连接,用于确定哪个Impalad是健康和可以接受新的工作. 在Impalad中启动三个ThriftServer: beeswax_server(连接客户端),hs2_server(借用Hive元数据), be_server(Impalad内部使用)和一个ImpalaServer服务.
CLI: 提供给用户查询使用的命令行工具(Impala Shell使用python实现),同时Impala还提供了Hue,JDBC, ODBC使用接口.
- 数据库 - ITeye博客
1. 什么是实时分析(在线查询)系统. 大数据领域里面,实时分析(在线查询)系统是最常见的一种场景,通常用于客户投诉处理,实时数据分析,在线查询等等过. 因为是查询应用,通常有以下特点:. b. 查询条件复杂(多个维度,维度不固定),有简单(带有ID). c. 查询范围大(通常查询表记录在几十亿级别). d. 返回结果数小(几十条甚至几千条). e. 并发数要求高(几百上千同时并发). f. 支持SQL(这个业界基本上达成共识了,原因是很难找到一个又会数据分析,还能写JAVA代码的分析工程师). 传统上,常常使用数据仓库来承担这一任务,数据仓库通过创建索引来应对多维度复杂查询. 传统数据仓库也存在很明显的缺点,扩展性不强,索引创建成本高,索引易失效等等.
- ITeye博客
以前写过一篇文档讨论MPP DB的发展,《
MPP DB 是大数据实时分析系统未来的选择吗. 》,当时主要是想讨论下Greenplum数据库是否合适做数据存储,以及实时查询. 文章我主要提的MPP DB短板是扩展性和对并发的支持,从目前Pivotal公司主推的HAWK,已经可以清楚的看到,业界主流的思路是SQL onhadoop,用传统引擎的高性能加上hadoop 存储的鲁棒性,来构建大数据实时分析. 一、为什么SQL on hadoop会流行. SQL其实也是一种DSL,将复杂的数据操作抽象成几个关键字(insert,update,select,delect等),SQL易学易用,程序员和DBA掌握的很多.
- CSDN博客推荐文章
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据. 已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性. 相比之下,Impala的最大特点也是最大卖点就是它的快速. Impala 为存储在 HDFS 和 HBase 中的数据提供了一个实时 SQL 查询接口. 下图来自
zdnet,描述了Impala的一些优点:. 从上图中看出主要的优点:SQL友好,比Hive快,支持多种存储引擎文件格式,接口丰富(ODBC,JDBC,Client),开源,部署容易.
- 开源软件 - ITeye博客
10.200.187.86 cslave1 4核 3G. 10.200.187.87 cslave2 2核 4G. 10.200.187.88 cslave3 2核 4G. 10.200.187.89 cslave4 2核 6G. 1.在内存够用并且是简单sql条件下,impala相比hive执行效率高很多,简单的sql在百万级别数据中运行,耗时几秒甚至不用一秒. 2.impala性能如何,与数据的存储格式关系很大,百万级别text格式与hbase格式相差十几倍,千万级别parquet格式与text格式相差百倍. 3.在当前集群配置下,百万级别impala join略比hive性能高(3~4倍),但在千万级别时impala大表的join执行失败(内存不足).
这是instagram (
被facebook10亿美金收购的那个10人团队)团队用到的工具. Sentry 可以帮助你将
程序(Python , Ruby , PHP ...) 的所有 exception 自动记录下来,然后在一个好用的 UI 上呈现和搜索. 处理 exception 是每个程序的必要部分,所以 Sentry 也几乎可以说是所有项目的必备组件. Sentry 也支持统计前端 Javascript 的 出错信息 :
/getsentry/raven-js. 实现原理可以参见文章
处理 JS 异常的一个想法. 在支付宝的时候,线上 js 报错会变成一个邮件,发给前端开发 team.
- CSDN博客云计算推荐文章
一、Impala简介
Cloudera Impala对你存储在Apache Hadoop在HDFS,HBase的数据提供直接查询互动的SQL. 除了像Hive使用相同的统一存储平台,Impala也使用相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax). Impala还提供了一个熟悉的面向批量或实时查询和统一平台. 注意:Impala不支持在Debian/Ubuntu, SuSE, RHEL/CentOS 5.7系统中安装. (2)硬件要求
在Join查询过程中需要将数据集加载内存中进行计算,因此对安装Impalad的内存要求较高. (1)操作系统版本查看
&more/etc/issue.
- CSDN博客云计算推荐文章
Cloudera Impala是一种为Hadoop生态系统打造的开源MPP(massive parallel processing)数据库,它主要为分析型查询负载而设计,而非OLTP. Impala能最大限度地利用现代硬件和高效查询执行的最新技术. LLVM下的运行时代码生成就是用来提升执行性能的技术之一. LLVM是一个编译器及相关工具的库(toolchain),它不同于独立应用式(stand-alone)的传统编译器,LLVM是模块化且可重用的. 它允许Impala这样的应用在运行的进程内执行JIT(just-in-time)编译. 尽管LLVM因一些特殊的能力以及著名的工具,如比GCC更优的Clang编译器,但真正使LLVM区别于其他编译器的是它的内部架构.
- CSDN博客推荐文章
Hive join优化. 也可以显示声明进行map join:特别适用于小表join大表的时候,SELECT /*+ MAPJOIN(b) */ a.key, a.value FROM a join b on a.key = b.key. 2.
注意带表分区的join, 如:. 因为hive是先join再where的,所以如果在b中找不到a表的记录,b表中的所以列都会列出null,包括ds列,这样left outer的查询结果与where子句无关了,解决办法:. 3.
怎样写exist/in子句. Hive不支持where子句中的子查询,SQL常用的exist in子句需要改写.
坚持分享优质有趣的原创文章,并保留作者信息和版权声明,任何问题请联系:@。}

我要回帖

更多关于 kerberos认证配置 的文章

更多推荐

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

点击添加站长微信