Hadoop_day03_HDFS的命令行操作

--查看路径
    hdfs dfs -ls -R path
--查看内容
    hdfs dfs -cat path


--创建文件夹
    hdfs dfs -mkdir -p path


--本地上传到HDFS --拷贝
    hdfs dfs -put localsrc dst
--本地上传到HDFS --剪切
    hdfs dfs -moveFromLocal localsrc dst
--将本地的文件列表,上传到HDFS的一个文件中(追加)
    hdfs dfs -appendToFile localsrc dst


--HDFS下载到本地 --拷贝
    hdfs dfs -get src localdst
--HDFS下载到本地 --剪切  未实现
    hdfs dfs -moveToLocal src localdst


--hdfs内部的文件剪切
    hdfs dfs -mv src dst
--hdfs内部的文件拷贝 -f 覆盖 -p 深度拷贝
    hdfs dfs -cp src dst


--递归删除 --放到垃圾桶
    hdfs dfs -rm -r path


--赋权
    hdfs dfs -chmod -R 777 path
--修改所属所属组
    hdfs dfs -chown 用户:用户组 path

--相对路径root用户
    hdfs dfs -count -q -h path
--限定文件上传数量 count-1
    hdfs dfsadmin -setQuota count path
--清除文件数量限定
    hdfs dfsadmin -clrQuota path
--限定文件夹大小的限制
    hdfs dfsadmin -setSpaceQuota blockCount*blockSize*replicationCount path
--清除文件夹大小的限制
    hdfs dfsadmin -clrSpaceQuota path

<think>我们正在讨论如何运行HDFS脚本。根据引用内容,HDFS脚本通常位于Hadoop安装目录的bin或sbin子目录中。用户可以通过命令行调用这些脚本来执行HDFS操作。 引用[1]提到:Hdfs通过脚本为系统提供了很多命令行,如hdfs dfsadmin提供了管理命令。这些脚本最终是通过执行相关的Java类的main函数来完成功能。 引用[2]指出:推荐使用`hdfs`脚本来操作HDFS,而使用`hadoop`脚本操作HDFS已被视为过时(DEPRECATED)。 引用[3]展示了HDFS命令的基本用法,例如:`hdfs dfs -ls`、`hadoop fs -ls`等。 因此,运行HDFS脚本的一般步骤如下: 1. **定位脚本位置**:Hadoop的安装目录下的`bin`或`sbin`目录包含可执行脚本。例如,`hdfs`脚本通常位于`$HADOOP_HOME/bin/hdfs`。 2. **设置环境变量**:确保`$HADOOP_HOME/bin`已添加到系统的PATH环境变量中,这样可以直接在命令行中使用`hdfs`命令。 3. **执行命令**:使用`hdfs`脚本,后跟子命令和参数。例如: - 管理HDFS文件系统:`hdfs dfs [generic options]` - 管理HDFS集群:`hdfs dfsadmin [generic options]` - 运行HDFS客户端:`hdfs client [generic options]` 具体示例: - 查看HDFS根目录下的文件:`hdfs dfs -ls /` - 上传本地文件到HDFS:`hdfs dfs -put <local_path> <hdfs_path>` - 创建HDFS目录:`hdfs dfs -mkdir <hdfs_path>` 注意:如果Hadoop集群配置了高可用(HA)或者有多个名称节点,可能需要指定名称服务ID(如`ns1`)或具体的名称节点地址。但在大多数情况下,使用默认配置即可。 另外,引用[5]给出了一个使用HDFS命令的脚本示例,该脚本将本地日志文件上传到HDFS的指定目录,并使用了日期处理。这展示了如何将HDFS命令嵌入到Shell脚本中实现自动化任务。 总结:运行HDFS脚本主要是通过命令行调用`hdfs`这个主脚本,然后根据需求使用不同的子命令(如`dfs`, `dfsadmin`等)来完成具体操作。 下面是一个简单的示例脚本,展示如何运行HDFS命令: ```bash #!/bin/bash # 这是一个简单的HDFS操作示例脚本 # 在HDFS上创建一个目录 hdfs dfs -mkdir -p /user/example # 将本地文件上传到HDFS hdfs dfs -put /path/to/local/file.txt /user/example/ # 列出HDFS上的文件 hdfs dfs -ls /user/example ``` 请确保在运行脚本之前,Hadoop集群已经启动,并且当前用户有权限执行这些操作。 §§相关问题§§ 1. 如何查看HDFS脚本的帮助文档? 2. 如何通过HDFS脚本管理集群(如启动/停止服务)? 3. HDFS脚本与Hadoop脚本有何区别? 4. 如何编写一个定期上传数据到HDFS的脚本?</think>### 如何运行HDFS脚本 运行HDFS脚本主要通过Hadoop安装目录中的命令行工具实现,具体步骤如下: #### 1. **定位脚本位置** - HDFS脚本位于Hadoop安装目录的`bin/`或`sbin/`子目录中(如`/usr/local/hadoop/bin/`) - 主要脚本包括: - `hdfs`:主脚本(推荐使用) - `hadoop`:旧版脚本(已过时,不推荐) - `hdfs dfsadmin`:集群管理脚本 #### 2. **基本命令格式** ```bash # 标准格式(推荐) hdfs [子命令] [参数] # 示例:查看HDFS根目录 hdfs dfs -ls / ``` 引用[2]明确指出:`DEPRECATED: Use of this script to execute hdfs command is deprecated.`[^2],故应优先使用`hdfs`而非`hadoop`。 #### 3. **常用操作示例** | 功能 | 命令 | 说明 | |---|---|---| | **上传文件** | `hdfs dfs -put <本地路径> <HDFS路径>` | 引用[5]示例:`hdfs dfs -put /data/log/access.log /log/20240515`[^5] | | **创建目录** | `hdfs dfs -mkdir -p <HDFS目录>` | `-p`支持递归创建 | | **查看文件** | `hdfs dfs -ls -h -R <路径>` | `-h`人性化显示文件大小,`-R`递归查看 | | **删除文件** | `hdfs dfs -rm <HDFS路径>` | | | **集群管理** | `hdfs dfsadmin -report` | 查看集群状态 | #### 4. **用户权限注意** - 操作路径需匹配启动HDFS的用户(如root用户对应`/user/root`) - 引用[4]示例:`hdfs dfs -put oozie_works/ /user/root`[^4] #### 5. **脚本自动化示例** 结合Shell脚本实现定时任务(如每日日志上传): ```bash #!/bin/bash yesterday=$(date +%Y%m%d --date="1 day ago") hdfs dfs -mkdir -p /log/$yesterday hdfs dfs -put /data/log/access_$yesterday.log /log/$yesterday/ ``` 引用[5]展示了类似逻辑:通过日期变量动态创建HDFS路径[^5]。 #### 6. **环境配置** - 确保`$HADOOP_HOME/bin`加入系统PATH: ```bash export PATH=$PATH:/usr/local/hadoop/bin ``` - 需提前启动HDFS服务(如`start-dfs.sh`) > **关键提示**: > 所有HDFS操作最终调用Java类的`main()`方法实现[^1],脚本本质是封装了Java命令的快捷方式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值