- Hadoop MapReduce v2 Cookbook(Second Edition)
- Thilina Gunarathne
- 428字
- 2021-07-23 20:32:53
HDFS command-line file operations
HDFS is a distributed filesystem, and just like any other filesystem, it allows users to manipulate the filesystem using shell commands. This recipe introduces some of these commands and shows how to use the HDFS shell commands.
It is worth noting that some of the HDFS commands have a one-to-one correspondence with the mostly used Unix commands. For example, consider the following command:
$ bin/hdfs dfs –cat /user/joe/foo.txt
The command reads the /user/joe/foo.txt
file and prints it to the screen, just like the cat
command in a Unix system.
Getting ready
Start the HDFS server by following the Setting up HDFS recipe or the Setting up Hadoop ecosystem in a distributed cluster environment using a Hadoop distribution recipe.
How to do it...
- Run the following command to list the content of your HDFS home directory. If your HDFS home directory does not exist, please follow step 9 of the Setting up Hadoop ecosystem in a distributed cluster environment using a Hadoop distribution recipe to create your HDFS home directory.
$ hdfs dfs -ls
- Run the following command to create a new directory called
test
inside your home directory in HDFS:$ hdfs dfs -mkdir test
- The HDFS filesystem has
/
as the root directory. Run the following command to list the content of the newly created directory in HDFS:$ hdfs dfs -ls test
- Run the following command to copy the local readme file to
test
:$ hdfs dfs -copyFromLocal README.txt test
- Run the following command to list the
test
directory:$ hdfs dfs -ls test Found 1 items -rw-r--r-- 1 joesupergroup1366 2013-12-05 07:06 /user/joe/test/README.txt
- Run the following command to copy the
/test/README.txt
file back to a local directory:$ hdfs dfs –copyToLocal \ test/README.txt README-NEW.txt
How it works...
When the command is issued, the HDFS client will talk to HDFS NameNode on our behalf and carry out the operation. The client will pick up the NameNode from the configurations in the HADOOP_HOME/etc/hadoop/conf
directory.
However, if needed, we can use a fully qualified path to force the client to talk to a specific NameNode. For example, hdfs://bar.foo.com:9000/data
will ask the client to talk to NameNode running on bar.foo.com
at the port 9000
.
There's more...
HDFS supports most of the Unix commands such as cp
, mv
, and chown
, and they follow the same pattern as the commands discussed earlier. The following command lists all the available HDFS shell commands:
$ hdfs dfs -help
Using a specific command with help
will display the usage of that command.
$ hdfs dfs –help du
- Python漫游數學王國:高等數學、線性代數、數理統計及運籌學
- 領域驅動設計:軟件核心復雜性應對之道(修訂版)
- 區塊鏈技術與應用
- Python語言實用教程
- Bootstrap for Rails
- 跟戴銘學iOS編程:理順核心知識點
- 程序員的成長課
- Java 7 Concurrency Cookbook
- IBM DB2 9.7 Advanced Application Developer Cookbook
- 情境微課開發(第2版)
- 陪孩子像搭積木一樣學編程:Python真好玩+Scratch趣味編程(全2冊)
- Computer Vision with Python 3
- Getting Started with SQL Server 2014 Administration
- Java Web開發系統項目教程
- 信息安全技術(第2版)