-
springboot调用hdfs1 HDFS简介HDFS(Hadoop Distribute File System)是一个适合运行在通用硬件之上,具备高度容错特性,支持高吞吐量数据访问的分布式文件系统,非常适合大规模数据集应用2 样例背景HDFS的业务操作对象是文件,代码样例中所涉及的文件操作主要包括创建文件夹写文件追加文件内容读文件删除文件/文件夹HDFS还有其他的业务处理,例如设置文件权限等,其他操作可以在掌握本代码样例之后,再扩展学习。3 Windows环境样例调用步骤环境准备https://bbs.huaweicloud.com/forum/thread-88552-1-1.html比对时间,与集群时间误差不能超过5分钟检查 C:\Windows\System32\drivers\etc\hosts文件中是否包含所有集群节点的域名IP映射信息在IDEA打开样例代码中的hdfs-springboot目录,默认会自动下载依赖,如未下载,选中该目录下的pom.xml文件,右键点击“Add As Maven Project”后等待项目自动将依赖下载完毕从Manager界面下载用户认证凭据后,解压缩获取秘钥文件user.keytab和krb5.conf从客户端 /opt/client/HDFS/hadoop/etc/hadoop 目录中获取core-site.xml和hdfs-site.xml把上面获取的user.keytab\krb5.conf\core-stie.xml\hdfs-site.xml四个文件放到统一目录下配置application.properties中的用户名和配置文件存放目录(第7步文件的目录)打开测试类 HDFApplication.java, 文件右键执行Run 运行代码调用接口 POST cid:link_0创建hdfs目录4 Linux环境调试步骤完成Windows环境样例调用步骤在windows环境中执行打包检查linux环境时间与集群误差不超过5分钟检查linux环境的JDK版本为1.8检查linux环境的/etc/hosts文件中包含所有集群节点的域名IP映射信息创建样例执行路径,例如/opt/hdfstest上传windows环境打包后生成的target目录下的 hdfd-springboot-1.0-SNAPSHOT.jar 包到/opt/hdfstest目录上传windows环境中调试通过后的配置文件到/opt/hdfstest/conf目录配置application.properties中的用户名和配置文件存放目录(/opt/hdfstest/conf/)执行如下命令启动服务java –jar hdfs-springboot-1.0-SNAPSHOT.jar
-
1、请问是不是大数据组件认证Kerberos要安装认证的客户端吗,搞不清楚怎样认证的,样列代码比较简单?2、我们使用的FusionInsight MRS3.1.2 版本样例工程 Git 下载地址为:https://github.com/huaweicloud/huaweicloud-mrs-example , redis看demo就认证这点代码,demo是jedis,,redis是华为的jar包吗?可以使用springboot redis吗?/** * 初始化操作 * * @throws IOException IOException */ public static void init() throws IOException { System.setProperty("redis.authentication.jaas", "false"); if (System.getProperty("redis.authentication.jaas", "false").equals("true")) { LoginUtil.setKrb5Config(getResource("config/krb5.conf")); principal = "admintest@" + KerberosUtil.getKrb5DomainRealm(); LoginUtil.setJaasFile(principal, getResource("config/user.keytab")); // System.setProperty("SERVER_REALM","hadoop.com"); } }3、请问elasticsearch使我看到demo好像要用华为的jar包,下载地址在哪?4、请问hbase和kafka的user.keytab文件是同样的吗?5、kafka可以使用springboot的吗?6、最重要是java开发请求认证需要安装客户端吗?下载地址在哪?看不懂认证的流程,基本都只是System.setProperty7、krb5.conf的acl_file,dict_file, key_stash_file里面配置的地址是客户端还是服务器的的地址,
-
[互动交流] MRS 3.1.2-LTS.3有Kerberos认证,flink在停止任务时候报zk keeperErrorCode = Session closed because client failed to authenticate for停止任务命令:flink stop d173e065c36b4385f2d386fb6e480274 -p obs://ddos/AIAE/savepoint/tianmen/ -yid application_1676631574356_0854报错截图 keeperErrorCode = Session closed because client failed to authenticate for /flink_base/flink zk截图
-
背景:由于有些场景在启用Ranger情况下,客户在分配权限时候对高权限有特别要求,尽可能给用户设置低权限,无法在ranger中设置用户为 is Role admin权限(hive管理员权限)测试版本:MRS-3.1.2版本(hive启用ranger鉴权)操作流程:1、在Ranger中配置用户具有udf创建查看权限以rangeradmin用户登录Ranger——>点击hive添加一个新的策略创建策略(注意步骤2可以选择指定库,步骤3中默认是table要选成udf,值可以定义为*)(步骤4选择添加的用户,步骤5中至少要给create权限,drop权限为删除udf函数权限可选是否给)2、在客户端安装节点,把UDF函数jar包打包(如AddDoublesUDF.jar),并上传到HDFS指定目录下(例如“/user/hive_examples_jars”)。创建函数的用户与使用函数的用户都需要具有该文件的可读权限。示例语句:hdfs dfs -put ./hive_examples_jars /user/hive_examples_jarshdfs dfs -chmod 777 /user/hive_examples_jars3、安全模式,需要使用具有udf create管理权限的用户登录beeline客户端,执行如下命令:kinit Hive业务用户beeline4、在Hive Server中定义该函数,以下语句用于创建永久函数:(其中addDoubles是该函数的别名,用于SELECT查询中使用)CREATE FUNCTION addDoubles AS 'com.huawei.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar';以下语句用于创建临时函数:CREATE TEMPORARY FUNCTION addDoubles AS 'com.huawei.bigdata.hive.example.udf.AddDoublesUDF' using jar 'hdfs://hacluster/user/hive_examples_jars/AddDoublesUDF.jar';•addDoubles是该函数的别名,用于SELECT查询中使用。•关键字TEMPORARY说明该函数只在当前这个Hive Server的会话过程中定义使用。5、在Hive Server中使用该函数,执行SQL语句:SELECT addDoubles(1,2,3);6、在Hive Server中删除该函数,执行SQL语句:DROP FUNCTION addDoubles;
-
线下版的MRS,没有HCS的接口调用如何用程序提交Spark任务到Yarn上并获取提交任务的ID
-
日志信息如下,请专家帮忙看看,谢谢
-
生产现有一张1600列的hudi标签表,测试加工写3列的数据(第一列客户号,第100列,最后一列统计日期)其余列均为空串,单纯地select from操作,数据量在4000万-5000万。资源给的超量,写入时间在12-20分钟才能完成。但是改成hive parquet的1600列表,只用1.2分钟就能完成。hudi版本是0.9麻烦专家提供些hudi的优化思路,谢谢。
-
HCS 8.2.0 新装MRS服务 创建集群报:MRS 3.2.0-LTS(该集群版本支持的规格不可用或已下线),查阅一些文档,检查磁盘类型和可用区资源标签都没有问题。
-
[互动交流] Router-based Federation后,hdfs命令报错Cannot locate a registered namenode for ns01 from xxx.xxx.xxx.xxx:25019Router-based Federation后,hdfs命令报错Cannot locate a registered namenode for ns01 from xxx.xxx.xxx.xxx:25019
-
落霞与孤鹜齐飞,秋水共长天一色
-
hive全部案例集合见维护宝典:https://support.huawei.com/hedex/hdx.do?docid=EDOC1100222546&lang=zh&idPath=22658044|22662728|22666212|22396131(FusionInsight HD&MRS租户面集群故障案例(6.5.X-8.X)->维护故障类->hive->常见故障)hive经典案例、总结、重大问题见下表:经典案例分类序号案例出现频次sql优化1.1Hive sql写法问题导致结果异常合集(一)★★1.2Hive sql写法问题导致结果异常合集(二)★★1.3Hive sql写法问题导致运行慢问题合集(一)★★★★1.4Hive sql写法问题导致运行慢问题合集(二)★★★★1.5Hive sql写法问题导致运行慢问题合集(三)★★★★服务异常2.1Hiveserver启动成功,但页面显示状态故障★★2.2Metastore启动故障,报failed to initizlize master key★★2.3Metastore启动故障,报user hive does not belong to hive★★★★
-
Flink全部案例集合见维护宝典:https://support.huawei.com/hedex/hdx.do?docid=EDOC1100222546&lang=zh&idPath=22658044|22662728|22666212|22396131 (FusionInsight HD&MRS租户面集群故障案例(6.5.X-8.X)->维护故障类->Flink->常见故障)经典案例分类序号案例出现频次现网经典案例1.1关于table.exec.state.ttl参数的生效机制★★客户端安装常见问题2.1Flink客户端配置方法(维护宝典:维护类故障(维护类故障(6.5.X-8.X)>Flink>FAQ>下载并配置Flink客户端)★★★★★2.2升级后任务提交失败,报zk节点权限不足(维护宝典:维护类故障(6.5.X-8.X)>Flink>任务提交常见故障>FusionInsight HD大版本从6.5.1升级到8.x版本后任务提交失败)★★★★★2.3开启ssl后,正确的提交方式(维护宝典:维护类故障(6.5.X-8.X)>Flink>任务提交常见故障>创建Flink集群时执行yarn-session.sh命令失败)★★★★★
-
Flink的table.exec.state.ttl参数说明:Flink SQL 新手有可能犯的错误,其中之一就是忘记设置空闲状态保留时间导致状态爆 炸。列举两个场景:➢ FlinkSQL 的 regular join(inner、left、right),左右表的数据都会一直保存在 状态里,不会清理!要么设置 TTL,要么使用 FlinkSQL 的 interval join。➢ 使用 Top-N 语法进行去重,重复数据的出现一般都位于特定区间内(例如一小时 或一天内),过了这段时间之后,对应的状态就不再需要了。Flink SQL 可以指定空闲状态(即未更新的状态)被保留的最小时间,当状态中某个 key 对应的状态未更新的时间达到阈值时,该条状态被自动清理:基于811版本测试,测试SQL的代码如下: EnvironmentSettings.Builder builder = EnvironmentSettings.newInstance(); builder.inStreamingMode(); builder.useBlinkPlanner(); EnvironmentSettings settings = builder.build(); StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime); StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env, settings); env.enableCheckpointing(6000L); env.setStateBackend(new RocksDBStateBackend("hdfs:///xxxx));//启用hdfs状态后端 env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE); env.getCheckpointConfig().setCheckpointTimeout(600000L); env.getCheckpointConfig().setMaxConcurrentCheckpoints(1); env.getCheckpointConfig().setFailOnCheckpointingErrors(false); env.getCheckpointConfig().enableExternalizedCheckpoints(CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION); Configuration configuration = tableEnv.getConfig().getConfiguration(); configuration.setString("table.exec.state.ttl","10000"); String sqlTable_1 = "CREATE TABLE source1 (\n" + " name varchar(10),\n" + " vaa varchar(10),\n" + " ts AS PROCTIME()\n" + ") WITH (\n" + " 'connector' = 'kafka',\n" + " 'topic' = 'user_source1',\n" + " 'properties.bootstrap.servers' = 'kafka:21005',\n" + " 'properties.group.id' = 'testGroup',\n" + " 'scan.startup.mode' = 'latest-offset',\n" + " 'format' = 'csv'\n" + ")"; String SqlTable_2 = "" + "CREATE TABLE source2 (\n" + " name varchar(10),\n" + " vaa varchar(10),\n" + " ts AS PROCTIME()\n" + ") WITH (\n" + " 'connector' = 'kafka',\n" + " 'topic' = 'user_source2',\n" + " 'properties.bootstrap.servers' = 'kafka:21005',\n" + " 'properties.group.id' = 'testGroup',\n" + " 'scan.startup.mode' = 'latest-offset',\n" + " 'format' = 'csv'\n" + ")"; String inputTable="create table p (\n" + " name1 varchar(10),\n" + " name2 varchar(10),\n" + " vaa1 varchar(10),\n" + " vaa2 varchar(10)\n" + ") with ('connector' = 'print')"; String sql = "insert into\n" + " p\n" + "select\n" + " source1.name,\n" + " source2.name,\n" + " source1.vaa,\n" + " source2.vaa\n" + "FROM\n" + " source1\n" + " join source2 on source1.name = source2.name"; //创建表1 tableEnv.executeSql(sqlTable_1); //创建表2 tableEnv.executeSql(SqlTable_2); //创建输出表 tableEnv.executeSql(inputTable); //执行结果 tableEnv.executeSql(sql); 执行sql的代码片段如下:在这个用例中我们使用的TTL时间参数为10s失效。当同时输入:topic:user_source1 的数据 zs,aaa topic:user_source2的数据zs,bbb 结果如下:但是输入:topic:user_source1 的数据ls,aaa 间隔大于10s后输入 topic:user_source2的数据ls,bbb未出现结果:从测试结果来看:(1)常规联接是最通用的联接类型,其中任何新记录或对联接任一侧的更改都是可见的,并且会影响整个联接结果。例如左边有一条新记录,当product id 相等时,它会与右边所有以前和以后的记录合并。SELECT * FROM OrdersINNER JOIN ProductON Orders.productId = Product.id对于流式查询,常规连接的语法是最灵活的,并且允许任何类型的更新(插入、更新、删除)输入表。但是,此操作具有重要的操作含义:它需要将连接输入的两侧永远保持在 Flink 状态。因此,计算查询结果所需的状态可能会无限增长,具体取决于所有输入表和中间连接结果的不同输入行的数量。(2)如果设置了TTL的时间后,过了TTL时间后,之前的状态数据会被删除。
-
我是企业用户,需要如题
-
FusionInsightHD651用spark读取mysql需要在集群上装mysql驱动吗?要怎么装?
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
即将直播
热门标签