云服务器内容精选

  • 操作场景 因为 MRS 操作系统用户组个数限制,导致Hive不能创建超过32个角色,开启此功能后,Hive将支持创建超过32个角色。 开启本功能并对表库等授权后,对表库目录具有相同权限的角色将会用“|”合并。查询ACL权限时,将显示合并后的结果,与开启该功能前的显示会有区别。此操作不可逆,请充分考虑实际应用场景,再决定是否作出调整。 如果当前组件使用了Ranger进行权限控制,需基于Ranger配置相关策略进行权限管理,具体操作可参考添加Hive的Ranger访问权限策略。 开启此功能后,包括owner在内默认最大可支持512个角色,由MetaStore自定义参数“hive.supports.roles.max”控制,可根据实际应用场景进行修改。
  • 如何使用 在客户端安装节点,把以上程序打包成AddDoublesUDF.jar,并上传到HDFS指定目录下(例如“/user/hive_examples_jars”)。 创建函数的用户与使用函数的用户都需要具有该文件的可读权限。 示例语句: hdfs dfs -put ./hive_examples_jars /user/hive_examples_jars hdfs dfs -chmod 777 /user/hive_examples_jars 判断集群的认证模式。 安全模式,需要使用一个具有Hive管理权限的用户登录beeline客户端,执行如下命令: kinit Hive业务用户 beeline set role admin; 普通模式,执行如下命令: beeline -n Hive业务用户 在Hive Server中定义该函数,以下语句用于创建永久函数: CREATE FUNCTION addDoubles AS 'com.xxx.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar'; 其中addDoubles是该函数的别名,用于SELECT查询中使用;xxx通常为程序开发的组织名称。 以下语句用于创建临时函数: CREATE TEMPORARY FUNCTION addDoubles AS 'com.xxx.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar'; addDoubles是该函数的别名,用于SELECT查询中使用。 关键字TEMPORARY说明该函数只在当前这个Hive Server的会话过程中定义使用。 在Hive Server中使用该函数,执行SQL语句: SELECT addDoubles(1,2,3); 如果重新连接客户端再使用函数出现[Error 10011]的错误,可执行reload function;命令后再使用该函数。 在Hive Server中删除该函数,执行SQL语句: DROP FUNCTION addDoubles;
  • 功能介绍 AddDoublesUDF主要用来对两个及多个浮点数进行相加,在该样例中可以掌握如何编写和使用UDF。 一个普通UDF必须继承自“org.apache.hadoop.hive.ql.exec.UDF”。 一个普通UDF必须至少实现一个evaluate()方法,evaluate函数支持重载。 开发自定义函数需要在工程中添加“hive-exec-*.jar”依赖包,可从Hive服务的安装目录下获取,例如在“${BIGDATA_HOME}/components/ FusionInsight _HD_*/Hive/disaster/plugin/lib/”目录下获取。
  • 操作示例 以Hive客户端安装用户登录安装客户端的节点。 执行以下命令,切换到客户端安装目录,配置环境变量并认证用户。 cd 客户端安装目录 source bigdata_env kinit Hive业务用户 执行以下命令登录Hive客户端。 beeline 配置Hive视图的访问控制权限示例: 不采用“current_user”函数,要实现不同的用户,访问不同数据,需要创建不同的视图: 将视图v1授权给用户hiveuser1,hiveuser1用户可以访问表table1中“type='hiveuser1'”的数据: create view v1 as select * from table1 where type='hiveuser1'; 将视图v2授权给用户hiveuser2,hiveuser2用户可以访问表table1中“type='hiveuser2'”的数据: create view v2 as select * from table1 where type='hiveuser2'; 采用“current_user”函数,则只需要创建一个视图: 将视图v分别赋给用户hiveuser1、hiveuser2,当hiveuser1查询视图v时,“current_user()”被自动转化为hiveuser1,当hiveuser2查询视图v时,“current_user()”被自动转化为hiveuser2: create view v as select * from table1 where type=current_user();
  • 操作场景 此功能适用于Hive,Spark2x/Spark。 开启此功能后,在创建Hive内部表时,不能指定location。即表创建成功之后,表的location路径会被创建在当前默认warehouse目录下,不能被指定到其他目录。如果创建内部表时指定location,则创建失败。 开启本功能之后,创建Hive内部表不能执行location。因为对建表语句做了限制,如果数据库中已存在建表时指向非当前默认warehouse目录的表,在执行建库、表脚本迁移、重建元数据操作时需要特别注意,防止错误。
  • 操作示例 以Hive客户端安装用户登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd 客户端安装目录 例如安装目录为“/opt/client”,则执行以下命令: cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 集群认证模式是否为安全模式。 是,执行以下命令进行用户认证: kinit Hive业务用户 否,执行5。 执行以下命令登录Hive客户端。 beeline 执行如下命令创建Hive分区表“table_1”,指定分区“pt='2021-12-12'”的路径为“hdfs//xxx”,指定分区“pt='2021-12-18'”的路径为“obs://xxx”: create table table_1(id string) partitioned by(pt string) [stored as [orc|textfile|parquet|...]]; alter table table_1 add partition(pt='2021-12-12') location 'hdfs://xxx'; alter table table_1 add partition(pt='2021-12-18') location 'obs://xxx'; 给分区表“table_1”中插入数据后,对应的分区数据存储在对应的存储源上,可以使用desc查看分区的location,执行以下命令查看路径下的数据: desc formatted table_1 partition(pt='2021-12-18');
  • 操作场景 此功能适用于Hive组件。 开启此功能后,在执行写目录:insert overwrite directory “/path1/path2/path3” ...时,其中“/path1/path2”目录权限为700且属主为当前用户,“path3”目录不存在,会自动创建“path3”目录,并写数据成功。 上述功能,在Hive参数“hive.server2.enable.doAs”为“true”时已经支持,本次增加当“hive.server2.enable.doAs”为“false”时的功能支持。 本功能参数调整与配置Hive目录旧数据自动移除至回收站添加的自定义参数相同。
  • 操作场景 此功能在MRS 3.x之前版本适用于Hive,Spark。在MRS3.x及后续版本适用于Hive,Spark2x。 开启此功能后,在创建Hive内部表时,不能指定location。即表创建成功之后,表的location路径会被创建在当前默认warehouse目录下,不能被指定到其他目录。如果创建内部表时指定location,则创建失败。 开启本功能之后,创建Hive内部表不能执行location。因为对建表语句做了限制,如果数据库中已存在建表时指向非当前默认warehouse目录的表,在执行建库、表脚本迁移、重建元数据操作时需要特别注意,防止错误。
  • 功能介绍 AddDoublesUDF主要用来对两个及多个浮点数进行相加,在该样例中可以掌握如何编写和使用UDF。 一个普通UDF必须继承自“org.apache.hadoop.hive.ql.exec.UDF”。 一个普通UDF必须至少实现一个evaluate()方法,evaluate函数支持重载。 开发自定义函数需要在工程中添加“hive-exec-*.jar”依赖包,可从Hive服务的安装目录下获取,例如在“${BIGDATA_HOME}/components/FusionInsight_HD_*/Hive/disaster/plugin/lib/”目录下获取。
  • 如何使用 在客户端安装节点,把以上程序打包成AddDoublesUDF.jar,并上传到HDFS指定目录下(例如“/user/hive_examples_jars”)。 创建函数的用户与使用函数的用户都需要具有该文件的可读权限。 示例语句: hdfs dfs -put ./hive_examples_jars /user/hive_examples_jars hdfs dfs -chmod 777 /user/hive_examples_jars 判断集群的认证模式。 安全模式,需要使用一个具有Hive管理权限的用户登录beeline客户端,执行如下命令: kinit Hive业务用户 beeline set role admin; 普通模式,执行如下命令: beeline -n Hive业务用户 在Hive Server中定义该函数,以下语句用于创建永久函数: CREATE FUNCTION addDoubles AS 'com.xxx.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar'; 其中addDoubles是该函数的别名,用于SELECT查询中使用;xxx通常为程序开发的组织名称。 以下语句用于创建临时函数: CREATE TEMPORARY FUNCTION addDoubles AS 'com.xxx.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar'; addDoubles是该函数的别名,用于SELECT查询中使用。 关键字TEMPORARY说明该函数只在当前这个Hive Server的会话过程中定义使用。 在Hive Server中使用该函数,执行SQL语句: SELECT addDoubles(1,2,3); 若重新连接客户端再使用函数出现[Error 10011]的错误,可执行reload function;命令后再使用该函数。 在Hive Server中删除该函数,执行SQL语句: DROP FUNCTION addDoubles;
  • 操作场景 此功能适用于Hive组件。 开启此功能后,在执行写目录:insert overwrite directory “/path1/path2/path3” ...时,其中“/path1/path2”目录权限为700且属主为当前用户,“path3”目录不存在,会自动创建“path3”目录,并写数据成功。 上述功能,在Hive参数“hive.server2.enable.doAs”为“true”时已经支持,本次增加当“hive.server2.enable.doAs”为“false”时的功能支持。 本功能参数调整与配置Hive目录旧数据自动移除至回收站添加的自定义参数相同。