• 开启HDFS NodeLabel ,有哪些坑?需要重点注意那块影响?
    环境:FusionInsight HD 6513背景:     1. 原集群datanode 机器基本为ARM,且配置较高,设备较新;     2. 现有一批低性能、低配置X86主机,需扩容到集群中;计划:启动HDFS NodeLabel 功能,对HDFS 目录进行打标签,将后扩容主机设置成指定标签目录的主机,以此来规避机器异构可能出现的负载不均等问题。需求:      1. 帮忙确认一下该方案是否可行,是否有更好的方案。      2. 如果此方案可行,是否有需要注意的方向,是否有踩坑案例(越详细越好)可以提供一下。烦请社区的大佬,帮帮忙!
  • [生态对接] 使用greenplum-spark connect连接器遇到的坑
       我最近开发了一个maven项目,想使用spark读取/写入greenplum的数据,但是由于jdbc的传输速度限制。所以想采用greenplum-spark connect这个连接器。当我使用--jars将项目和这个依赖包一起提交上去的时候出现了jar包冲突 报错:classnotfound。所以我又尝试使用jarjar.jar修改相应的包名    但是现在又出现了新的问题,代码中的postgresql依赖找不到对应的class类名报错。   既然外部没办法搞定就从内部项目入手 ……  由于这个依赖属于第三方并不是maven仓库官方提供所以没法加载进入项目中。我尝试加入私有仓库然后再放入我的本地项目中使用maven-shade-plugin将类名包名重定向。不知道是不是第三方依赖的原因,只要提交到cluster上后就会显示找不到类,相当于没有加上这个greenplum-spark依赖。请各位大佬看看是什么原因。 我这边在本地用idea或者Local模式提交都是可以成功的
  • [问题求助] FusionInsight_Manager_6.5.1在openEuler-20.03-LTS-SP1上安装第七步生成密钥失败
    问题现象:/var/log/Bigdata/controller/scriptlog/install.log然后定位到日志/var/log/Bigdata/controller/controller.log日志中执行krb5的命令失败,manager内放了一个krb5组件。kadmin.local命令由FusionInsight_Manager/software/om/package/ometa/kerberos/scripts/genkeytab.sh中执行,ometa目录是解压了FusionInsight-ometa-2.7.0.tar.gz。尝试替换krb5的版本无法使用在genkeytab.sh脚本里面加sleep不生效请问有哪位大佬了解这块吗,咨询一下krb5执行失败的原因
  • [问题求助] FusionInsight HD的管理平台上的role 所拥有的权限如何在后台/接口查询?权限粒度到表/视图/topic/目录等。
    需求:       想后台方式批量查找FusionInsight HD的管理平台Manager 上的role 角色,都授权了哪些服务,哪些权限。例, 查询A 角色授权了哪些服务和权限,A权限拥有哪些组件权限,Hive组件,有哪些库权限,哪些表/视图权限;HDFS组件,哪些目录有读写权限等。
  • [运维管理] FusionInsight HD 6513 在线升级 FusionInsight HD 6517版本 需要多长时间?怎么评估的?
    FusionInsight HD 6513 在线升级 FusionInsight HD 6517版本  需要多长时间?怎么评估的?
  • [运维管理] FusionInsight HD 6513升级 FusionInsight HD 6517版本,是否支持部分组件(如kafka 、zookeeper)在线升级,其他组件离线升级?
    FusionInsight HD 6513升级 FusionInsight HD 6517版本,是否支持部分组件在线升级,其他组件离线升级?
  • Spark跨集群读HDFS写入ES样例代码(saveJsonToES接口)
    说明:使用开源的接口saveJsonToES写ES记录一下使用代码方式读A集群(161)的hdfs数据写入B集群(71)的es。使用样例代码自带的接口, 实际上用样例代码自带saveJsonToEs 接口写数据, 核心是让写es的代码不要放在远端,否则报错。所以是用71集群的客户端来提交命令的,这个任务起在71集群的yarn上面的需要做的操作如下1.    首先集群161和集群71双边配置互信提交的spark任务要提交到71集群上面,意味着需要用71对端集群的客户端来提交jar包2.    需要修改71对端客户端spark的配置文件/opt/client/Spark2x/spark/conf/spark-defaults.conf修改地方加​写成161集群的主namenode+25000形式,写两次3.    代码里面读hdfs的地方写成主namenode+25000方式读数据4.    然后打jar包,在后台提交的时候创建路径全部提交过程中都使用对端71集群的user.keytab和krb5.conf文件。 jars路径下面放对应jar包elasticsearch-spark-30_2.12-7.12.0jar包就是接口saveJsonToEs 需要的Jar包5.    然后提交的后台路径准备的文件esParams.properties是用来连ES的然后用命令 zip conf.zip krb5.conf user.keytab esParams.properties打包提交命令:cd /opt/sparkMultiEStestspark-submit --master yarn --deploy-mode client --class com.huawei.bigdata.spark.examples.SparkOnEs --keytab /opt/sparkMultiEStest/user.keytab --principal sandbox@HUAWEI.COM --files ./user.keytab --archives /opt/sparkMultiEStest/conf.zip#conf --jars ./jars/elasticsearch-spark-30_2.12-7.12.0.jar,./jars/fastjson-1.2.4.jar /opt/sparkMultiEStest/SparkOnEs-1.0.jar去71集群检查es结果FAQSpark读hdfs的时候没问题Spark写ES的时候报错报错原因是标的参数要注释掉,不注释会报上面错误
  • [最佳实践] Spark跨集群读HDFS写入ES样例代码(highlevelclient接口)
    跨集群读HDFS写入ES说明集群A:xx.xx.xx.161-163 (域为:HADOOP.COM)集群B:xx.xx.xx.71-73 (域为:HUAWEI.COM)MRS版本:8.2.0.1任务说明:A、B集群已配置互信,使用B集群的keytab进行认证,在A集群的client客户端提交代码,从集群A读取HDFS数据,写入到集群B的ES中注意:如未特别注明,均在A集群上主节点操作准备工作1、将集群B的/etc/hosts路径下节点配置,追加到集群A的/etc/hosts2、下载集群B的user.keytab,krb5.conf传到A集群的/opt/sandbox目录下3、cd到A集群的/opt/sandbox目录下,执行如下命令,通过A集群的客户端,使用B集群的keytab文件连接B集群的ES,确保执行成功,证明集群A和集群B已互信source /opt/client/bigdata_env kinit -kt user.keytab sandbox@HUAWEI.COM curl -XGET --tlsv1.2 --negotiate -k -u : 'https://xx.xx.xx.71:24100/_cat/indices?v'只要不报错,就代表互信已经验证通过4、下载样例配置文件esParams.properties传到/opt/sandbox目录下,修改esServerHost属性为集群B的对应ip端口,以及其他的用户密码,esindex配置项5、使用如下命令,生成conf.zip压缩包zip conf.zip user.keytab krb5.conf esParams.properties6、将样例代码打成jar包,放到/opt/sandbox目录下7、将样例数据people.json上传到集群A的HDFS文件系统的/user/spark-on-es/路径下people.json数据{"id":"1","name":"jack","age":12,"createdTime":"2008-06-10T10:28:55Z"} {"id":"2","name":"pony","age":22,"createdTime":"2009-07-13T20:18:52Z"} {"id":"3","name":"susan","age":11,"createdTime":"2012-12-08T12:29:37Z"} {"id":"4","name":"micheal","age":13,"createdTime":"2015-10-09T16:53:26Z"} {"id":"5","name":"vordas","age":14,"createdTime":"2018-03-21T17:28:15Z"}8、在/opt/sandbox/jar路径下放入依赖jar包fastjson-1.2.4.jarspark-submit --master yarn --deploy-mode client --class com.huawei.bigdata.spark.examples.SparkOnEs --keytab /opt/sandbox/user.keytab --principal sandbox@HUAWEI.COM --files ./user.keytab --archives /opt/sandbox/conf.zip#conf --jars ./jars/fastjson-1.2.4.jar /opt/sandbox/spark2es.jar说明: --class com.huawei.bigdata.spark.examples.SparkOnEs,为样例代码中主类的全类名--keytab /opt/sandbox/user.keytab, 为集群B的认证文件user.keytab--principal sandbox@HUAWEI.COM,为集群B的用户名@域名--files ./user.keytab, 为集群B的认证文件--archives /opt/sandbox/conf.zip#conf,为集群B的认证文件user.keytab,krb5.conf,esParams.properties./jars/fastjson-1.2.4.jar,为样例代码的依赖jar包/opt/sandbox/spark2es.jar, 为样例代码打成jar包后的路径位置查看结果9、在A集群的客户端执行curl -XGET --tlsv1.2 --negotiate -k -u : 'https://xxx.xx.x.71:24100/_cat/indices?v' curl -XGET --tlsv1.2 --negotiate -k -u : 'https://xxx.xx.x.71:24100/people/_search?pretty'命令查看结果 注意:xxx.xx.x.71为集群B节点ip,people为数据的索引
  • [运维管理] HD 线下6.5.1.7版本集群,hdfs 将副本临时调整1后再调回3会发生什么现象?
    HD 线下6.5.1.7版本集群,hdfs 将副本临时调整1后再调回3会发生什么现象?
  • [环境搭建] 线下HD 6517版本 ,扩容hbase是否可以只扩容一台?
    线下HD 6517版本 ,扩容hbase是否可以只扩容一台?
  • [运维管理] habse 每次写入提交的条数多少条合适?为什么?
    habse 每次写入提交的条数多少条合适?为什么?
  • [运维管理] flume 怎么实现平替--CDL?
    flume 怎么实现平替--CDL?
  • [环境搭建] 为什么不建议Flume和DataNode部署在同一节点?为什么会存在数据不均衡的风险?
    为什么不建议Flume和DataNode部署在同一节点?为什么会存在数据不均衡的风险?
  • Python对接Kafka安全模式
    Python对接安全kafka相关版本MRS: 820Kafka版本: 2.4.0Python相关依赖 Python: 3.8.8Python相关依赖./pip3 freeze | grep kafkaconfluent-kafka==2.2.0 kafka==1.3.5 kafka-python==2.0.2./pip3 freeze | grep krbticketkrbticket==1.0.6./pip3 freeze | grep gssapigssapi==1.8.3Producer代码from krbticket import KrbConfig, KrbCommand import os from kafka import KafkaProducer import json jaas_conf = os.path.join('', '/opt/kafka_jaas.conf') krb5_conf = os.path.join('', '/opt/sandbox/krb5.conf') user_name = 'sandbox' keytab_conf = os.path.join('', f'/opt/sandbox/user.keytab') jaas_conf = os.path.join( '/opt/kafka_jaas.conf') os.environ['KRB5CCNAME'] = os.path.join('', f'/tmp//krb5cc_0') kconfig = KrbConfig(principal='sandbox@HADOOP.COM', keytab=keytab_conf) KrbCommand.kinit(kconfig) os.environ['KAFKA_OPTS'] = f'-Djava.security.auth.login.config={jaas_conf}' \ f' -Djava.security.krb5.conf={krb5_conf}' producer = KafkaProducer(bootstrap_servers=['xxx.xxx.xx.xx:21007'], security_protocol='SASL_PLAINTEXT', sasl_mechanism='GSSAPI', sasl_kerberos_service_name='kafka', sasl_kerberos_domain_name='hadoop.hadoop.com', api_version=(2,4,0)) import json msg = json.dumps("haha").encode() producer.send('aaa',msg)注意:需准备认证的有户名,keytab文件,krb5.conf文件创建kafka_jaas.conf文件,内容参考KafkaClient { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true principal="sandbox@HADOOP.COM" keyTab="/opt/sandbox/user.keytab" useTicketCache=false serviceName="kafka" storeKey=true debug=true; };需要检查集群域名,配置sasl_kerberos_domain_name参数,默认是hadoop.hadoop.com,如果集群更改域名需更改注意api_version参数和MRS kafka版本对应produce生产数据的时候要对数据value做序列化,参考代码最后写入json转码部分kafka topic名字是aaa测试效果:消费结果Consumer代码from kafka import KafkaConsumer from kafka import KafkaProducer from kafka.errors import KafkaError import sys from krbticket import KrbConfig, KrbCommand import os from kafka import KafkaProducer import json jaas_conf = os.path.join('', '/opt/kafka_jaas.conf') krb5_conf = os.path.join('', '/opt/sandbox/krb5.conf') user_name = 'sandbox' keytab_conf = os.path.join('', f'/opt/sandbox/user.keytab') jaas_conf = os.path.join( '/opt/kafka_jaas.conf') os.environ['KRB5CCNAME'] = os.path.join('', f'/tmp//krb5cc_0') kconfig = KrbConfig(principal='sandbox@HADOOP.COM', keytab=keytab_conf) KrbCommand.kinit(kconfig) os.environ['KAFKA_OPTS'] = f'-Djava.security.auth.login.config={jaas_conf}' \ f' -Djava.security.krb5.conf={krb5_conf}' consumer2 = KafkaConsumer('aaa', bootstrap_servers=['xxx.xx.x.xxx:21007'], security_protocol='SASL_PLAINTEXT', sasl_mechanism='GSSAPI', auto_offset_reset='earliest', group_id='python_mfa_group', sasl_kerberos_service_name='kafka', sasl_kerberos_domain_name='hadoop.hadoop.com', api_version=(2,4,0)) for message in consumer2: # message value and key are raw bytes -- decode if necessary! # e.g., for unicode: `message.value.decode('utf-8')` print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition, message.offset, message.key, message.value))查看效果客户端生产查看结果FAQ创建consumer报错 问题原因:需要在代码中做kerberos认证,以及确认kafka版本填入到API参数中 在produce数据的时候报错: 问题原因,该方法produce是需要序列化,参考下图更改 在produce数据的时候超时报错:同时consume的时候报错:问题原因:Python依赖gssapi没有安装,使用如下命令安装./pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple gssapi
  • [问题求助] CTBase Java 连接失败
    如何获取HD 6.5.1 CTBase Java API 二次开发指导文档或样例代码?
总条数:206 到第
上滑加载中