1.命令
1.1 hadoop查看数据
在hadoop目录中 cd tmp/dfs/data/current/BP-1702078467-192.168.64.101-1642000699987/current/ finalized/subdir0/subdir0/
2.2 创建文件夹命令
hadoop fs -mkdir -p /test/input
3.3 上传文件命令
hadoop fs -put a.txt /test/input
2.上传和下载
2.1 上传
(1)client向namenode发送请求(1.确保自己有相关权限,文件是否存在等) (2)请求文件写入位置 (3)创建Dataoutputstream(文件输出流),创建pipeline(管道),以packet(64k)的方式写入 (4)第一个block最后一个节点写入完成后,返回ack,确认将数据写入(该ack以反向顺序发送回client),client继续写入下一个block(所以写入方式是串行写入). (5)最后一个block写入完成后,client关闭输出流,并通知namenode写入数据成功.
2.2 下载
下载时客户端向namenode发送请求,得到block的位置,然后客户端看一下哪个副本离自己近,打开一个输入流,并行读入block,然后合并成一个文件,关闭输入流.
3. 常用hadoop hdfs shell命令
ps:hadoop fs 和 hdfs dfs 命令等价
3.1 创建多级目录
hadoop fs -mkdir -p /test/output
3.2 查看目录
hadoop fs -ls /test
3.3 递归查看多级目录
hadoop fs -lsr /test
3.4 上传文件到HDFS
hadoop fs -put 1.txt /test/input hadoop fs -put 1.txt /test/input/2.txt
3.5 查看文件内容(尽量不用)
hadoop fs -cat 1.txt /test/input
3.6 从HDFS下载文件到本地
hadoop fs -get /test/input/NOTICE.txt /opt/data hadoop fs -get /test/input/NOTICE.txt /opt/data/NOTICE1.txt
3.7 删除HDFS上的文件
hadoop fs -rm /test/input/2.txt
3.8 删除HDFS上的目录(空目录)
hadoop fs -rmdir /test/output
3.9 强制删除HDFS上的文件夹(不必须空)或文件
hadoop fs -rm -r /test/input hadoop fs -rmr /test/input
4.MapReduce工作流程
当接收到一个job时,先进行分片,就是根据hdfs上的block把数据分别加载进来,然后进行Map阶段,主要完成数据的转换操作(相当于数据清洗),然后进行Reduce阶段,主要完成数据的聚合操作(把清洗后的数据分别聚合).
|