導航:首頁 > 程序命令 > hdfscp命令

hdfscp命令

發布時間:2023-01-01 04:20:03

㈠ 求教如何用shell獲取hadoop命令的執行返回值

調用文件系統(FS)Shell命令應使用 bin/hadoop fs <args>的形式。 所有的的FS shell命令使用URI路徑作為參數。URI格式是scheme://authority/path。對HDFS文件系統,scheme是hdfs,對本地文件系統,scheme是file。其中scheme和authority參數都是可選的,如果未加指定,就會使用配置中指定的默認scheme。一個HDFS文件或目錄比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更簡單的/parent/child(假設你配置文件中的默認值是namenode:namenodeport)。大多數FS Shell命令的行為和對應的Unix Shell命令類似,不同之處會在下面介紹各命令使用詳情時指出。出錯信息會輸出到stderr,其他信息輸出到stdout。
cat
使用方法:hadoop fs -cat URI [URI …]
將路徑指定文件的內容輸出到stdout。
示例:
hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2
hadoop fs -cat file:///file3 /user/hadoop/file4
返回值:
成功返回0,失敗返回-1。
chgrp
使用方法:hadoop fs -chgrp [-R] GROUP URI [URI …] Change group association of files. With -R, make the change recursively through the directory structure. The user must be the owner of files, or else a super-user. Additional information is in the Permissions User Guide. -->
改變文件所屬的組。使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。更多的信息請參見HDFS許可權用戶指南。
chmod
使用方法:hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI …]
改變文件的許可權。使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。更多的信息請參見HDFS許可權用戶指南。
chown
使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
改變文件的擁有者。使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是超級用戶。更多的信息請參見HDFS許可權用戶指南。
FromLocal
使用方法:hadoop fs -FromLocal <localsrc> URI
除了限定源路徑是一個本地文件外,和put命令相似。
ToLocal
使用方法:hadoop fs -ToLocal [-ignorecrc] [-crc] URI <localdst>
除了限定目標路徑是一個本地文件外,和get命令類似。
cp
使用方法:hadoop fs -cp URI [URI …] <dest>
將文件從源路徑復制到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。
示例:
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
返回值:
成功返回0,失敗返回-1。

使用方法:hadoop fs - URI [URI …]
顯示目錄中所有文件的大小,或者當只指定一個文件時,顯示此文件的大小。
示例:
hadoop fs - /user/hadoop/dir1 /user/hadoop/file1 hdfs://host:port/user/hadoop/dir1
返回值:
成功返回0,失敗返回-1。
s
使用方法:hadoop fs -s <args>
顯示文件的大小。
expunge
使用方法:hadoop fs -expunge
清空回收站。請參考HDFS設計文檔以獲取更多關於回收站特性的信息。
get
使用方法:hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>
復制文件到本地文件系統。可用-ignorecrc選項復制CRC校驗失敗的文件。使用-crc選項復制文件以及CRC信息。
示例:
hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://host:port/user/hadoop/file localfile
返回值:
成功返回0,失敗返回-1。
getmerge
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
接受一個源目錄和一個目標文件作為輸入,並且將源目錄中所有的文件連接成本地目標文件。addnl是可選的,用於指定在每個文件結尾添加一個換行符。
ls
使用方法:hadoop fs -ls <args>
如果是文件,則按照如下格式返迴文件信息:
文件名 <副本數> 文件大小 修改日期 修改時間 許可權 用戶ID 組ID
如果是目錄,則返回它直接子文件的一個列表,就像在Unix中一樣。目錄返回列表的信息如下:
目錄名 <dir> 修改日期 修改時間 許可權 用戶ID 組ID
示例:
hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile
返回值:
成功返回0,失敗返回-1。
lsr
使用方法:hadoop fs -lsr <args>
ls命令的遞歸版本。類似於Unix中的ls -R。
mkdir
使用方法:hadoop fs -mkdir <paths>
接受路徑指定的uri作為參數,創建這些目錄。其行為類似於Unix的mkdir -p,它會創建路徑中的各級父目錄。
示例:
hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hadoop fs -mkdir hdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir
返回值:
成功返回0,失敗返回-1。
movefromLocal
使用方法:dfs -moveFromLocal <src> <dst>
輸出一個」not implemented「信息。
mv
使用方法:hadoop fs -mv URI [URI …] <dest>
將文件從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。不允許在不同的文件系統間移動文件。
示例:
hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
hadoop fs -mv hdfs://host:port/file1 hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1
返回值:
成功返回0,失敗返回-1。
put
使用方法:hadoop fs -put <localsrc> ... <dst>
從本地文件系統中復制單個或多個源路徑到目標文件系統。也支持從標准輸入中讀取輸入寫入目標文件系統。
hadoop fs -put localfile /user/hadoop/hadoopfile
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
hadoop fs -put - hdfs://host:port/hadoop/hadoopfile
從標准輸入中讀取輸入。
返回值:
成功返回0,失敗返回-1。
rm
使用方法:hadoop fs -rm URI [URI …]
刪除指定的文件。只刪除非空目錄和文件。請參考rmr命令了解遞歸刪除。
示例:
hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir
返回值:
成功返回0,失敗返回-1。
rmr
使用方法:hadoop fs -rmr URI [URI …]
delete的遞歸版本。
示例:
hadoop fs -rmr /user/hadoop/dir
hadoop fs -rmr hdfs://host:port/user/hadoop/dir
返回值:
成功返回0,失敗返回-1。
setrep
使用方法:hadoop fs -setrep [-R] <path>
改變一個文件的副本系數。-R選項用於遞歸改變目錄下所有文件的副本系數。
示例:
hadoop fs -setrep -w 3 -R /user/hadoop/dir1
返回值:
成功返回0,失敗返回-1。
stat
使用方法:hadoop fs -stat URI [URI …]
返回指定路徑的統計信息。
示例:
hadoop fs -stat path
返回值:
成功返回0,失敗返回-1。
tail
使用方法:hadoop fs -tail [-f] URI
將文件尾部1K位元組的內容輸出到stdout。支持-f選項,行為和Unix中一致。
示例:
hadoop fs -tail pathname
返回值:
成功返回0,失敗返回-1。
test
使用方法:hadoop fs -test -[ezd] URI
選項:
-e 檢查文件是否存在。如果存在則返回0。
-z 檢查文件是否是0位元組。如果是則返回0。
-d 如果路徑是個目錄,則返回1,否則返回0。
示例:hadoop fs -test -e filename
text
使用方法:hadoop fs -text <src>
將源文件輸出為文本格式。允許的格式是zip和TextRecordInputStream。
touchz
使用方法:hadoop fs -touchz URI [URI …]
創建一個0位元組的空文件。
示例:
hadoop -touchz pathname
返回值:
成功返回0,失敗返回-1。
大家看我的問題,我比較2個文件夾,我發現執行了第2句話程序就結束了!!!沒有答應echo different.
請問,我如何才能夠獲取到diff -r cwjdir1 cwjdir2的返回值呢??難道這個diff命令在他內部就直接死掉了??
求高手解答。 1.能獲取到這個命令的返回值嗎 ? 2.為什麼列印不出echo different
#!/bin/bash -e
diff -r cwjdir1 cwjdir2
if [ $? -ne 0 ] ; th鄲鄲策肝匕菲察十暢姜en
echo different
exit 1
fi
echo files cmped

