這篇文章主要介紹“hadoop3 Java client客戶端認證的方法是什么”,在日常操作中,相信很多人在hadoop3 Java client客戶端認證的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”hadoop3 Java client客戶端認證的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
hadoop集群升級hadoop3,并需要Kerberos認證,hadoop3代碼包做了合并,引用jar包如下:
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.1.1</version> </dependency>
認證方法
Configuration config = new Configuration(); config.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); config.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER"); //開始Kerberos認證 String krb5File = "/etc/krb5.conf"; System.setProperty("java.security.krb5.conf", krb5File); config.set("hadoop.security.authentication", "kerberos"); //添加集群默認配置(非必須) configuration.addResource(new Path("/etc/hadoop/conf/hdfs-site.xml")); configuration.addResource(new Path("/etc/hadoop/conf/core-site.xml")); UserGroupInformation.setConfiguration(config); try { UserGroupInformation.loginUserFromKeytab(kerUser, keyPath); } catch (IOException e) { e.printStackTrace(); } //結束Kerberos認證 URI uri = new URI("hdfs://集群名或namenode ip地址"); /** * 代碼指定集群名和namenode節點 *conf.set("fs.defaultFS", "hdfs://yiie"); *conf.set("dfs.nameservices","yiie"); *conf.set("dfs.ha.namenodes.yiie", "nn1,nn2"); *conf.set("dfs.namenode.rpc-address.yiie.nn1", "192.168.116.116:8020"); *conf.set("dfs.namenode.rpc-address.yiie.nn2", "192.168.116.116:8020"); *conf.set("dfs.client.failover.proxy.provider.yiie","org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"); *conf.setBoolean("dfs.ha.automatic-failover.enabled",true); * */ FileSystem.get(uri, config);
到此,關于“hadoop3 Java client客戶端認證的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。