Java API操作HA方式下的Hadoop 原

hadoop HA 配置下api读取文件 HA 配置参照:hadoop HA    HADOOP HA 读取api读取文件,与非HA读取文件时在api调用前需要设置的configuration完全不同,因有多个nameservice,因此在api访问hadoop集群前需要明确指定其映射关系。 具体见实例: package com.liangjya.hadoop.cluster.demo; import java.io.Fi 阅读详情


空山苦水禅人
   空山苦水禅人 发布于 2016/10/18 15:38
 
字数 430
 
阅读 1407
 
收藏  3
 
点赞  0
 
 评论  0

通过java api连接Hadoop集群时,如果集群支持HA方式,那么可以通过如下方式设置来自动切换到活动的master节点上。其中,ClusterName 是可以任意指定的,跟集群配置无关,dfs.ha.namenodes.ClusterName也可以任意指定名称,有几个master就写几个,后面根据相应的设置添加master节点地址即可。

	static String ClusterName = "nsstargate";
	private static final String HADOOP_URL = "hdfs://"+ClusterName;
	public static Configuration conf;

    static {
        conf = new Configuration();
        conf.set("fs.defaultFS", HADOOP_URL);
        conf.set("dfs.nameservices", ClusterName);
        conf.set("dfs.ha.namenodes."+ClusterName, "nn1,nn2");
        conf.set("dfs.namenode.rpc-address."+ClusterName+".nn1", "172.16.50.24:8020");
        conf.set("dfs.namenode.rpc-address."+ClusterName+".nn2", "172.16.50.21:8020");
        //conf.setBoolean(name, value);
        conf.set("dfs.client.failover.proxy.provider."+ClusterName, 
        		"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider");
        conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
    }

    

上传文件到HDFS的代码如下,至于读取等其他操作,可以参考网络上其他文章。

    /**
     * 上传文件到HDFS上去
     */
    private static void uploadToHdfs() throws IOException {
        String localSrc = "E:\\test\\article01.txt";
        String dst = "/user/test/article04.txt";
        FileSystem fs = FileSystem.get(URI.create(HADOOP_URL), conf);
        long start = new Date().getTime();

       /* InputStream in = new FileInputStream(localSrc);
        InputStreamReader isr = new InputStreamReader(in, "GBK");
        OutputStream out = fs.create(new Path(HADOOP_URL+dst), true);
        IOUtils.copy(isr, out, "UTF8");*/
        
        //该方法更快
		FSDataOutputStream outputStream=fs.create(new Path(dst));
		String fileContent = FileUtils.readFileToString(new File(localSrc), "GBK");
		outputStream.write(fileContent.getBytes());
        outputStream.close();
        
        long end = new Date().getTime();
        System.out.println("use:"+(end-start));
        
    }

注:如果需要指定hdfs目录或者文件的权限、属主,可以使用如下代码:

System.setProperty("HADOOP_USER_NAME", "username"); //指定属主
fs.setPermission(path, new FsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL)); //给文件path设置权限

 

使用到的jar包如下图,大部分都可以在hadoop的安装包里找到,也可以在maven上下载。

