天天看點

Hodoop HDFS NFS GateWay 挂載到其他機器深入詳解

0、前提有三台機器:

10.0.1.31 為Hadoop NameNode節點機器。

10.1.1.36為Hadoop DataNode節點機器。

10.1.111.13為非Hadoop機器。

目前查到的資料裡面顯示HDFS NFS GateWay的挂載方式為:

參考:

https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsNfsGateway.html
[root]# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync localhost:/ /hdfs_y            

1、本機挂載方式正常

http://blog.csdn.net/laoyang360/article/details/50865025

以下完成了Hdfs路徑挂載到本地。

[root@WEB-W031 hdfsnew]# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync 10.0.1.31:/ /hdfs_2
[root@WEB-W031 hdfsnew]# 
[root@WEB-W031 hdfsnew]# 
[root@WEB-W031 hdfsnew]# 
[root@WEB-W031 hdfsnew]# cd /hdfs_2
[root@WEB-W031 hdfs_2]# ls -al
total 12
drwxr-xr-x 9 root 2584148964 288 Mar 16 16:30 .
drwxr-xr-x 34 root root 4096 Mar 17 10:02 ..
drwxr-xr-x 2 root 2584148964 64 Mar 16 15:01 dl
drwxr-xr-x 3 root 2584148964 96 Mar 16 16:23 input
drwxr-xr-x 2 root 2584148964 64 Mar 16 16:22 output
drwxr-xr-x 4 hadoop 2584148964 128 Mar 16 16:30 output2
drwxr-xr-x 4 root root 128 Mar 11 18:05 testing
drwxrwx--- 3 hadoop 2584148964 96 Mar 9 11:14 tmp
drwxr-xr-x 3 hadoop 2584148964 96 Mar 9 13:24 user
[root@WEB-W031 /]# mount
10.0.1.31:/ on /hdfsnew type nfs (rw,sync,nfsvers=3,proto=tcp,nolock,noacl,addr=10.0.1.31)
10.0.1.31:/ on /hdfs_2 type nfs (rw,sync,nfsvers=3,proto=tcp,nolock,noacl,addr=10.0.1.31)           

采取直接挂載到其他機器目錄的方式會報錯:(不支援如下挂載,網上也沒有類似的挂載方式)

[root@WEB-W031 hdfsnew]# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync 10.0.1.31:/ 10.1.1.36:/hdfs_2
mount.nfs: Input/output error           

2、【最終挂載方法】在Hadoop的DataNode節點挂載會ok(如下機器IP為10.1.1.36)

以下完成了NameNode10.0.1.31節點挂載到DataNode節點。

[root@Processor036 hdfs36]# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync 10.0.1.31:/ /hdfs_2

[root@Processor036 hdfs36]# cd /hdfs_2

[root@Processor036 hdfs_2]# ls -al

total 12

drwxr-xr-x 9 root 2584148964 288 Mar 16 16:30 .

drwxr-xr-x 33 root root 4096 Mar 17 10:02 ..

drwxr-xr-x 2 root 2584148964 64 Mar 16 15:01 dl

drwxr-xr-x 3 root 258

4148964 96 Mar 16 16:23 input
drwxr-xr-x 2 root 2584148964 64 Mar 16 16:22 output
drwxr-xr-x 4 hadoop 2584148964 128 Mar 16 16:30 output2
drwxr-xr-x 4 root root 128 Mar 11 18:05 testing
drwxrwx--- 3 hadoop 2584148964 96 Mar 9 11:14 tmp
drwxr-xr-x 3 hadoop 2584148964 96 Mar 9 13:24 user           

3、在非Hadoop機器的另外機器上挂載方法同2

以下完成了NameNode10.0.1.31節點挂載到非Hdaoop節點(10.1.111.13)。

[root@ 13]# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync 10.0.1.31:/ /hdfs_13           

4、如何在非Hadoop的機器上操作Hadoop賬号建立的檔案?

初始10.1.111.13上面并沒有hadoop使用者,

是以:建立的檔案的uid 和 gid會顯示666(原有10.0.1.31上的hadoop賬号的uid和gid)。

修改方法:

即:在機器10.1.111.13建立hadoop賬戶,并修改其uid和gid為666

方法一:

groupmod -g 666 hadoop //修改hadoop使用者的gid為666

usermod -g 666 hadoop //修改hadoop使用者的uid為666

方法二:

直接修改/etc/passwd 找到hadoop賬号修改。

修改後:

[hadoop@etl02 hdfs_13]$ ls -al 
drwxrwxr-x   3 hadoop hadoop       96 Mar 17 13:18 make_in_31           

至此,三台機器都可以用hadoop賬号讀寫檔案。以下三行分别是在三台機器寫入的。

[hadoop@WEB-W031 test22]$ cat test36 
363633636363  //36機器寫入
1313131313131313 //13機器寫入
inni31_31_31_31  //31機器寫入           

反思:

本機挂載之前就搞定了,但是挂載到其他機器反複嘗試了很多方法, 後來回到原點,挂載本機的方法就可以挂載到其他機器。很有意思。

作者:銘毅天下

轉載請标明出處,原文位址:

http://blog.csdn.net/laoyang360/article/details/50917665

繼續閱讀