赞
踩
cd /usr/local/hadoop 先到对应目录
启动hadoop,并用jps检查进程
./sbin/start-all.sh (结束用stop-all.sh)
jps
Hadoop支持很多Shell命令,其中fs是HDFS最常用的命令,利用fs可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。有以下三种shell命令方式:
hadoop fs #适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
hadoop dfs #只能适用于HDFS文件系统
hdfs dfs #同hadoop dfs
运行 hadoop 命令传递不带参数的选项 fs,获取文件系统的所有命令。
./bin/hadoop fs
将hadoop命令加入安装路径后就可以直接用hadoop fs ( 前不用加./bin)
sudo gedit ~/.bashrc
在末尾加入
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
保存,输入source ~/.bashrc使配置生效
(同理 上述start-all.sh命令也可用此方法省去./sbin)
在终端输入如下命令,可以查看具体某个命令的作用
例如:我们查看put命令如何使用,可以输入如下命令
./bin/hadoop fs -help put
hdfs dfs -ls / 查询/目录下的所有文件和文件夹
hdfs dfs -ls -R 以递归的方式查询/目录下的所有文件
hdfs dfs -mkdir /test 创建test文件夹
hdfs dfs -touchz /aa.txt 在/目录下创建一个空文件aa.txt
hdfs dfs -put aa.txt /test 将当前目录下的aa.txt文件复制到/test目录下(把-put换成-copyFromLocal效果一样-moveFromLocal会移除本地文件)
hdfs dfs -cat /test/aa.txt 查看/test目录下文件aa.txt的内容(将-cat 换成-text效果一样)
hdfs dfs -copyToLocal /test/aa.txt . 将/test/aa.txt文件复制到当前目录(.是指当前目录,也可指定其他的目录)
hdfs dfs -rm -r /test/aa.txt 删除/test/aa.txt文件(/test/aa.txt可以替换成文件夹就是删除文件夹)
hdfs dfs -mv /aa.txt /bb.txt 将/aa.txt文件重命名为/bb.txt
hdfs dfs -getmerge / local-file 将/目录下的所有文件合并到本地文件local-file中
tail -500 hadoop-root-resourcemanager-VM-0-10-ubuntu.log
(此部分截选自实验楼教程【Hadoop 分布式文件系统 — 导入和导出数据】~)
使用 Hadoop shell 命令将数据导入HDFS 中,以及将数据从 HDFS 中导出。这些命令更多地用于加载数据,下载处理过的数据,管理文件系统,以及预览相关数据。
下载数据集 weblog_entries.txt
sudo wget http://labfile.oss.aliyuncs.com/courses/832/weblog_entries.txt
1).在 HDFS 中创建一个新文件夹,用于保存 weblog_entries.txt
文件:
hadoop fs -mkdir -p /data/weblogs
2).将 weblog_entries.txt
文件从本地文件系统复制到 HDFS 刚创建的新文件夹下:
hadoop fs -copyFromLocal weblog_entries.txt /data/weblogs
3).列出 HDFS 上 weblog_entries.txt
文件的信息:
hadoop fs -ls /data/weblogs/weblog_entries.txt
mkdir 可以通过 hadoop fs -mkdir PATH1 PATH2
的形式来执行。例如,hadoop fs –mkdir /data/weblogs/20160511 /data/weblogs/20160501
将会在 HDFS 系统上分别创建两个文件夹 /data/weblogs/20160511 和 /data/weblogs/20160501
。如果文件夹创建成功则返回0,否则返回-1。
hadoop fs -mkdir /data/weblogs/20160511 /data/weblogs/20160501
hadoop fs -ls /data/weblogs
copyFromLocal
可以通过 hadoop fs –copyFromLocal LOCALFILEPATH URI 的形式来执行,如果 URI 的地址(指的是HDFS://filesystemName:9000这个串)没有明确给出,则默认会读取core-site.xml
中的 fs.default.name
这个属性。上传成功返回0,否则返回-1。
copyToLocal
命令可以通过 hadoop fs –copyToLocal [-ignorecrc] [-crc] URILOCAL_FILE_PATH
的形式来执行。如果 URI 的地址没有明确的给出,则默认会读取 core-site.xml
中的 fs.default.name
这个属性。copyToLocal
会执行CRC(Cyclic Redundancy Check)校验保证已复制的数据的正确性,一个失败的副本复制可以通过 参数 –ignorecrc
来强制执行,还可以通过 -crc
参数在复制文件的同时也复制 crc
校验文件。
上文介绍的get
和copyToLocal
只能对文件进行复制,无法对整个文件夹进行复制。当然 Hadoop 提供了getmerge
命令,可以将文件系统中的多个文件合并成一个单独的文件下载到本地文件系统。
打开Linux自带的Firefox浏览器,转到http://localhost:9870/,即可看到HDFS的web管理界面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。