(一)在eclipse中新建一個java項目,就普通建一個java項目就可以,然后添加hadoop的依賴包
(二)打開后選擇add Exernal jars
添加hadoop的包,包的位置如下(/usr/local/hadoop/是我的hadoop路徑)
/usr/local/hadoop/share/hadoop/common下所有jar包
/usr/local/hadoop/share/hadoop/common/lib下所有jar包
/usr/local/hadoop/share/hadoop/hdfs下所有jar包
/usr/local/hadoop/share/hadoop/hdfs/lib下所有jar包
(三)現在就可以開始編碼了但是一定要先把hadoop打開,命令是在你的hadoop路徑下./sbin/start-all.sh,輸入jps可以驗證是否打開了hadoop
(1)判斷hdfs上是否存在某文件代碼如下
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HDFS_Judge_exist { public static void main(String[] args){ try{ String fileName = "input/test"; Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://localhost:9000"); conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); FileSystem fs = FileSystem.get(conf); if(fs.exists(new Path(fileName))){ System.out.println("文件存在"); }else{ System.out.println("文件不存在"); } }catch (Exception e){ e.printStackTrace(); } } }
(2)往HDFS中插入某一個文件代碼如下
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; public class HDFS_insert { public static void main(String[] args) { // TODO Auto-generated method stub try { Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://localhost:9000"); conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem"); FileSystem fs = FileSystem.get(conf); byte[] buff = "Hello world".getBytes(); // 要寫入的內容 String filename = "input/test1.txt"; //要寫入的文件名 FSDataOutputStream os = fs.create(new Path(filename)); os.write(buff,0,buff.length); System.out.println("Create:"+ filename); os.close(); fs.close(); } catch (Exception e) { e.printStackTrace(); } } }
(3)查詢hdfs的文件內容
import java.io.BufferedReader; import java.io.InputStreamReader; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.FSDataInputStream; public class HDFS_readFile { public static void main(String[] args) { try { Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://localhost:9000"); conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem"); FileSystem fs = FileSystem.get(conf); Path file = new Path("input/test.txt"); FSDataInputStream getIt = fs.open(file); BufferedReader d = new BufferedReader(new InputStreamReader(getIt)); String content = d.readLine(); //讀取文件一行 System.out.println(content); String content1 = d.readLine(); //讀取文件一行 System.out.println(content1); String content2 = d.readLine(); //讀取文件一行 System.out.println(content2); d.close(); //關閉文件 fs.close(); //關閉hdfs } catch (Exception e) { e.printStackTrace(); } } }
(四)下面介紹如何把Java應用程序生成JAR包,部署到Hadoop平台上運行。首先,在Hadoop安裝目錄下新建一個名稱為myapp的目錄,存放jar包。命令:kdir myapp
(1)點擊eclipse導航條中File-Export
(2)點擊next
第一個Launch Configuration用於設置生成的JAR包被部署啟動時運行的主類,點擊三角形在下拉列表中選擇就好了。
第二個是讓我們填入包存放的路徑,選擇我們剛才新建的myapp路徑
(3)點擊finish
點擊finish的過程中會出現報錯,不要管他直接點確認,哪兩個錯誤提示不影響后面操作
(4)在hadoop的路徑下輸入:./bin/hadoop jar ./myapp/HDFS_Judge_exist.jar
這條命令是指我們要使用hadoop,通過jar包的方式,jar包的位置在當前目錄下/myapp/HDFS_Judge_exist.jar的地方