• [大数据类] profile的sqoop地址对的,但是一直显示-bash: sqoop: command not found
    profile    这是sqoop 路径这是测试sqoop是否安装成功所返回的
  • [生态对接] spark --jars提交依赖冲突,有没有办法忽略集群中的依赖。只使用fat-jar和--jar提供的
         我最近开发了一个maven项目,想使用spark读取/写入greenplum的数据,但是由于jdbc的传输速度限制。所以想采用greenplum-spark connect这个连接器。当我使用--jars将项目和这个依赖包一起提交上去的时候出现了jar包冲突 报错:classnotfound。  同时自己搭建了一套开源集群,相同的步骤 spark读取/写入greenplum 并且也使用这个连接器--jars提供第三方依赖包,正常读取数据。    所以我想有没有办法忽略集群中的依赖。只使用fat-jar和--jar提供的      
  • [问题求助] FusionInsight HD的管理平台上的role 所拥有的权限如何在后台/接口查询?权限粒度到表/视图/topic/目录等。
    需求:       想后台方式批量查找FusionInsight HD的管理平台Manager 上的role 角色,都授权了哪些服务,哪些权限。例, 查询A 角色授权了哪些服务和权限,A权限拥有哪些组件权限,Hive组件,有哪些库权限,哪些表/视图权限;HDFS组件,哪些目录有读写权限等。
  • [赋能学习] Pyhive连接MRS集群HIVE
    1 安装Python环境1.1 安装Miniconda conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python。 此处,我们不需要如此多的工具包,故选择MiniConda。1)下载Miniconda(Python3版本)下载地址:cid:link_0 2)安装Miniconda (1)执行以下命令进行安装,并按照提示操作,直到安装完成。bash Miniconda3-py38_23.1.0-1-Linux-x86_64.sh在安装过程中,出现以下提示时,可以指定安装路径 出现以下字样,即为安装完成 3)加载环境变量配置文件,使之生效source ~/.bashrc4)取消激活base环境Miniconda安装完成后,每次打开终端都会激活其默认的base环境,我们可通过以下命令,禁止激活默认base环境。 conda config --set auto_activate_base false1.2 创建Python3.6以上环境conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main conda config --set show_channel_urls yes2)创建Python环境conda create --name superset python=3.8 说明:conda环境管理常用命令创建环境:conda create -n env_name查看所有环境:conda info --envs删除一个环境:conda remove -n env_name --all1.3 适配环境下载相关依赖进入Miniconda3所在目录下bin执行 ./pip3 install pyhive==0.6.1 --force-reinstall ./pip3 install thrift==0.16.0 --force-reninstall ./pip3 install thrift-sasl==0.4.3 ./pip3 install pure-sasl==0.6.2 ./pip3 install sasl==0.3.修改源代码,将域名写死 vim /opt/miniconda3/lib/python3.8/site-packages/pyhive/hive.py添加kerberos_service_host参数 1.4 通过python代码连接hive./python3import os from pyhive import hive host='x.x.x.x' port=21066 auth='KERBEROS' kerberos_service_name='hive' kerberos_service_host='hadoop.hadoop.com' os.system('source /opt/140client/bigdata_env') os.system('echo password | kinit user') with hive.connect(host=host, port=port, auth=auth, kerberos_service_host=kerberos_service_host, kerberos_service_name=kerberos_service_name) as conn: with conn.cursor() as cur: cur.execute("show tables") for i in cur.fetchall(): print(i)注:host是hive对应实例节点,需提前在页面查看然后填写查看Hive数据库中表
  • [问题求助] hive客户端中执行add jar提示没有权限
    使用的是hive用户组下的用户,在manager网页中把能给的权限都给了,还是提示 Permissin denied
  • [问题求助] hive udf复用问题
    在hive里创建udf后,如何复用?例如使用用户usr_a在数据库database_a创建udf1后,如何授权给usr_b用户使用。是否有grant select on function database_a.udf1 to user usr_b;类似的授权语句。请专家予以解答,多谢。
  • [问题求助] 写spark代码进行二次开发的时候,还需要往SparkConf里set相关的配置项目吗
    我看了官方的demo代码,在hive to hbase项目代码里,只设置了appName,其余的全部没有设置,是可以自动读取hive-site.xml等配置文件吗?huaweicloud-mrs-example/SparkHivetoHbase.java at mrs-3.0.2 · huaweicloud/huaweicloud-mrs-example (github.com)这是我举例的代码连接这个是代码中读取hive表数据的代码片段 SparkConf conf = new SparkConf().setAppName("SparkHivetoHbase"); JavaSparkContext jsc = new JavaSparkContext(conf); HiveContext sqlContext = new org.apache.spark.sql.hive.HiveContext(jsc); Dataset dataFrame = sqlContext.sql("select name, account from person");如果在代码中需要设置的话我有一个问题,hive默认的元数据服务是DBService,那hive.metastore.uris这一项应该怎么配置
  • [最佳实践] 如何减少hive的beeline -f 中的info日志
    使用hive执行sql文件beeline -f $file时候,会产生大量的info级别的日志。如何设置日志级别,减少这种日志呢?已经测试了--hiveconf hive.server2.logging.operation.level=NONE但是只对beeline生效,不对beeline -f生效
  • [技术干货] [1142]hive中如何新增字段-转载
    新增字段1、方法1alter table 表名 add columns (列名 string COMMENT '新添加的列') CASCADE; alter table 表名 add columns (列名 string COMMENT '新添加的列');  hive表中指定位置增加一个字段 分两步,先添加字段到最后(add columns),然后再移动到指定位置(change) alter table 表名 add columns (列名 string comment '当前时间'); -- 正确,添加在最后alter table 表名 change 列名 string after 指定位置的列名; -- 正确,移动到指定位置,address字段的后面1234567891011添加之后字段由于hive底层是文件和系列化的设计,因此查数据会发现新增的列在所有已有列的后面CASCADE会刷历史分区字段cascade知识cascade的中文翻译为“级联”,也就是不仅变更新分区的表结构(metadata),同时也变更旧分区的表结构。对于删除操作也是,级联删除表中的信息,当表A中的字段引用了表B中的字段时,一旦删除B中该字段的信息,表A的信息也自动删除。(当父表的信息删除,子表的信息也自动删除)标准语法如下:2、方法2 (适用于外部表)当分区过多的情况下,直接使用alter就行增加字段会报错第一步:删除分区 ,当分区过多可以写个for循环alter table table_name drop if exists partition(par_col=col_name)1第二步:使用alter操作就行添加字段,这时候就不会因为分区过多报错第三步:进行修复分区msck repair table 表名;13、方法3(下下策)创建新表修改表名,进行存储原表数据将原表进行drop,再对新表进行改名操作ALTER TABLE old_name RENAME TO new_name;1修改字段alter table table_name change column 已有列 修改名称 类型 comment '';1删除列Hive不能直接删除列,不然底层系列化就乱了,我们可以通过replace语句来替换整张表的字段,达到同样的效果alter table table_name replace columns(column_1 string);1语句中只写想要保留的字段就可以参考:https://blog.csdn.net/qq_42456324/article/details/120202236https://blog.csdn.net/weixin_51613454/article/details/123400693https://wenku.baidu.com/view/b9c6c8d9f405cc1755270722192e453610665b6c.htmlhttps://blog.csdn.net/hell_oword/article/details/123600004https://blog.csdn.net/m0_48283915/article/details/113318482————————————————版权声明:本文为CSDN博主「周小董」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/xc_zhou/article/details/124872614
  • [问题求助] 【MRS产品】【hetu配置数据源功能】hetu是否能配置hive的内置元数据库数据源
    【功能模块】hetu需要配置内置的hive元数据作为数据源,请问是否支持?是添加为gaussdb数据源吗?或者hive内置元数据库怎么连接呢【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [二次开发] hive元数据库连接
    (1)在hive配置中查到元数据密码,但是是加密状态的,请问怎么获取或者解密密码?(2)元数据库显示的连接地址是浮动IP,想在本地用客户端的方式连接数据库可不可行?(3)如果找不到解密的方法,能不能通过授权的方式创建新的连接账号连接数据库?
  • [问题求助] hive元数据内置到DBService,如何通过sql获取对应的元数据信息
    hive元数据内置到DBService,如何通过sql获取对应的元数据信息
  • [问题求助] hive元数据库Guassdb如何获取元数据信息
    hive元数据库Guassdb如何获取元数据信息
  • [最佳实践] 迁移Hive数据至DLI
    本文为您介绍如何通过CDM数据同步功能,迁移MRS Hive数据至DLI。其他MRS Hadoop组件数据,均可以通过CDM与DLI进行双向同步。前提条件已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。注意:创建DLI队列时队列类型需要选择为“SQL队列”。已创建包含Hive组件的MRS安全集群。创建MRS集群的操作详细可以参考创建MRS集群。本示例创建的MRS集群和各组件版本如下:MRS集群版本:MRS 3.1.0Hive版本:3.1.0Hadoop版本:3.1.1本示例创建MRS集群时开启了Kerberos认证。已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。说明:如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。数据源为云上的MRS、DWS等服务时,网络互通需满足如下条件:i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。本示例CDM集群的虚拟私有云、子网以及安全组和MRS集群保持一致。步骤一:数据准备MRS集群上创建Hive表和插入表数据。参考访问MRS Manager登录MRS Manager。在MRS Manager上,选择“系统 > 权限 > 角色”,单击添加“角色”,在添加角色页面分别配置参数。角色名称:输入自定义的“角色名称”,例如当前输入为:hivetestrole。配置资源权限:选择“当前MRS集群的名称 > hive”,勾选“Hive管理员权限”。图1 Manager创建Hive的角色更多MRS创建角色的操作说明可以参考:创建Hive管理员角色。在MRS Manager上,选择“系统 > 权限 > 用户”,单击“添加用户”,在添加用户页面分别配置如下参数。用户名:自定义的用户名。当前示例输入为:hivetestusr。用户类型:当前选择为“人机”。密码和确认密码:输入当前用户名对应的密码。用户组和主组:选择supergroup角色:同时选择2中创建的角色和Manager_viewer角色。图2 MRS Manager上创建Hive用户参考安装MRS客户端下载并安装Hive客户端。例如,当前Hive客户端安装在MRS主机节点的“/opt/hiveclient”目录上。以root用户进入客户端安装目录下。例如:cd /opt/hiveclient执行以下命令配置环境变量。source bigdata_env因为当前集群启用了Kerberos认证,则需要执行以下命令进行安全认证。认证用户为3中创建的用户。kinit 3中创建的用户名例如,kinit hivetestusr执行以下命令连接Hive。beeline创建表和插入表数据。创建表:create table user_info(id string,name string,gender string,age int,addr string);插入表数据:insert into table user_info(id,name,gender,age,addr) values("12005000201","A","男",19,"A城市"); insert into table user_info(id,name,gender,age,addr) values("12005000202","B","男",20,"B城市"); insert into table user_info(id,name,gender,age,addr) values("12005000202","B","男",20,"B城市");说明:上述示例是通过创建表和插入表数据构造迁移示例数据。如果是迁移已有的Hive数据库和表数据,则可以通过以下命令获取Hive的数据库和表信息。在Hive客户端执行如下命令获取数据库信息show databases切换到对应的数据库下use Hive数据库名显示当前数据库下所有的表信息show tables查询Hive表的建表语句show create table Hive表名查询出来的建表语句需要做一些处理,再到具体的DLI上执行。在DLI上创建数据库和表。登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。在编辑器中输入以下语句创建数据库,例如当前创建迁移后的DLI数据库testdb。详细的DLI创建数据库的语法可以参考创建DLI数据库。create database testdb;创建数据库下的表。create table user_info(id string,name string,gender string,age int,addr string);说明:如果是通过在MRS Hive中的“show create table hive表名”获取的建表语句,则需要修改该建表语句以符合DLI的建表语法。具体DLI的建表语法可以参考创建DLI表。步骤二:数据迁移配置CDM数据源连接。配置源端MRS Hive的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“MRS Hive”,单击“下一步”。图3 创建MRS Hive数据源连接配置源端MRS Hive的数据源连接,具体参数配置如下。表1 MRS Hive数据源配置参数值名称自定义MRS Hive数据源名称。例如当前配置为:source_hiveManager IP单击输入框旁边的“选择”按钮,选择当前MRS Hive集群即可自动关联出来Manager IP。认证类型如果当前MRS集群为普通集群则选择为SIMPLE,如果是MRS集群启用了Kerberos安全认证则选择为KERBEROS。本示例选择为:KERBEROS。Hive版本根据当前创建MRS集群时候的Hive版本确定。当前Hive版本为3.1.0,则选择为:HIVE_3_X。用户名在3中创建的MRS Hive用户名。密码对应的MRS Hive用户名的密码。其他参数保持默认即可。更多参数的详细说明可以参考CDM上配置Hive连接。图4 CDM配置MRS Hive数据源单击“保存”完成MRS Hive数据源配置。配置目的端DLI的数据源连接。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。图5 创建DLI数据源连接配置目的端DLI数据源连接连接参数。具体参数配置可以参考在CDM上配置DLI连接。图6 配置DLI数据源连接参数配置完成后,单击“保存”完成DLI数据源配置。创建CDM迁移作业。登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。在新建作业界面,配置当前作业配置信息,具体参数参考如下:图7 新建CDM作业作业配置作业名称:自定义数据迁移的作业名称。例如,当前定义为:hive_to_dli。源端作业配置,具体参考如下:表2 源端作业配置参数名参数值源连接名称选择1.a中已创建的数据源名称。数据库名称选择MRS Hive待迁移的数据库名称。例如当前待迁移的表数据数据库为“default”。表名待建议Hive数据表名。当前示例为在DLI上创建数据库和表中的“user_info”表。读取方式当前示例选择为:HDFS。具体参数含义如下:包括HDFS和JDBC两种读取方式。默认为HDFS方式,如果没有使用WHERE条件做数据过滤及在字段映射页面添加新字段的需求,选择HDFS方式即可。HDFS文件方式读取数据时,性能较好,但不支持使用WHERE条件做数据过滤及在字段映射页面添加新字段。JDBC方式读取数据时,支持使用WHERE条件做数据过滤及在字段映射页面添加新字段。更多参数的详细配置可以参考:CDM配置Hive源端参数。目的端作业配置,具体参考如下:表3 目的端作业配置参数名参数值目的连接名称选择1.b已创建的DLI数据源连接。资源队列选择已创建的DLI SQL类型的队列。数据库名称选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表中创建的数据库名,即为“testdb”。表名选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表中创建的表名,即为“user_info”。导入前清空数据选择导入前是否清空目的表的数据。当前示例选择为“否”。如果设置为是,任务启动前会清除目标表中数据。更多参数的详细配置可以参考:CDM配置DLI目的端参数。单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。如果字段映射顺序不匹配,可通过拖拽字段调整。如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。CDM支持迁移过程中转换字段内容,详细请参见字段转换。图8 字段映射单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。图9 迁移作业进度和结果查询步骤三:结果查询CDM迁移作业运行完成后,再登录到DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列,数据库选择已1已创建的数据库,执行DLI表查询语句,查询Hive表数据是否已成功迁移到DLI的“user_info”表中。select * from user_info;图10 迁移后查询DLI的表数据
  • [问题求助] IDEA本地连接用Spark连接HIVE的问题,求助!!~
    首先:集群规模是健康的。连接的点是集群外。使用hive的beeline和spark的spark-beeline都能正常连接,和操作。但是用IDEA spark开发就出现问题了代码如下:报错如下:2022-05-27 23:29:21,610 [main] ERROR [org.apache.thrift.transport.TSaslTransport] - SASL negotiation failurejavax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]    at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211)    at org.apache.thrift.transport.TSaslClientTransport.handleSaslStartMessage(TSaslClientTransport.java:94)。。。Caused by: GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)    at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:147)。。。2022-05-27 23:29:21,631 [main] ERROR [org.apache.thrift.transport.TSaslTransport] - SASL negotiation failurejavax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]    at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211)    at org.apache.thrift.transport.TSaslClientTransport.handleSaslStartMessage(TSaslClientTransport.java:94)。。。Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;    at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:107)    at org.apache.spark.sql.hive.HiveExternalCatalog.databaseExists(HiveExternalCatalog.scala:215)。。。Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)    at org.apache.spark.sql.hive.client.HiveClientImpl.newState(HiveClientImpl.scala:185)。。Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient    at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1523)    at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:86)。。。Caused by: java.lang.reflect.InvocationTargetException    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)。。。Caused by: MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure: org.apache.thrift.transport.TTransportException: GSS initiate failed    at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232)    at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:316)    at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)。。。。