日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过JAVA对HDFS进行操作管理插件

發(fā)布時間:2024/6/30 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过JAVA对HDFS进行操作管理插件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

建立連接,導包

如果不用maven,解壓hadoop安裝包,share==>hadoop==>common==>lib ?里面的全部復制粘貼過去, share==>hadoop==>hdfs==>lib ?里面的全部復制粘貼過去。

如果用maven,maven repository中搜索hadoop,找到common,找到對應版本

?

復制到pom.xml

?

再導入hadoop Client

?

第一步建立連接,連接namenode

之前通過linuxhdfs配置時,在core-site.xml中,配置

?

連接的是namenode

現(xiàn)在用myeclipse,書寫運行文件,先對文件進行讀操作:

HDFSClient.java

?

package com.neuedu.test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path;public class HFDSClient {public static void main(String[] args) {// TODO Auto-generated method stub read();}public static void read(){//-------連接namenode://1、創(chuàng)建一個配置對象(與配置文件是一個原理)Configuration conf=new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.71.141:9000");//set配置對象Path path=new Path("/hadoop/abc.txt");//讀文件//FileSystem fs=new //發(fā)現(xiàn)方法不能用,因為它為抽象方法,在不能用情況下,創(chuàng)建對象時方法很陌生且不能用,調(diào)用一下靜態(tài)方法,看哪個可以返回try {FileSystem fs=FileSystem.get(conf);//只用來連接namenode//因為是讀文件,需要返回一個輸入流FSDataInputStream input = fs.open(path);//f 為一個路徑,告訴它文件在哪 //返回了一個流//讀文字可以轉(zhuǎn)化為字符流,轉(zhuǎn)換:InputStreamReader isr=new InputStreamReader(input);//如果想按行讀,BufferedReader br=new BufferedReader(isr);//開始讀String str=br.readLine();//按行讀while(str!=null){//只要不為空 System.out.println(str);str=br.readLine();//每輸出一行,讀一次 }br.close();isr.close();input.close();//流都需要關(guān)閉} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}} }

?

之后運行,結(jié)果:

?

查看文件是否正確:

現(xiàn)在對文件進行寫操作,分為追加和直接寫入

追加方法:

public static void append(){Configuration conf=new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.71.141:9000");//set配置對象try {FileSystem fs=FileSystem.get(conf);FSDataOutputStream outpustream = fs.append(new Path("/hadoop/abc.txt"));//在哪個文件上追加outpustream.writeBytes("123123123");outpustream.close();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}

之后再讀一下,看看是否寫成功:

直接寫入的形式:

//寫入:直接寫入public static void write(){Configuration conf=new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.71.141:9000");//set配置對象try {FileSystem fs=FileSystem.get(conf);FSDataOutputStream outpustream = fs.create(new Path("/hadoop/abc.txt"));//在哪個文件上追加outpustream.writeBytes("123123123");outpustream.close();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}

通過read()查看結(jié)果:

?


因為來回切換函數(shù)查看文件內(nèi)容很不方便,在此進行配置DFS Location,方便對hdfs進行管理:

?

先將復制到myeclipse根目錄的plugins中,

重啟myeclipse重啟之后,點擊windows==>show view==>other==>會多出一個視圖

雙擊此視圖,右擊新建,

出現(xiàn)視圖,能夠顯示hdfs中的文件目錄,查看文件內(nèi)容

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/610553824lyx/p/9307769.html

總結(jié)

以上是生活随笔為你收集整理的通过JAVA对HDFS进行操作管理插件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。