㈡ hiveos刪除的機器如何恢復

hiveos刪除後想要找回原先的數據只HBASE可以通過回退版本號查找。
首先打開yarn跳到hue頁面,找到被刪除數據所在的垃圾桶,trash,找到所刪數據表的在垃圾桶里的路徑,復制出來,在hive里根據被刪的數據表重新建一個表,在xshell里連上hive,在hive腳本輸入頁面用cp命令將被刪除數據移到已建好的表下面前面是被刪除的路徑,後面的是重新建表後的表路徑,利用MSCKREPAIRTABLE命令來解決通過hdfsdfs-put或者hdfsapi寫入hive分區表的數據在hive中無法被查詢到的問題,最後驗證一下數據即可。

㈢ 熟悉常用的 linux 操作和 Hadoop 操作

1.切換到當前目錄的上一級目錄
cd ..
2.切換到當前登錄 Linux 系統的用戶自己的主文件夾
cd ~
3.進入/tmp 目錄,創建目錄 a1/a2/a3/a4。
mkdir a1/a2/a3/a4 -p
4.刪除目錄
rmdir a
rmdir a1/a2/a3/a4 -p
5.cp 命令:復制文件或目錄
(1) 將當前用戶的主文件夾下的文件.bashrc 復制到目錄「/usr」下,並重命名為 bashrc1
sudo cp .bashrc /usr/bashrc1
(2) 在目錄「/tmp」下新建目錄 test,再把這個目錄復制到「/usr」目錄下
cd /tmp
mkdir test
sudo cp /tmp/test /usr -r
6.mv 命令:移動文件與目錄,或更名
(1) 將「/usr」目錄下的文件 bashrc1 移動到「/usr/test」目錄下
sudo mv /usr/bashrc1 /usr/test
(2) 將「/usr」目錄下的 test 目錄重命名為 test2
sudo mv /usr/test /usr/test2
7.rm 命令:移除文件或目錄
(1) 將「/usr/test2」目錄下的 bashrc1 文件刪除
sudo rm /usr/test2/bashrc1
(2) 將「/usr」目錄下的 test2 目錄刪除
sudo rm -rf /usr/test2
8.cat 命令:查看文件內容查看當前用戶主文件夾下的.bashrc 文件內容
cat .bashrc
9.tac 命令:反向查看文件內容反向查看當前用戶主文件夾下的.bashrc 文件的內容
tac .bashrc
10.more 命令:一頁一頁翻動查看翻頁查看當前用戶主文件夾下的.bashrc 文件的內容
more .bashrc
11.head 命令:取出前面幾行
(1) 查看當前用戶主文件夾下.bashrc 文件內容前 20 行
head -n20 .bashrc
(2)查看當前用戶主文件夾下.bashrc 文件內容,後面 50 行不顯示,只顯示前面幾行
head -n -50 .bashrc
12.tail 命令:取出後面幾行
(1)查看當前用戶主文件夾下.bashrc 文件內容最後 20 行
tail -n20 .bashrc
(2)查看當前用戶主文件夾下.bashrc 文件內容,並且只列出 50 行以後的數據
tail -n -50 .bashrc
13.touch 命令:修改文件時間或創建新文件
(1) 在「/tmp」目錄下創建一個空文件 hello,並查看文件時間
touch hello
stat hello
(2)修改 hello 文件,將文件時間整為 5 天前
touch -d "2019-3-26" hello
stat hello
14.chown 命令:修改文件所有者許可權將 hello 文件所有者改為 root 帳號,並查看屬性
sudo chown root hello
ls -l hello
15.find 命令:文件查找找出主文件夾下文件名為.bashrc 的文件
find .bashrc
16.tar 命令:壓縮命令
(1) 在根目錄「/」下新建文件夾 test,然後在根目錄「/」下打包成 test.tar.gz
tar -zcvf test.tar.gz test/
(2) 把上面的 test.tar.gz 壓縮包,解壓縮到「/tmp」目錄
tar -zxvf test.tar.gz
17.grep 命令:查找字元串從「~/.bashrc」文件中查找字元串'examples'
grep -rn "examples" .bashrc
18.使用 hadoop 用戶登錄 Linux 系統,啟動 Hadoop(Hadoop 的安裝目錄為「/usr/local/hadoop」),為 hadoop 用戶在 HDFS 中創建用戶目錄「/user/hadoop」
./bin/hadoop fs -mkdir -p /usr/hadoop
19.接著在 HDFS 的目錄「/user/hadoop」下,創建 test 文件夾,並查看文件列表
./bin/hdfs dfs -mkdir test
./bin/hadoop fs -ls
20.將 Linux 系統本地的「~/.bashrc」文件上傳到 HDFS 的 test 文件夾中,並查看 test

