集群间数据拷贝
-
cp:本地之间的内容复制
-
scp:远程复制,跨节点之间的数据复制
不管数据是否一致,都复制一遍,比较浪费资源
-
rsync:远程同步,跨节点之间的数据同步
两个节点之间相同目录下,不一样的数据进行同步,节省资源
-
hdfs dfs -cp:在同一个集群之间进行数据的复制
-
distcp:跨集群的远程复制
语法:
hadoop distcp <srcurl> <desturl>
注意:
-
没有远程本地之分,都属于远程,路径必须写hdfs://ip:port
-
distcp需要执行MapReduce程序,所以必须开启yarn服务
-
复制文件和目录是一样的,不需要加级联操作
如果为了保证安全,可以在目录后面加 /*
-
小文件管理
**小文件:**在hdfs中,有非常多的容量非常小的文件。
每个小文件都必须占用一个block,严重浪费资源
如果小文件过多,对整个hdfs是灾难性的影响
**解决思路:**把多个小文件整合成一个文件进行处理
解决方法:
-
创建存档
hadoop archive -archiveName <name.har> -p <parentPath> <src>* <dest>
-
查看存档
hdfs dfs -lsr /xxx/xxx.har 正常以目录形式查看 hdfs dfs -lsr har:///xx/xxx.har 查看存档的内容列表 hdfs dfs -cat /xx/xxx.har/part-x 查看存档具体内容
-
解除存档
hdfs dfs -cp har:///xxx/xxx.har/* desturl
配额管理
设置hdfs里目录存储的数量和容量的上限
-
数量上的配额
hdfs dfsadmin -setQuota 数量 目录... 设置目录数量上限 hdfs dfsadmin -clrQuota 目录... 取消设置目录数量上限
-
容量上的配额
hdfs dfsadmin -setSpaceQuota 容量 目录... 设置目录容量上限 hdfs dfsadmin -clrSpaceQuota 目录... 取消设置目录容量量上限
Windows环境下配置Hadoop
步骤
-
解压缩
-
配置环境变量
%HADOOP_HOME%/bin;%HADOOP_HOME%/sbin
-
修改配置文件
按照windows的实际情况进行填写,覆盖原有配置文件
-
把windows需要的bin目录全部复制到原bin目录中
-
把hadoop.dll复制到C://windows/System32
-
格式化
hdfs.cmd / hadoop.cmd namenode -format
-
启动相应服务
start-all.cmd
在windows环境下,可以不启动服务也可以使用
-
正确执行