namenode HA hadoop client API写数据操作配置 背景 由于项目需要,需要把数据写入大数据平台的HDFS,大数据平台使用kerberos认证,且做了HA。由于之前没有使用过这种场景,在网上找了一圈,并且踩了几个坑,终于搞定。以下是代码和注释。 代码 public Configuration getConfig() throws Exception { // 设置java安全krb5配置,根据实际情况配置 System.s... 阅读详情

相关推荐

9、hadoop高可用HA集群部署及三种方式验证

本文介绍hadoop HA环境部署。本文分为三部分,即HA集群规划、HA集群部署和HA集群验证前提依赖:1、前提是zookeeper已经部署好,其服务器部署在server1、server2、server3上,且能正常运行2、ssh免登录已完成配置,且完成NameNode和NameNode的相互免密,比如server1和server2是两个NameNode,其相互已经免密。

alanchanchn的专栏 9万+

java 连接hdfs_JAVA API连接HDFS HA的几种方式

hadoop版本:2.7.3使用场景:线上服务写hdfs,写过程中namenode的master节点发生HA切换,为保证写服务不因为连接中断而终止,需要在客户端以nameservices 的方式初始化 FileSystem方式一 :代码里添加配置项# conf.set("key", "value"); key保持不变,value值去core-site.xml 、hdfs-site.xml文件里找C...

weixin_31734677的博客 1527

一生一芯预学习:从零搭建Verilator仿真环境与NVBoard实战

本文详细介绍了如何从零搭建Verilator仿真环境,并完成NVBoard实战项目,为'一生一芯'预学习提供完整指导。内容包括环境配置、工具安装、波形生成、自动化构建及可视化调试技巧,帮助初学者快速掌握数字逻辑设计与仿真验证的核心技能。

keras9composer的博客 701

HA集群实现原理 切换 JAVA_分布式集群HA模式部署

一:HDFS系统架构(二)问题:NameNode的可用性不高,当NameNode节点宕机,则服务终止二:HA架构---提高NameNode服务的可用性架构中至少有两个NameNode节点 (此处以两个NameNode举例)(一)两个NN节点在某个时间只能有一个节点正常响应客户端请求,响应请求的必须为ACTIVE状态的那一台。另一台为standby备用在高可用模式下,这一对NameNode节点,叫做...

weixin_39817122的博客 540

CentOS Stream 9中安装MySQL的详细步骤

本文详细介绍了在CentOS Stream 9系统中如何进行MySQL的在线安装、离线安装以及忘记密码的恢复操作。通过阅读本文,您将能够了解并掌握在CentOS Stream 9上安装MySQL的步骤,以及在遇到忘记密码的情况下的解决方案。

小白典的博客 7258

最邻近点对问题(Closest-Pair Problem):二维的分治解法详解

低维时,最邻近点对问题可以利用分治求解。但是网络上相关资料良莠不齐,对于3维甚至难有有价值的参考。最近恰巧梳理了123维最邻近点对问题的相关知识,故在此分享。这是该系列的第二篇,介绍二维情况的分治解法。

Carl_Rabbit的博客 1万+

Hadoop高可用配置(HA)

高可用配置(HA)

qq_52299578的博客 1977

零基础也能搞定!华为USG6000V防火墙WEB管理界面开启教程

本文详细介绍了华为USG6000V防火墙WEB管理界面的开启教程,从环境准备、网络配置到防火墙初始化,逐步指导用户完成图形化管理界面的搭建。特别适合零基础用户快速掌握企业级防火墙的可视化操作,提升安全管理效率。

grape的博客 788

HA集群实现原理 切换 JAVA_HA(一)高可用集群原理

高可用集群原理LVS集群DR模式简单的架构图如下所示:在上图的架构中,当Director服务器因软件、硬件、人为原因造成故障时,整个集群服务不可用,因此,需要再添加一台服务器实现Director服务高可用。整个系统的架构图如下所示:此时,客户端发送请求经过路由器到达Primary (Active)Director服务器,Primary Director服发务器根据调度规则,将请求发送至不同的Rea...

weixin_36275071的博客 875

最小二乘法(看完即会)

其中,X是数据矩阵,每一行是一个数据点,每一列是一个自变量(包括截距项),Y是观测值向量,β是待求的系数向量。为了找到使S最小的a和b的值,我们需要对S求关于a和b的偏导数,并令它们等于零。最小二乘法的数学公式通常用于线性回归问题,其中目标是找到一条直线(或更高维度的超平面),使得这条直线与给定数据点的误差平方和最小。同样地,通过求偏导数和令偏导数等于零,我们可以得到一个线性方程组,解这个方程组可以找到最优的b_0, b_1, …+ b_m*x_m,其中b_0是截距,b_1到b_m是各个自变量的系数。

qlkaicx的博客 2万+

LLC变压器,常见的4大问题解决方案

其中之一是当付边的绕组的匝数或层数较多的时候,层间或匝间寄生电容和付边的漏感发生一个寄生的振荡,轻载的时候,这个振铃的幅度会达到很高,导致输出电压比设计的要高许多。但当输入是低压的时候,开关频率比较低,LLC谐振回路的增益较大,因而比较容易发生变压器饱和的问题。由于LLC变压器工作在LC谐振状态,LC谐振回路有个特点就是Q值问题,在这里Q值是大于1的,因而就会有实际加在变压器上的电压要比输入电压高的问题,因而在设计变压器的时候就必须考虑到这一点,否则变压器就不是工作在你设计的磁感应强度上。

1266

java hdfs ha_JAVA API连接HDFS HA集群

使用JAVA API连接HDFS时我们需要使用NameNode的地址,开启HA后,两个NameNode可能会主备切换,如果连接的那台主机NameNode挂掉了,连接就会失败. HDFS提供了nameservices的方式进行访问,这样只要有一个NameNode活着,都可以正常访问.HDFS NameNode HA在没有HA的环境中,通常使用NameNode hostname访问HDFS的URL.h...

weixin_39903375的博客 430

机器人中的数值优化(二十一)—— 伴随灵敏度分析、线性方程组求解器的分类和特点、优化软件

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 4206

java hdfs ha_Java API操作HA方式下的Hadoop

通过java api连接Hadoop集群时,如果集群支持HA方式,那么可以通过如下方式设置来自动切换到活动的master节点上。其中,ClusterName是可以任意指定的,跟集群配置无关,dfs.ha.namenodes.ClusterName也可以任意指定名称,有几个master就写几个,后面根据相应的设置添加master节点地址即可。static String ClusterName = "...

weixin_42510460的博客 306

YOLO11有效改进专栏目录

YOLO11改进专栏导航

A1983Z的博客 3686

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java API操作HA方式下的Hadoop

通过java api连接Hadoop集群时,如果集群支持HA方式,那么可以通过如下方式设置来自动切换到活动的master节点上。其中,ClusterName 是可以任意指定的,跟集群配置无关,dfs.ha.namenodes.ClusterName也可以任意指定名称,有几个master就写几个,后面根据相应的设置添加master节点地址即可。......

无一技之长 554

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java API访问hadoop(含HA)--FileSystem

文章目录1 非HA2 HA 1 非HA 直接在URI中写明hdfs地址即可。如: static FileSystem fs; static { try { fs = FileSystem.get(new URI("hdfs://cluster-host1:9000"),new Configuration(),"hadoop"); ...

王小禾 1591

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JAVA API 连接HA方式下的HDFS

private static String ClusterName = "nsstargate"; private static final String HADOOP_URL = "hdfs://"+ClusterName; public static Configuration conf; static { conf = new...

weixin_30363981的博客 394

基于Hadoop HA集群部署HBase HA集群(详细版)

本文介绍Hadoop高可用(HA)集群的部署方法,重点阐述ZooKeeper在Hadoop及HBase高可用架构中的核心作用。文章首先说明ZooKeeper通过临时节点机制实现主从选举,为Hadoop NameNode和HBase Master提供故障转移支持。随后详细讲解ZooKeeper集群的配置步骤,包括myid文件设置和环境变量配置。在Hadoop HA配置部分,文章展示了core-site.xml和hdfs-site.xml的关键参数,特别是ZooKeeper服务地址和nameservice的配置

pysense的博客 5386

Java API访问hdfs集群(HA)

前言 hadoopV2版本及以后都是HA架构,activenamenode和standbynamenode,当前activenamenode出现问题之后,zkfc会切换standbynamenode为active状态保证hadoop集群正常运行,所以javaapi需要通过配置HA的方式来访问hdfs集群; 使用方式 对于namenode是HA高可用集群时,客户端远程访...

breakout_alex的博客 1705

java 连接hadoop集群_JAVA API连接HDFS HA集群

使用JAVA API连接HDFS时我们需要使用NameNode的地址,开启HA后,两个NameNode可能会主备切换,如果连接的那台主机NameNode挂掉了,连接就会失败. HDFS提供了nameservices的方式进行访问,这样只要有一个NameNode活着,都可以正常访问.HDFS NameNode HA在没有HA的环境中,通常使用NameNode hostname访问HDFS的URL.h...

weixin_39815286的博客 1262

【Hadoop】HA 场景下访问 HDFS JAVA API Client

客户端需要指定ns名称,节点配置,ConfiguredFailoverProxyProvider等信息。 代码示例: package cn.itacst.hadoop.hdfs; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; impo...

afei2530的博客 207

大数据之五 hadoop HDFS HA集群客户端+eclipse(java API)配置

搭建好HDFS HA集群后 配置客户端来操作HDFS HA集群 配置eclipse(java API)来操作HDFS集群

xingyao231的博客 1394

hadoop hdfs HA 场景下JAVA API Client访问 HDFS

同事在用hdfs api 写入hdfs文件,2年前没有成功,这次一起解决了这个问题。详细代码如下: 客户端需要指定ns名称,节点配置,ConfiguredFailoverProxyProvider等信息。 代码示例: package cn.itacst.hadoop.hdfs; import java.io.FileInputStream; import java.io.InputS...

张伟的专栏 822

协处理器系统集成实战:从架构选型到量产的关键技术

在异构计算与嵌入式系统设计中,协处理器通过任务卸载提升系统效率,其核心原理在于主处理器与专用加速单元之间的高效协作。系统集成涉及接口协议、数据通路、中断同步与缓存一致性等关键技术,直接影响整体吞吐与实时性。合理的设计可显著降低主处理器负载,广泛应用于图像处理、加密引擎、神经网络推理等场景。协处理器系统集成的本质是异构协作系统设计,需从架构选型、任务划分到调试验证全链路把控,才能实现从实验室到量产的跨越。

weixin_34025051的博客 433
上一篇: DRUID: kafka-indexing-service如何使用
下一篇: druid如何用利用tranquity server 向druid发送实时数据
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值