• [其他问题] 【MRS】【Flink】1.12版本服务能直接放1.10环境跑吗?
    【功能模块】fusioninsight8.1.2的flinkdemo工程丢到8.0.2的环境跑【操作步骤&问题现象】1、打包8.1.2 接收kafka消息样例代码,flink版本是github开源版本1.12.2(华为的版本1.12.2-hw-ei-312005有的jar包没有,就没用)2、在8.0.2客户端(flink版本1.10)上运行flink run --class com.huawei.bigdata.flink.examples.ReadFromKafka FlinkKafkaJavaExample.jar --topic xxx-bootstrap.server 10.xxx.xxx.xxx:210053、报错【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [其他] Funsioninsinght MRS咨询问题FAQ
    问题分类链接地址HDFSYarnFlinkKafkaClickHouseHBaseCDLSparkHudiElasticSearchlotDBloaderHive
  • [赋能学习] FunsionInsight MRS License专栏
    1、MRS产品主流版本License计算规则?C80及之前版本是按照节点数计算,除管理节点外;651系列版本是按照hcore计算,即1个hcore对应一个x86物理核。例如:2路8核X86服务器,单节点计算方式是以16个hcore为准;8.x系列版本是按照vcpu计算,即2个vcpu对应一个鲲鹏物理核。例如:2路32核鲲鹏服务器,单节点计算方式是以64个vcpu为准;说明:2路8核的x86服务器,是16个hcore(物理核数),32个vcpu(虚拟核数)2路32核的鲲鹏服务器,是32个hcore(物理核数),64个vcpu(虚拟核数)2、MRS产品License使用期限?情况1:集群部署后没有加载license或者加载后没有激活,上报“无合法license告警”,90天免费试用期结束后禁止运维操作,禁止扩容;情况2:价值固定期限license,在有效期前60天会上报“license即将过期告警”,有效期结束会上报“license不合法告警-超期”,禁止节点扩容,60天宽限期结束后禁止运维操作;3、MRS产品License超期后有何限制?license超期后,禁止运维操作、禁止升级操作、禁止扩容;常用的运维操作包括manager管理界面服务启停、用户管理、授权以及参数配置等;4、安装部署时未导入license时是否存在部署上的限制?集群部署除了硬件配置以及节点数等常规要求外,对license无要求,但是集群部署成功后没有导入license会上报“无合法License导入”告警;5、部署的资源超出既定license的资源(例如license限制100vCPU,但部署时集群的vCPU超过100),在导入license时会做何限制?当部署的集群实际资源超过license申请的资源,会上报license不合法告警,并且禁止节点扩容;超过60天宽限期后会禁止维护操作;反过来则不会存在影响;6、可转售的产品版本?目前MRS支持的转售offering:融合数据湖版本、湖仓一体版;7、转售产品不同版本间的差异?湖仓一体版:高价值版本高价值特性版本,主打跨湖跨域场景的高级能力融合数据湖版:竞争力构筑版本Lakehouse架构,实现离线/实时数据湖融合建设,实时分析融合大数据平台版(不提供转售):能力平移版本继承6.5.1版本能力+ 组件版本升级8、大数据产品license的种类有哪些,其差别是什么?651及之前的版本license主要分为标准版跟高级版,8.x版本分为融合大数据平台版(不提供转售),融合数据湖版本、湖仓一体版;商务升阶路径:HD 6.5.1标准版可通过购买版本升级包1+升级服务+版本升级包2+版本升级包3升级到湖仓一体版HD 6.5.1高级版可通过购买升级服务+版本升级包2+版本升级包3升级到湖仓一体版9、大数据产品售卖模式有哪些,例如订阅、license等,续约时如若需要变更规格或模式有何限制?转售类型:类型一(只转售软件):伙伴经过华为研发及服务评审,具备交付能力的,可以选择购买伙伴的交付部署服务。类型二(转售软件+专业服务):在伙伴早期不具备能力的情况下允许购买华为原厂专业服务。License支持升级及变更,可以通过ESDP统一平台上面完成;license升级分为自主升级(集群跨版本升级)及商务升级(标准版升级到高级版)11、开发测试环境的license要求如何,若提供免费开发测试环境license如何取得license?可以申请临时license,有效期分为30、60、90天,最长3个月;12、MRS产品License情况总体介绍?
  • [问题求助] DIS添加转储MRS任务时填写HDFS路径显示无效的
    而实际这个路径在集群界面的文件管理里是存在的,求大佬帮助这里DIS转储到MRS的HDFS路径怎么填
  • [二次开发] 【mrs产品】【hive功能】springboot启动可以登录zk,hive连接执行语句报错
    [Thread-44] DEBUG cn.hsa.ims.engine.bo.impl.DataPreprocessionBOImpl2.genFilterCriteriaTmpTableSql(160) - 生成筛选条件临时表SQL:create table TMP_MDTRT_D_15000020220420143641111001 as select xxx [Thread-44] INFO  cn.hsa.ims.bigdata.odps.HuaweiJdbcClient.submit(58) - Hive的入参:create table TMP_MDTRT_D_15000020220420143641111001 as select xxx[Thread-44] INFO  org.apache.hadoop.hive.conf.HiveConf.findConfigFile(198) - Found configuration file null[Thread-44] WARN  org.apache.hadoop.hive.conf.HiveConf.initialize(5430) - HiveConf of name hive.s3a.locals3.jceks does not exist[Thread-44] INFO  org.apache.hadoop.hive.conf.HiveConf.initTimeZoneIsLocal(5471) - current conf hive.parquet.time.zone.isLocal=true[Thread-44] ERROR com.alibaba.druid.pool.DruidDataSource.init(973) - {dataSource-4} init error
  • [二次开发] 【mrs1】【Hive二次开发】怎么用druid管理hive连接,代码实例中xml和jaas.conf没看出有什么用?
    mrs中hive二次开发,怎么使用druid管理hive连接。代码例子core-site.xml和user.hive.jaas.conf没看出有什么用。JDBCExamplePreLogin比JDBCExample 多了login。登录和不登录有什么区别?不需要写LoginUtil.setJaasConf、LoginUtil.setZookeeperServerPrincipal、LoginUtil.login也可以连接hive用spark引擎执行语句吗?
  • [问题求助] 作业开发-restClient模块如何操作MRS的es索引
    现在想在数据开发模块,定时用RestClient组件,操作MRS的es删除固定索引。MRS集群是安全模式。应该如何配置呢?
  • [问题求助] 【MRS产品】【hive功能】报错 return code 2 from org.apache.hadoop.hive.ql
    使用cdm导入10G的数据进入hive,表A,parquest格式,压缩lzo。在hdfs里面生成的是一个10G左右的文件。然后创建格式一模一样的表B,执行语句, insert overwrite table 表B select * from表A,将表A数据插入到表B一份。表B在HDFS的形式是一些256M大小的文件,大约四十多个。现在执行select count(1) from 表A ,结果是:40086390select count(1) from 表B,报错,报错是:Error while processing statement FAILED Execution Error code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask计算引擎是MR。
  • [技术干货] 技术经理给我安排了一个上古时期的Tomcat项目,Tomcat中的bat批处理脚本源码分析,还好我是练过的,基础的底层知识掌握了
    【摘要】 前几天部门的技术经理给我分配了一个任务,叫我一个人去维护之前上古时期的Java Wbe项目,这个项目其实是一个前置机程序,负责消息的`加解密、加签验签`和消息的`转发`;这个程序部署于Servlet容器中,用的是Tomcat服务,并且这个Tomcat服务我们公司的运维人员不知道怎么操作链接:https://bbs.huaweicloud.com/blogs/344107@[TOC]前言:前几天部门的技术经理给我分配了一个任务,叫我一个人去维护之前上古时期的Java Wbe项目,这个项目其实是一个前置机程序,负责消息的加解密、加签验签和消息的转发;这个程序部署于Servlet容器中,用的是Tomcat服务,并且这个Tomcat服务我们公司的运维人员不知道怎么操作,说配置的步骤太多了,之前有一个人配置成功了,但是离职了,写的文档也模糊不清,现在他们都不知道咋配置,1000-9999人的公司,这个运维人员不大行,算了不吐槽了(⊙﹏⊙)!运维人员和笔者说,这个前置机程序是运行在客户那边的,最好是不需配置环境变量等其他操作,做到一键点击即可启动Tomcat服务。这样古老项目的维护难度又提高了亿丢丢。笔者解压缩了之前项目的压缩包后,看了一下,发现启动的步骤是用的Tomcat的startup.bat批处理文件(Windows系统)进行启动的,下面会详细讲。好了,下面进入正文:1.idea自动反编译class文件,在idea中我们也可以查看字节码的源代码首先之前开发的源码已经丢失了,只有编译后的class文件;当我拿到程序编译后的class文件后,用idea打开,idea自带反编译功能,如下是小demo(公司的代码不能向外界提供,所以这里提供了一个小demo):比如我打开JDK中的Integer类,上面说到过用idea打开是自动进行了反编译的结果,如下:那么如何查看反编译前的字节码文件呢,我们在idea中也可以查看,如下操作:(点击View–>Show Bytecode)字节码文件的内容如下:好说到这里,咋们就打住,关于如何查看字节码的内容,这个咋们之后再聊(会写一篇关于这个的博文)。回到主题,刚开始说了,idea自动进行的反编译,还好之前的项目写的代码不多,看了半天代码后,理清思路,然后又花费一天时间,写代码,自测,修改,又自测,终于写好了,自测通过;接下来的任务就是之前运维提到的,去掉项目启动前环境变量配置的过程,优化一系列的操作,做到点击startup.bat批处理文件即可一键启动Tomcat服务。2.如何做到一键点击startup.bat批处理文件启动Tomcat服务2.1startup.bat批处理文件如下是Tomcat的文件目录,关于Tomcat目录的讲解,可以参考笔者之前的博文:https://blog.csdn.net/MrYushiwen/article/details/113383917因为是点击startup.bat批处理文件进行启动的,我第一反应就是用文本编辑器打开startup.bat文件,点击进入bin目录下,bin目录如下,等会讲解红色框中的三个批处理文件:找到startup.bat批处理文件,用文本编辑器打开,具体内容如下(嘿嘿,之前有写过批处理脚本的我还是看得懂的哈,看不懂的小伙伴可以参看下面的章节三,关于批处理文件的讲解零基础快速入门):第一个红色框这条语句是检测CATALINE_HOME的值,如果不为空,就跳转到gotHome标记出执行。可以看到在这个批处理文件中,多次用到了CATALINA_HOME变量,这个变量我们可以在环境变量中进行配置,关于环境变量深入的理解,可以参考笔者这篇博文:https://blog.csdn.net/MrYushiwen/article/details/120509711,因为在批处理文件中用到了这个CATALINE_HOME变量,它可以取自环境变量,也可以用set命令给CATALINE_HOME变量赋值;所以之前我们需要设置如下环境变量才可以运行:第二个红框设置变量EXECUTABLE的值为CATALINE_HOME变量下的bin包下的catalina.bat批处理文件,这个EXECUTABLE在第三步中会用到。第三个红框用call命令进行调用,启动EXECUTABLE环境变量所指向的程序,即catalina.bat。好了,startup.bat批处理文件讲解完了,如果我们不想配置环境变量CATALINE_HOME的值,根据上面提到的我们只需要在startup.bat批处理文件头部加上set CATALINE_HOME=xxx(注意等号后面不允许有空格,本人踩过坑)即可,这样就不会从环境变量值获取该值了,直接在批处理文件中就有定义,如下(笔者的路径就是本项目的Tomcat,即就是解压缩之后的文件所在的路径):2.2catalina.bat批处理文件上面提到过startup.bat批处理文件会用call命令调用catalina.bat批处理文件,我们用文本编辑器打开catalina.bat批处理文件,如下:第一个红色框,可以看到在catalina.bat批处理文件中也同样用到了CATALINE_HOME这个变量,如果我们不想配置环境变量,同样也可以在文件的开始处加上set CATALINE_HOME=xxx即可。第二个红色框,用call命令调用了setclasspath.bat批处理文件。同样我们不想配置环境变量,在文件的开始处加上set CATALINE_HOME=xxx即可,如下:2.3setclasspath.bat批处理文件接下来我们点进setclasspath.bat批处理文件中查看,如下:第一个红框中可以看到setclasspath.bat批处理文件用到了JAVA_HOME和JRE_HOME这两个变量,如果们配置了环境变量,可以从环境变量中取,我们也可以用set命令在文件头部指定(如下图一),我们指定了就不需要配置Java的环境变量了,当然JDK需要放到Tomcat的目录中去(如下图二),虽然文件大了点,但是方便了用户。这样就做到了不需要配置环境变量,通过startup.bat批处理文件一键启动Tomcat服务。<image src=https://img-blog.csdnimg.cn/ffc9fc72cbbf43d88184f302119217a4.png > </image>图一<image src=https://img-blog.csdnimg.cn/224af50a00b14161ae3f0ebc85a17aad.png > </image>图二2.4复盘根据上面的2.1 、2.2、2.3的分析,我们现在总结一下:bin目录下的startup.bat—调用—>catalina.bat—调用—>setclasspath.bat说明:tomcat的startup.bat脚本主要用来判断环境,找到catalina.bat脚本源路径,将启动命令参数传递给catalina.bat执行;setclasspath.bat检查各种变量是否赋值,验证tomcat启动停止需要涉及到的文件,保障tomcat顺利启动停止;catalina.bat脚本使用了大量的判断,使用if作为参数的输入判断,核心的启动命令其实就是java命令。我们在startup.bat、catalina.bat和setclasspath.bat这三个批处理文件中用set操作对需要用到的变量进行赋值,这样就不需要再去配置环境变量了。3.bat批处理文件零基础快速入门我们以Tomcat中的startup.bat为例进行讲解:(其中rem为注释,大部分rem已被笔者删掉),文件内容如下:对上述的脚本一行行的分析(大家耐心看完,绝对会有很大的收获,如果对命令不是很了解的话,可以看下该篇文章进行学习:批处理命令教程;然后在过来看笔者这里写的,妥妥地保姆级别分析源码):@echo off默认情况下,批处理文件将在运行时显示其命令。 这第一个命令的目的是关闭这个显示。 “echo off”命令会关闭整个脚本的显示,除了“echo off”命令本身之外。前面的“@”符号使命令也适用于自己。if "%OS%"=="Windows_NT" setlocal这是个if语句。在命令行中执行help if就可以打印出if语句的使用帮助,大家可以多看下手册。这里这条语句的作用是检查OS环境变量的值是否是Windows_NT,如果条件成立,则执行setlocal。setlocal这是开始批处理文件中环境改动的本地化操作。在执行SETLOCAL之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的SETLOCAL命令,都会有一个隐含的ENDLOCAL被执行。set CURRENT_DIR = %cd%这条语句是设置变量CURRENT_DIR 的值为当前目录(两个百分号可以取变量的值),比如C:\Users\yushiwenif not "%CATALINE_HOME%"=="" goto gotHome这条语句是检测CATALINE_HOME的值,如果不为空,就跳转到gotHome标记(标签)处执行。(用冒号+字符表示标记,比如第8条的 :gotHome)set CATALINA_HOME=%CURRENT_DIR%把CATALINA_HOME的值设置为CURRENT_DIR变量的值,两个百分号可以取变量的值。if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHomecd ..set CATALINA_HOME=%cd%cd %CURRENT_DIR%6、7、8、9一起讲:如果catalina.bat是存在的,就跳转到okHome标记处开始往下继续执行,如果catalina.bat不存在,先cd到当前目录的上级目录,然后设置CATALINA_HOME变量为cd变量所对应的值(注意上一步已经执行了cd …,返回了上级目录,此时的目录是之前目前的上级目录)。:gotHome标记,goto命令用来跳转,上面的第4条语句用到了该标记。if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome判断指定的文件是否存在,存在就跳转到okHomeecho The CATALINA_HOME environment variable is not defined correctlyecho命令用于在命令行中显示echo后面的字符内容echo This .....echo命令用于在命令行中显示echo后面的字符内容goto end和上面的11.if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome一起看,如果if条件不成立,就跳转到end标记处,继续往下执行,其实就是结束了此次批处理命令。:okHome标记,goto命令用来跳转,上面的第11条语句用到了该标记。set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat设置EXECUTABLE变量的值if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHomeecho Cannot find ......eco This file ......goto end:okExec17、18、19、20、21一起看:如果catalina.bat还是不存在的话,就在命令行窗口回显两句话,然后跳转到end标记处,继续往下执行,其实就是结束了此次批处理命令。如果catalina.bat存在,就跳转到okExec标记(标签)处,继续往下执行。set CMD_LINE_ARGS=清空CMD_LINE_ARGS变量的值:setArgs标记,goto命令用来跳转,下面的第27条语句用到了该标记,起到了循环的作用。if ""%1""=="""" goto doneSetArgs检查%1是否为空,如果为空就表示没有参数了,设置参数结束,跳转至doneSetArgs标记处;如果不为空就把%1指向的参数追加到CMD_LINE_ARGS这个环境变量中。图A图B图C图Dset CMD_LINE_ARGS=%CMD_LINE_ARGS% %1把%1指向的参数追加到CMD_LINE_ARGS这个环境变量中shiftshift指令是移位参数,使%1指向了下个参数goto setArgs跳转到setArgs,检查%1是否为空,如果不空,继续追加参数。:doneSetArgs标记(标签),goto命令用来跳转,上面的第24条语句用到了该标记,起到了结束循环的作用。call "%EXECUTABLE%" start %CMD_LINE_ARGS%调用EXECUTABLE环境变量所指向的程序,即catalina.bat,其后跟的第一个参数是start,表示启动Tomcat,如果是stop,则停掉Tomcat,第二个参数是把CMD_LINE_ARGS作为参数传递进去;:end标记,可以用goto命令跳转到此处,直接结束此处批处理命令。能坚持到这里,相信大家一定会有所收获,另外,如果觉得笔者写得还八错,期待后续的博文可以点波关注哈!知我所能,我所能者,尽善尽美; 知我所不能,我所不能者,虚怀若谷!我是喜欢分享知识、喜欢写博客的YuShiwen,与大家一起学习,共同成长!咋们下篇博文见。
  • [二次开发] 【MRS3.1.2产品】【elasticsearch中HwRestClient方法功能】能否通过封装一个Properties对象
    【功能模块】Rest Client客户端样例中HwRestClient 默认从代码运行路径的conf目录下读取配置文件:esParams.properties、krb5.conf 和 user.keytab 能否通过在客户端连接集群中能否通过封装一个Properties对象来实现连接。【操作步骤&问题现象】二次开发elasticsearch组件在客户端连接集群 开放出来一个构造方法,支持传入一个Properties对象,进行构造client对象,并且把那些time超时类型的设置,给定一些默认值,我需要修改就在Proper中传递,不需要就直接使用你们的默认值,用简单的方式能够快速的构造出es的client对象【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [二次开发] 【MRS3.1.2】【loader restAPI功能】删除job接口调用失败:&quot;message&quot;: &quot;登录的用户还未被验证。&quot;
    【操作步骤&问题现象】参考MRS API接口文档里的Loader REST API接口”/v1/job/[jid] - [DELETE] - Delete Job“在删除job时失败。提示:{"message":"登录的用户还未被验证。"}说明:1. 在调用"/v1/job/[jid] - [DELETE] - Delete Job"前,已成功调用"/v1/login - [POST] - Login To The Loader"并获取token    /v1/login - [POST] - Login To The Loader    Login to the Loader. After login success, the response includes a Token. Other API need bring this token.2. 携带login获取到的token并能成功调用如下api    /v1/connector/[cid] - [GET] - Get Connector     /v1/framework - [GET]- Get Loader Framework【截图信息】--贴不了图1. curl调用$ curl -X DELETE --tlsv1.2 --negotiate -k -u : "https://192.168.0.14:21351/loader/v1/job/1" \> -H 'Loader-user-name:hxxxx' \> -H 'Content-Type:application/json' \> -H 'Cookie:hadoop.auth="u=HTTP&p=HTTP/192.168.0.14@HADOOP.COM&t=kerberos&e=1648228796749&s=AyPLROl3wDVkY2LRIHGh5tZMJm3bM4TBqrL0mQ1la0U="'{"message":"登录的用户还未被验证。"}2. postman调用返回如下{    "message": "登录的用户还未被验证。"}【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] bat批处理之字符串操作
    对于字符串的截取set testStr=abcdefghijklmnopqrstuvwxyz0123456789echo 原始字符串 %testStr%echo 提取前五个字符串:%testStr:~0,5%echo 提取最后五个字符串:%testStr:~-5%echo 提取第一个到倒数第六个字符串:%testStr:~0,-5%echo 提取五个字符串,从第四个字符开始:%testStr:~3,5%字符串的替换echo 替换之前:%repStr%echo 替换后:%repStr:aa=zz%echo repStr=%repStr%set "repStr=%aa:aa=zz%"echo repStr=%repStr%字符串合并set aa=aabbccset bb=ddeeffecho %aa%%bb%echo aa=%aa%echo bb=%bb%set "aa=%aa%%bb%"echo aa=%aa%字符串查找Setlocal ENABLEDELAYEDEXPANSION::启用命令扩展,参加setlocal /?命令set str1=This is a test stringset ch1=t::注意,这里是区分大小写的!set str=%str1%::复制字符串,用来截短,而不影响源字符串:nextif not "%str%"=="" (set /a num+=1if "!str:~0,1!"=="%ch1%" goto last::比较首字符是否为要求的字符,如果是则跳出循环set "str=%str:~1%"goto next)set /a num=0::没有找到字符时,将num置零:lastecho 字符'%ch1%'在字符串"%str1%"中的首次出现位置为%num%echo 输出完毕,按任意键退出&&pause>nul&&exit
  • [基础组件] 【MRS产品】【Flink功能】table api的maven信息是什么
    <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-scala_2.11</artifactId> <version>1.10.0-hw-ei-302002</version></dependency>这个报错,找不到这个这个。我配置的settings是    <mirror>      <id>huaweicloud</id>      <mirrorOf>*,!HuaweiCloudSDK</mirrorOf>      <url>https://repo.huaweicloud.com/repository/maven/</url>    </mirror>是哪里错了吗?
  • [生态对接] 伙伴使用MRS HIVE连接时失败
    伙伴使用驱动连接MRS HIVE时连接失败,原因目前定位出是因为驱动生成的服务端pricipal在kdc数据库中不存在,需要根据节点名重新生成principal,求指导
  • [问题求助] 【MapReduce产品】【创建群集功能】HCS803环境部署MRS成功之后遇到Insufficient permissions
    【功能模块】SEQ上云测试_HCS803环境部署MRS成功之后遇到Insufficient permissions创建群集的故障,Insufficient permissions. Contact administrator to obtain permission: [mrs:cluster:create]【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)