1. HDFS
HDFS(Hadoop Distributed File System) 它是一个文件系统 用于存储文件 通过目录树来定位文件 其次它是分布式的
HDFS的使用场景: 适合一次写入 多次读出的场景 且不支持文件的修改
优点:
- 高容错性 自动保存多个副本 某一个副本丢失 可以自动恢复
- 适合处理大数据
- 可构建在廉价机器上 通过多副本机制 提高可靠性
缺点:
- 不适合低延时时数据访问 比如毫秒级的数据
- 无法高效的对大量小文件进行存储
- 不支持并发写入 文件随机修改 仅支持数据的append 追加
2. 命令行操作
以 hadoop fs 或者 hdfs dfs 为关键字
2.1. HDFS 到 HDFS
大部分linux命令都支持 需要在hadoop fs -拼接命令
cp 如:hadoop fs -cp 1.txt 2.txt
mv
chown
chmod
mkdir
du 统计文件夹的大小信息
df
cat
rm
setrep 设置HDFS中文件的副本数据 默认为节点(集群)数 并且不可以超节点数最大为节点数
hadoop fs -setrep 10 /1.txt
2.2. 本地 到 HDFS
put 上传
#hadoop fs -put 文件 HDFS内文件路径
hadoop fs -put 1.txt /
copyFromLocal 从本地复制到HDFS 支持多线程
#hadoop fs -copyFromLocal 文件 HDFS内文件路径
hadoop fs -copyFromLocal 1.txt /
moveFromLocal 从本地复制到HDFS
#hadoop fs -moveFromLocal 文件 HDFS内文件路径
hadoop fs -moveFromLocal 1.txt /
appendToFile 将指定文件内容或者指定内容追加到HDFS文件末尾
#hadoop fs -appendToFile 文件 HDFS内文件路径 如要指定内容则文件名忽略填写 - 既可
hadoop fs -appendToFile 2.txt /1.txt
2.3. HDFS 到 本地
get 从HDFS下载到本地
#hadoop fs -get HDFS内文件 本地文件路径
hadoop fs -get /2.txt /
copyToLocal 与get一致
getmerge 合并下载
#hadoop fs -get HDFS内多个文件 本地文件
hadoop fs -get /*.txt /1.txt