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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

eclipse远程连接hadoop_Hadoop之HDFS基本操作实验

發布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse远程连接hadoop_Hadoop之HDFS基本操作实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊上方藍色字關注我們!

Hadoop是一款開源的大數據通用處理平臺,其提供了分布式存儲和分布式離線計算。Hadoop由HDFS、YARN、MapReduce組成。

Hadoop分布式文件系統(HDFS)是一種分布式文件系統(Distributed File System)。HDFS具有高度容錯性,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。

HDFS其實是將一個大文件分成若干塊保存在不同服務器的多個節點中。通過聯網讓用戶感覺像是在本地一樣查看文件,為了降低文件丟失造成的錯誤,HDFS會為每個小文件復制多個副本(默認為3個),以此來實現多機器上的多用戶分享文件和存儲空間。

HDFS體系結構

HDFS采用了主從(Master/Slave)結構模型,一個HDFS集群是由一個NameNode和若干個DataNode組成的。其中NameNode作為主服務器,管理文件系統的命名空間和客戶端對文件的訪問操作;集群中的多個DataNode負責管理存儲的數據。

塊大小:Hadoop2版本里一個塊默認為128M,小文件也占用一個塊,小文件越多,塊越多。因此,HDFS中不適合存儲小文件。

副本個數:保存多個副本(默認3個),提供容錯機制,一個副本丟失或宕機,自動恢復。

01

實驗目的

熟悉HDFS基本命令行操作

使用Java 接口,通過Java程序讀取HDFS中的文件

02

實驗環境

云服務器1臺:(華為云、阿里云、騰訊云等等均可)

操作系統:CentOS7.4 64位

系統配置:2核4G以上

感謝華為云提供云服務器支持!

03

實驗步驟

》》實驗資源

操作系統:CentOS 7

JDK:JDK8

Hadoop:2.8.5

Github地址:https://github.com/my-ss-course/BigData

工具包地址:鏈接: https://pan.baidu.com/s/1nOvFQGj12N3ODNilOYMYjg 密碼: r8qo

已經按照前面的教程搭建好3個節點的Hadoop偽分布式集群

1

登錄遠程云服務器

使用本地客戶端連接遠程云服務器

2

啟動Hadoop集群

如已啟動hadoop容器,請忽略本步驟

./start_container.sh

進入hadoop-node1節點的容器

docker exec?-it hadoop-node1 /bin/bash

3

通過命令行方式操作HDFS文件系統

01命令行接口格式格式1:hadoop fs -命令 路徑

格式2:hdfs dfs -命令 路徑02ls命令hdfs dfs -ls?/

03put命令

將本地文件上傳到HDFS中。

hdfs dfs -put?/usr/local/hadoop-2.8.5/NOTICE.txt /input/

04get命令

將HDFS中文件下載到本地

hdfs dfs -get?/input/README.txt ./
hdfs dfs -get?/input/README.txt README2.txt
hdfs dfs -get?/input/README.txt

05rm命令

刪除文件

hdfs dfs -rm /input/README.txt

刪除目錄

hdfs?dfs -rm -r /output

06mkdir命令

創建目錄

hdfs dfs -mkdir?/output

創建多級目錄,使用-p參數

hdfs dfs -mkdir?-p?/output/abc/123

07cp命令hdfs dfs -cp?/input/NOTICE.txt /input/NOTICE2.txt

08mv命令hdfs dfs -mv /input/NOTICE.txt /input/NOTICE3.txt

09cat命令hdfs dfs -cat?/input/NOTICE3.txt

4

使用Java?API操作HDFS文件系統中數據

01

新建IntelliJ IDEA下的maven項目

  • 點擊File->New->Project,在彈出的對話框中選擇Maven

  • JDK選擇相應的版本,點擊Next

  • 填寫Maven的GroupId和ArtifactId,可以隨便填寫

  • 項目名可填寫HDFSTest

  • 編輯pom.xml添加hadoop依賴

<dependencies>
????????<dependency>
????????????<groupId>org.apache.hadoopgroupId>
????????????<artifactId>hadoop-hdfsartifactId>
????????????<version>2.8.5version>
????????dependency>
????????<dependency>
????????????<groupId>org.apache.hadoopgroupId>
????????????<artifactId>hadoop-clientartifactId>
????????????<version>2.8.5version>
????????dependency>
????dependencies>

02

編寫代碼

新建一個class,增加如下實驗代碼

public?static?void?main(String[] args) throws IOException {
????????System.out.println("hello world");
????????Configuration conf=new?Configuration();
????????conf.set("fs.defaultFS","hdfs://你的云服務器的IP:19000或hadoop-node1節點的IP:9000");
????????FileSystem hdfs =FileSystem.get(conf);
????????boolean is_success = hdfs.mkdirs(new?Path("/helloByJava"));
????????if(is_success){
????????????System.out.println("success");
????????}else{
????????????System.out.println("failure");
????????}
????????hdfs.close();
}

注意要把安全組以及防火墻中的端口打開。

直接運行程序的結果如下

警告先忽略,因為沒有配置log4j

可以看到能夠在HDFS中成功創建了一個目錄。

這這這也太不安全了吧???

可以直接訪問我的HDFS

03

打包發布

1、pom.xml文件中增加如下代碼,用于編譯打包

<build>
????????<plugins>
????????????<plugin>
????????????????<artifactId>maven-compiler-pluginartifactId>
????????????????<version>2.3.2version>
????????????????<configuration>
????????????????????<source>1.8source>
????????????????????<target>1.8target>
????????????????configuration>
????????????plugin>
????????????<plugin>
????????????????<artifactId>maven-assembly-plugin artifactId>
????????????????<configuration>
????????????????????<descriptorRefs>
????????????????????????<descriptorRef>jar-with-dependenciesdescriptorRef>
????????????????????descriptorRefs>
????????????????????<archive>
????????????????????????<manifest>
????????????????????????????<mainClass>com.myhadoop.HelloWorldmainClass>
????????????????????????manifest>
????????????????????archive>
????????????????configuration>
????????????????<executions>
????????????????????<execution>
????????????????????????<id>make-assemblyid>
????????????????????????<phase>packagephase>
????????????????????????<goals>
????????????????????????????<goal>singlegoal>
????????????????????????goals>
????????????????????execution>
????????????????executions>
????????????plugin>
????????plugins>
build>

注意:代碼中mainClass需要根據打包的具體類修改

2、在IDEA右側欄中選擇Maven Projects,打開Lifecycle文件夾,先點擊compile再點擊package,等待jar打包成功。

3、jar包打完之后打開左側target文件夾,發現有兩個jar包,把無依賴的jar包復制到hadoop-node1節點內

拷貝到hadoop-node1節點

4、在hadoop-node1節點下執行命令

hadoop jar? ?jar包名? classname

hadoop?jar?hadoop-1.0.jar?com.myhadoop.HelloWorld

???

END

每天進步一點點

讓我知道你在看

總結

以上是生活随笔為你收集整理的eclipse远程连接hadoop_Hadoop之HDFS基本操作实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。