shell脚本将多个TXT文件写入多个表的hdfs路径
时间: 2024-12-20 08:18:06 AIGC 浏览: 72
要在HDFS上通过shell脚本批量写入多个TXT文件到不同的表路径,你可以创建一个bash脚本,该脚本使用`hadoop fs`命令(而不是`hdfs dfs`,因为`hadoop fs`更通用)。下面是一个简单的示例:
首先,假设你有多个TXT文件,比如`file1.txt`, `file2.txt`, `file3.txt`,它们分别对应到`table1`, `table2`, `table3`的HDFS路径。
```bash
# 定义源文件列表和目标目录
source_files=("file1.txt" "file2.txt" "file3.txt")
target_paths=("hdfs://path/to/table1/" "hdfs://path/to/table2/" "hdfs://path/to/table3/")
# 创建一个循环,遍历每个文件和目标路径
for file in "${source_files[@]}"; do
hadoop fs -put "$file" "$target_paths[$((${#source_files[@]} - ${#target_paths[@]} + ${i}))]"
i=$((i+1))
done
```
这个脚本会依次将每个`source_files`列表中的文件上传到相对应的`target_paths`列表中的路径。确保`hadoop fs`命令已安装并在环境变量中配置。
运行此脚本之前,记得检查权限设置,确保当前用户具有足够的权限写入这些HDFS路径。
阅读全文
相关推荐

