./bin/hadoop fs -put ~/.bashrc test

./bin/hadoop fs -ls test
21.將 HDFS 文件夾 test 復制到 Linux 系統本地文件系統的「/usr/local/hadoop」目錄下

參考: 1

㈣ 如何配置Hadoop環境

資源下載

1、JDK下載:下載鏈接
2、hadoop:下載鏈接
3、下載完成後驗證一下下載,將計算的MD5值與官網的進行對比已驗證安裝包的准確性:

md5sum ./hadoop-2.6.*.tar.gz | tr "a-z" "A-Z" # 計算md5值,並轉化為大寫,方便比較1

一、創建Hadoop用戶

創建hadoop用戶,並分配以用戶名為家目錄/home/hadoop,並將其加入到sudo用戶組,創建好用戶之後,以hadoop用戶登錄:

sudo useradd -m hadoop -s /bin/bash sudo adser hadoop sudo
sudo passwd hadoop # 設置hadoop用戶密碼123

二、安裝JDK、Hadoop及配置環境變數

安裝,解壓JDK到/usr/lib/java/路徑下,Hadoop到/usr/local/etc/hadoop/路徑下:

tar zxf ./hadoop-2.6.*.tar.gz
mv ./hadoop-2.6.* /usr/local/etc/hadoop # 將 /usr/local/etc/hadoop作為Hadoop的安裝路徑12

解壓完成之後,可驗證hadoop的可用性:

cd /usr/local/etc/hadoop
./bin/hadoop version # 查看hadoop的版本信息12

若在此處,會出現類似以下的錯誤信息,則很有可能是該安裝包有問題。

Error: Could not find or load main class org.apache.hadoop.util.VersionInfo1

配置環境,編輯「/etc/profile」文件,在其後添加如下信息:

export HADOOP_HOME=/usr/local/etc/hadoopexport JAVA_HOME=/usr/lib/java/jdk1.8.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin12345

使配置的變數生效:

source /etc/profile1

三、測試一下

在此我們可以運行一個簡單的官方Demo:

cd `echo $HADOOP_HOME` # 到hadoop安裝路徑
mkdir ./input
cp ./etc/hadoop/*.xml ./input
hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'1234

輸出的結果應該會是:

1 dfsadmin 1

㈤ hadoop分布式部署(轉載)--賊靠譜

原文地址:https://blog.csdn.net/sjmz30071360/article/details/79889055

1. 集群搭建形式

Hadoop環境搭建分為三種形式:單機模式、偽分布式模式、完全分布模式

單機模式—— 在一台單機上運行,沒有分布式文件系統,而是直接讀寫本地操作系統的文件系統。

偽分布式—— 也是在一台單機上運行,但不同的是Java進程模仿分布式運行中的各類節點。即一台機器上,既當NameNode,又當DataNode,或者說既是JobTracker又是TaskTracker。沒有所謂的在多台機器上進行真正的分布式計算,故稱為「偽分布式」。

完全分布式—— 真正的分布式,由3個及以上的實體機或者虛擬機組成的機群。一個Hadoop集群環境中,NameNode,SecondaryName和DataNode是需要分配在不同的節點上,也就需要三台伺服器。

前兩種模式一般用在開發或測試環境下,生產環境下都是搭建完全分布式模式。

從分布式存儲的角度來說,集群中的節點由一個NameNode和若干個DataNode組成,另有一個SecondaryNameNode作為NameNode的備份。

從分布式應用的角度來說,集群中的節點由一個JobTracker和若干個TaskTracker組成。JobTracker負責任務的調度,TaskTracker負責並行執行任務。TaskTracker必須運行在DataNode上,這樣便於數據的本地計算。JobTracker和NameNode則無須在同一台機器上。

2. 環境

    操作系統:CentOS7(紅帽開源版)

    機器:虛擬機3台,(master 192.168.0.104, slave1 192.168.0.102, slave2 192.168.0.101)

    JDK:1.8(jdk-8u162-linux-x64.tar)

    Hadoop:2.9.0(http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz)

3. 搭建步驟

3.1 每台機器安裝&配置JDK(1台做好後,克隆出其它機器)

1) 創建目錄 mkdir /usr/java

2) 上傳jdk安裝包到 /usr/java/

3) 解壓 tar -xvf jdk-8u162-linux-x64.tar

4) 追加環境變數 vi /etc/profile

5) 使環境變數生效 source /etc/profile

6) 檢測jdk正確安裝 java -version

3.2 修改每台機器主機名(hostname)

hostnamectl set-hostname master  (立即生效)

hostnamectl set-hostname slave1    (立即生效)

hostnamectl set-hostname slave2    (立即生效)

確認修改

3.3 修改每台機器/etc/hosts文件

vi /etc/hosts

修改其中1台,然後scp到其它機器

scp 文件名 遠程主機用戶名@遠程主機名或ip:存放路徑

scp hosts [email protected]:/etc/

scp hosts [email protected]:/etc/

修改完之後,互ping其它機器,能互ping則說明修改OK

ping -c 3 slave1 (※ 3表示發送 3 個數據包)

3.4 配置ssh,實現無密碼登錄

無密碼登錄,效果也就是在master上,通過ssh slave1或者ssh slave2就可以登錄對方機器,而不用輸入密碼。

1) 每台機器執行ssh-keygen -t rsa,接下來一路回車即可

執行ssh-keygen -t rsa主要是生成 密鑰 和 密鑰的存放路徑

我們用的root用戶,公鑰私鑰都會保存在~/.ssh下

2) 在master上將公鑰放到authorized_keys里,命令:cat id_rsa.pub > authorized_keys

3) 將master上的authorized_keys放到其它機器上

scp authorized_keys root@slave1:~/.ssh/

scp authorized_keys root@slave2:~/.ssh/

4) 測試是否成功

3.5 上傳&配置hadoop(配置完master後,將/usr/hadoop/整個目錄內容到其它機器)

1) 創建目錄 mkdir /usr/hadoop

2) 上傳hadoop安裝包hadoop-2.9.0.tar.gz到 /usr/hadoop/

3) 解壓 tar -xvf hadoop-2.9.0.tar.gz

4) 追加環境變數 vi /etc/profile(其它機器也要相應配置一次hadoop環境變數)

5) 使環境變數生效 source /etc/profile

6) 確認環境變數配置OK

7) 創建HDFS存儲目錄

cd /usr/hadoop

mkdir hdfs

cd hdfs

mkdir name data tmp

/usr/hadoop/hdfs/name    --存儲namenode文件

/usr/hadoop/hdfs/data      --存儲數據

/usr/hadoop/hdfs/tmp      --存儲臨時文件

8) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh文件,設置JAVA_HOME為實際路徑

否則啟動集群時,會提示路徑找不到

9) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-env.sh文件,設置JAVA_HOME為實際路徑

10) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml

增加hadoop.tmp.dir 和 fs.default.name

11) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml

dfs.replication:默認值3

dfs.permissions:默認值為true,設置為true有時候會遇到數據因為許可權訪問不了;設置為false可以不要檢查許可權就生成dfs上的文件

12) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml

cd /usr/hadoop/hadoop-2.9.0/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

maprece.framework.name:指定maprece運行在yarn平台,默認為local

13) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-site.xml

yarn.resourcemanager.hostname:指定yarn的resourcemanager的地址

yarn.nodemanager.aux-services:recer獲取數據的方式

yarn.nodemanager.vmem-check-enabled:意思是忽略虛擬內存的檢查,如果安裝在虛擬機上,這個配置很有用,配上去之後後續操作不容易出問題。如果是在實體機上,並且內存夠多,可以將這個配置去掉

14) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/slaves文件,將裡面的localhost刪除,配置後內容如下:

15) 整個/usr/hadoop/目錄到其它機器

scp -r hadoop root@slave1:/usr/

scp -r hadoop root@slave2:/usr/

3.6 啟動Hadoop

1) 啟動之前需要格式化一下。因為master是namenode,slave1和slave2都是datanode,所以在master上運行

hadoop namenode -format

格式化成功後,可以看到在/usr/hadoop/hdfs/name目錄下多了一個current目錄,而且該目錄下有一系列文件,如下:

2) 執行啟動(namenode只能在master上啟動,因為配置在master上;datanode每個節點上都可以啟動)

執行 start-all.sh

master上執行jps,會看到NameNode, SecondaryNameNode, ResourceManager

其它節點上執行jps,會看到DataNode, NodeManager

3) 在wins上打開網頁,查看HDFS管理頁面 http://192.168.0.104:50070查看,提示無法訪問

在master上,執行以下命令關閉防火牆,即可訪問(為了能夠正常訪問node節點,最好把其它機器的防火牆也stop了)

systemctl stop firewalld.service

HDFS管理首頁

HDFS Datenodes頁

訪問Yarn管理頁: http://192.168.0.104:8088

4)通過主機名也可以訪問的設置

win7為例,需要將以下信息追加到C:\Windows\System32\drivers\etc\hosts文件中

192.168.0.104 master

192.168.0.102 slave1

192.168.0.101 slave2

Over!!!搭建成功!!!

4. 運行實例

cd /usr/hadoop/hadoop-2.9.0/share/hadoop/maprece

hadoop jar hadoop-maprece-examples-2.9.0.jar pi 5 10

。。。。。。

=====================================================

如果不關防火牆,子節點可能出現,輸入jps後只有jps一個進程,或者是缺進程的情況,關閉防火牆就好了。

㈥ HDFS操作命令

HDFS命令基本格式:hadoop fs -cmd < args >

表格:

注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑。對於容易產生歧義的地方,會特別指出「linux路徑」或者「hdfs路徑」。如果沒有明確指出,意味著是hdfs路徑。

HDFS有一個默認的工作目錄/user/$USER,其中$USER是用戶的登錄用戶名。不過目錄不會自動建立,需要mkdir建立它
命令格式:hadoop fs -mkdir

注意:支持級聯創建新目錄,Hadoop的mkdir命令會自動創建父目錄,類似於帶-p的linux命令

put命令從本地文件系統中 復制單個或多個 源路徑到目標文件系統,也支持從標准輸入設備中讀取輸入並寫入目標文件系統。分為本地上傳和上傳到HDFS中。
命令格式:hadoop fs -put filename

最後一個參數是句點,相當於放入了默認的工作目錄,等價於 hadoop fs -put example.txt /user/chen

上傳文件時,文件首先復制到DataNode上,只有所有的DataNode都成功接收完數據,文件上傳才是成功的。
命令格式:hadoop dfs put filename newfilename

從本地文件系統中復制單個或多個源路徑到目標文件系統。也支持從 標准輸入 中讀取輸入寫入目標文件系統。

採用-ls命令列出HDFS上的文件。在HDFS中未帶參數的-ls命令沒有返回任何值,它默認返回HDFS的home目錄下
的內容。在HDFS中,沒有當前工作目錄這樣一個概念,也沒有cmd這樣的命令。
命令格式:user@NameNode:hadoop$ bin/hadoop dfs -ls
如:

通過「-ls 文件夾名」 命令瀏覽HDFS下文件夾中的文件
命令格式:hadoop dfs -ls 文件夾名

通過該命令可以查看in文件夾中的所有文檔文件

通過「-cat 文件名」命令查看HDFS下文件夾中某個文件的內容
命令格式:hadoop$ bin/hadoop dfs -cat 文件名

通過這個命令可以查看in文件夾中所有文件的內容

通過「-get 文件按1 文件2」命令將HDFS中某目錄下的文件復制到本地系統的某文件中,並對該文件重新命名。
命令格式:hadoop dfs -get 文件名 新文件名

-get 命令與-put命令一樣,既可以操作目錄,也可以操作文件

通過「-rmr 文件」命令刪除HDFS下的文件
命令格式:hadoop$ bin/hadoop dfs -rmr 文件

-rmr 刪除文檔命令相當於delete的遞歸版本。

通過-format命令實現HDFS格式化
命令格式:user@NameNode:hadoop$ bin/hadoop NameNode -format

通過運行start-dfs.sh,就可以啟動HDFS了
命令格式:user@NameNode:hadoop$ bin/ start-dfs.sh

當需要退出HDFS時,通過stop-dfs.sh 就可以關閉HDFS
命令格式:user@NameNode:hadoop$ bin/ stop-dfs.sh

HDFS的命令遠不止這些,對於其他操作,可以通過-help commandName 命令列出清單。下面列舉一些命令進行說明。

(1)chgrp改變文件所屬的組命令
chgrp命令的用途是:更改文件或目錄的組所有權。
語法格式:hadoop fs -charg [-R] GROUP URL .....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。

(2)chmod改變文件的許可權
chmod用於改變文件或目錄的訪問許可權,這個Linux系統管理員最常用的命令之一。
使用方法:hadoop fs -chmod [-R] ...
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者是超級用戶

(3)chown改變文件的擁有者
chown命令改變文件的擁有者。
使用方法:hadoop fs -chown [-R]....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是超級用戶。

(4)FromLocal命令
除了限定 源路徑 是只能是一個 本地文件 外,其他方面和put命令相似。
使用方法:hadoop fs -FromLocal <localsrc> URI

(5)ToLocal命令
除了限定 目標路徑 是一個 本地文件 外,其他方面和get命令類似。
使用方法:hadoop fs -ToLocal {-ignorecrc} {-crc} URI <localdst>

(6)cp命令
cp命令是將文件從源路徑復制到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。
使用方法:hadoop fs -cp URI [URI....] <dest>

返回值:成功返回0 ,失敗返回-1

(7)命令
命令顯示目錄中 所有文件的大小 ,或者當只指定一個文件時,顯示此文件的大小
使用方法:hadoop fs - URI [URI........]

返回值
成功返回0,失敗返回-1

(8)s命令
s是顯示 文件大小 的命令。
使用方法:hadoop fs -s <args>

(9)expunge命令
expunge是清空回收站的命令
使用方法:hadoop fs -expunge

(10)get命令
get是復制文件到本地文件系統的命令
使用方法:hadoop fs -get [-ignorecrc] [-crc] <localdst>
可用-ignorecrc選項復制CRC校驗失敗的文件:使用-CRC選項復制文件以及CRC信息。

返回值
成功返回0,失敗返回-1

(11)getmerge命令
getmerge命令用於接受一個源目錄和一個目標文件作為輸入,並且將源目錄中所有的文件合並成本地目標文件。
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
參數說明:addl是可選的,用於指定在每個文件結尾添加一個換行符;

假設在你的hdfs集群上有一個/user/hadoop/output目錄
裡面有作業執行的結果(多個文件組成)part-000000,part-000001,part-000002

然後就可以在本地使用vi local_file查看內容了

(12)ls命令
ls命令查看當前目錄下的信息
使用方法:hadoop fs -ls <args>
如果是 文件 ,則按照如下格式返迴文件信息:
文件名 <副本數>文件大小 修改日期 修改時間 許可權 用戶ID 組ID

如果是 目錄 ,則返回它直接子文件的一個列表,就像在UNIX中一樣。目錄返回i額表的信息如下:
目錄名<dir>修改日期 修改時間 許可權 用戶ID 組ID

返回值
成功返回0,失敗返回-1

(13)lsr命令
lsr命令是-ls命令的遞歸版,類似於UNIX中的ls-r。
使用方法:hadoop fs -lsr <args>

(14)movefromLocal命令
復制一份本地文件到hdfs,當成功後,刪除本地文件
使用方法:dfs -moveFromLocal <src> <dst>

(14.5)moveToLocal命令
類似於-get,但是當復制完成後,會刪除hdfs上的文件
使用方法:moveToLocal <src> <localDest>

(15)mv命令
將文件從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄
使用方法:hadoop fs -mv URI [URI.....] <dest>
備註:不允許在不同的文件系統間移動文件。

返回值
成功返回0,失敗返回-1

(16)put 命令
put命令從本地文件系統中復制單個或多個源路徑到目標文件系統,也支持從標准輸入中讀取輸入寫入目標文件系統
使用方法:hadoop fs -put <localsrc> .... <dst>

(17)rm命令
rm命令刪除指定的文件,只刪除非空目錄和文件。
使用方法:hadoop fs -rm URI [URI......]
請參考rmr命令了解遞歸刪除。

(18)rmr命令
rmr命令是delete命令的遞歸版本
使用方法:hadoop fs -rmr URI [URI.......]

返回值
成功返回0,失敗返回-1

(19)setrep命令
setrep命令可以改變一個文件的副本系數。
使用方法:hadoop fs -setrep [-R] <path>
參數說明:-R 選項用於遞歸改變目錄下所有文件的副本系數

返回值
成功返回0,失敗返回-1

(20)stat命令
stat命令用於返回指定路徑的統計信息
使用方法:hadoop fs -stat URI [URI......]

返回值
成功返回0,失敗返回-1

(21)tail命令
tail命令將文件尾部1KB的內容輸出到stdout。支持-f選項,行為和UNIX中一致
使用方法:hadoop fs -tail [-f] URI

返回值
成功返回0,失敗返回-1

(22)test命令
test命令是檢查命令,可以檢查文件是否存在、文件的大小等。
使用方法:hadoop fs -test -[ezd] URI

(23)text命令
text命令用於將源文件輸出問文本格式
使用方法:hadoop fs -text <src>
允許的格式是zip和TextRecordInputStream。

(24)touchz 命令
touchz命令用於創建一個0位元組的空文件。
使用方法: hadoop fs -touchz URI [URI....]

返回值
成功返回0,失敗返回-1

㈦ Hadoop安裝

創建hadoop用戶

1、sudo useradd -m hadoop

2、sudo passwd hadoop

3、sudo adser hadoop sudo

4、虛擬機:最後注銷當前用戶(點擊屏幕右上角的齒輪,選擇注銷),返回登陸界面。在登陸界面中選擇剛創建的hadoop 用戶進行登陸。

5、重新登錄檢查當前用戶是誰:whoami 出現hadoop 成功

6、更新aptsudo apt-get update更新apt3.安裝SSH,

7、配置免密登陸sudo apt-get install sshsudo apt-get install pdsh 安裝ssh

8、安裝Java環境sudo apt install openjdk-8-jdk 安裝java

9、vim ~/.bashrc 進入之後按I 然後輸入export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 

10、按esc 然後按:wq! 回車 完成 此步驟改變環境變數source ~/.bashrc輸入java -version檢驗

11、安裝Hadoopwget https://mirrors.tuna.tsinghua.e.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz 安裝命令

12、sudo tar -zxf ~/hadoop-2.9.2.tar.gz -C /usr/local 解壓命令

13、cd /usr/local/ #進入用戶安裝目錄

14、sudo mv ./hadoop-2.9.2/ ./hadoopsudo chown -R hadoop ./hadoop # 修改文件許可權(hadoop-2.9.2默認擁有者是root,這里我們讓hadoop也成為擁有者)

15、cd /usr/local/hadoop./bin/hadoop version # 查看hadoop版本信息,成功顯示則安裝成功

16、cd /usr/local/hadoop進入目錄

17、mkdir ./input創建目錄

18、ls查看當前目錄

19、cp ./etc/hadoop/*.xml ./input

20、./bin/hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'

21、cat ./output/*查看

22、rm -r ./output刪除output文件

23、 cd /usr

24、 cd local

25、ls

26、 cd hadoop

27、 ls

28、cd  /usr/local/hadoop/etc/hadoop/

29、Ls

30、vi hdfs-site.xml

31、cd /usr/local/hadoop

㈧ 搭建hadoop集群,常用配置文件是什麼,以及配置哪些屬性

一. 簡介

參考了網上許多教程,最終把hadoop在ubuntu14.04中安裝配置成功。下面就把詳細的安裝步驟敘述一下。我所使用的環境:兩台ubuntu 14.04 64位的台式機,hadoop選擇2.7.1版本。(前邊主要介紹單機版的配置,集群版是在單機版的基礎上,主要是配置文件有所不同,後邊會有詳細說明)

二. 准備工作

2.1 創建用戶

創建用戶,並為其添加root許可權,經過親自驗證下面這種方法比較好。

1 sudo adser hadoop2 sudo vim /etc/sudoers3 # 修改內容如下:4 root ALL = (ALL)ALL5 hadoop ALL = (ALL)ALL

給hadoop用戶創建目錄,並添加到sudo用戶組中,命令如下:

1 sudo chown hadoop /home/hadoop2 # 添加到sudo用戶組3 sudo adser hadoop sudo

最後注銷當前用戶,使用新創建的hadoop用戶登陸。

2.2安裝ssh服務

ubuntu中默認是沒有裝ssh server的(只有ssh client),所以先運行以下命令安裝openssh-server。安裝過程輕松加愉快~

sudo apt-get install ssh openssh-server

2.3 配置ssh無密碼登陸

直接上代碼:執行完下邊的代碼就可以直接登陸了(可以運行ssh localhost進行驗證)

1 cd ~/.ssh# 如果找不到這個文件夾,先執行一下 "ssh localhost"2 ssh-keygen -t rsa3 cp id_rsa.pub authorized_keys

注意:

這里實現的是無密登陸自己,只適用與hadoop單機環境。如果配置Hadoop集群設置Master與Slave的SSH無密登陸可

三. 安裝過程

3.1 下載hadoop安裝包

有兩種下載方式:

1. 直接去官網下載:

2. 使用wget命令下載:

3.2 配置hadoop

1. 解壓下載的hadoop安裝包,並修改配置文件。我的解壓目錄是(/home/hadoop/hadoop-2.7.1),即進入/home/hadoop/文件夾下執行下面的解壓縮命令。

tar -zxvf hadoop-2.7.1.tar.gz

2. 修改配置文件:(hadoop2.7.1/etc/hadoop/)目錄下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml。

(1). core-site.xml 配置:其中的hadoop.tmp.dir的路徑可以根據自己的習慣進行設置。

至此,wordcount demo 運行結束。

六. 總結

配置過程遇到了很多問題,最後都一一解決,收獲很多,特此把這次配置的經驗分享出來,方便想要配置hadoop環境的各位朋友~

(Hadoop集群安裝配置過程基本和單機版是一樣的,主要是在配置文件方面有所區別,以及ssh無密登陸要求master和slave能夠互相無密登陸。

㈨ ftp提取文件到hdfs

實際場景中,我們經常需要通過ftp協議把不同數據源的文件統一匯入到hdfs數據中心,經過實踐,有以下的三種方法,分別列出其優缺點及適用場景。

1、 先把文件ftp到本地,然後用命令hdfsdfs –put [local_path] [hdfs_path]

優點:文件在本地可以進行本地化的一系列操作後,再放回hdfs中

缺點:文件傳輸經過兩層,並且從源伺服器到本地提取是單機串列,比較消耗時間。

適用於文件放入hfds前需要預處理的情景,如:.zip壓縮文件不被hadoop支持的,所以我們可以先在本地轉壓縮方式然後再放入hdfs中。

2、 hdfs dfs –cp [ftp://username:password@hostname/ftp_path] [hdfs:///hdfs_path]

優點:簡單,提取速度快

缺點:CLI執行不會顯示進度

適用場景:適用於小文件的ftp拷貝。

3、 hadoop distcp [ftp://username:password@hostname/ftp_path] [hdfs:///hdfs_path]

優點:簡單,能顯示拷貝進度,並且是分布式提取的,數據比較快。

缺點: 如果拷貝的文件是不斷有其他程序寫入,會報錯,因為該命令最後要對數據進行checksum導致兩邊不一致,當然,該命令是主要用於集群間拷貝的。

適用場景:大量文件或大文件的拷貝。

㈩ 修修改hdfs上的文件所屬用戶、所屬組等讀寫執行控制許可權

HDFS支持許可權控制,但支持較弱。HDFS的設計是基於POSIX模型的,支持按用戶、用戶組、其他用戶的讀寫執行控制許可權。在linux命令行下,可以使用下面的命令修改文件的許可權、文件所有者,文件所屬組:

sudo addgroup Hadoop#添加一個hadoop組
sudo usermod -a -G hadoop larry#將當前用戶加入到hadoop組
sudo gedit etc/sudoers#將hadoop組加入到sudoer
在root ALL=(ALL) ALL後 hadoop ALL=(ALL) ALL

修改hadoop目錄的許可權
sudo chown -R larry:hadoop /home/larry/hadoop<所有者:組 文件>
sudo chmod -R 755 /home/larry/hadoop

修改hdfs的許可權
sudo bin/hadoop dfs -chmod -R 755 /
sudo bin/hadoop dfs -ls /

修改hdfs文件的所有者
sudo bin/hadoop fs -chown -R larry /
sudo bin/hadoop dfsadmin -safemode leave #解除hadoop的安全模式
hadoop fs -FromLocal <localsrc> URI#拷貝本地文件到hdfs
hadoop fs -cat file:///file3 /user/hadoop/file4#將路徑指定文件的內容輸出到stdout
hadoop fs -chgrp [-R] GROUP URI#改變文件的所屬組
hadoop fs -chmod [-R] 755 URI#改變用戶訪問許可權
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]#修改文件的所有者
hadoop fs -ToLocal URI localdst#拷貝hdfs文件到本地
hadoop fs -cp URI [URI …] <dest>#拷貝hdfs文件到其它目錄
hadoop fs - URI [URI …]#顯示目錄中所有文件的大小
hadoop fs -getmerge <src> <localdst> [addnl]#合並文件到本地目錄

如:
root@cdh3:~# hdfs dfs -ls /
Found 8 items
drwxr-xr-x   - hbase hbase               0 2017-06-24 10:05 /hbase
drwxrwxr-x   - solr  solr                0 2016-12-01 22:43 /solr
drwxr-xr-x   - root  supergroup          0 2017-04-24 22:58 /sparklib
drwxr-xr-x   - root  supergroup          0 2017-07-19 17:44 /sparklib-2.1.0
drwxr-xr-x   - hdfs  supergroup          0 2016-12-05 09:08 /system
drwxrwxrwt   - hdfs  supergroup          0 2017-07-13 09:40 /tmp
drwxr-xrwx   - hdfs  supergroup          0 2017-06-23 10:54 /user
drwxr-xr-x   - root  supergroup          0 2017-04-13 11:12 /file

root@cdh3:~# hdfs dfs -chown Administrator /file
chown: changing ownership of '/file': Non-super user cannot change owner

root@cdh3:~# hdfs dfs -chown -R Administrator /file
chown: changing ownership of '/file': Non-super user cannot change owner

root@cdh3:~# su hdfs
hdfs@cdh3:/root$ hdfs dfs -chown -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -chgrp -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -ls /file

Found 9 items
-rw-r--r--   2 Administrator Administrator       3302 2017-04-13 11:11 /file/data-transfer.properties
-rw-r--r--   2 Administrator Administrator     313898 2017-04-13 11:00 /file/dom4j-1.6.1.jar
drwxr-xr-x   - Administrator Administrator          0 2017-04-12 10:03 /file/hangxin
-rw-r--r--   2 Administrator Administrator      24212 2017-03-17 12:06 /file/hx.jar
-rw-r--r--   2 Administrator Administrator     802721 2017-03-17 11:50 /file/mysql-connector-java-5.1.20-bin.jar
drwxr-xr-x   - Administrator Administrator          0 2017-03-22 09:46 /file/notregex
drwxr-xr-x   - Administrator Administrator          0 2017-04-25 00:01 /file/regex
-rw-r--r--   2 Administrator Administrator     106006 2017-04-13 11:12 /file/sihconfig.xml
-rw-r--r--   2 Administrator Administrator        123 2017-03-16 14:31 /file/spark-config.properties

#

閱讀全文

與hdfscp命令相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163