(一)scp命令--基本使用
scp:它可以实现服务器与服务器之间的数据拷贝。
1.基本语法
scp -r $pdir/$fname $user@$host:$pdir/$fname
说明:
(1)-r: 表示递归拷贝。如果要拷贝的是文件夹,就把文件夹下的内容都拷贝
(2)$pdir/$fname: 要拷贝的文件路径/名称
(3)$user@host:$pdir/$fname: 目的地用户@主机:目的地路径/名称
注意:要输入相应的账号和密码!
目标
现在的目标是:要把hadoop100上的jdk文件夹拷贝到hadoop101中的相同的目录下。
操作
我们一起看具体操作:
1. 启动虚拟机。把hadoop100和hadoop101都启动。
2. 进入到hadoop100
3. 命令:
scp -r /opt/module/jdk1.8.0_212/ root@hadoop101:/opt/module/jdk1.8.0_212/
任务1:在hadoop102上,将hadoop101中/opt/module/hadoop-3.1.3目录拷贝到hadoop102上。
分析:使用scp进行拉取
操作:
- 先登录到hadoop2
- 使用命令:
scp -r root@hadoop101:/opt/module/hadoop-3.1.3 /opt/module/
任务2:在hadoop101上操作,将hadoop100中/opt/module目录下所有目录拷贝到hadoop102上。
分析:使用scp进行搭桥
操作:
- 登录hadoop101
- 使用命令:
scp -r root@hadoop100:/opt/module/* root@hadoop102:/opt/module
(二)rsync远程同步
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别是:rsync只对差异文件做更新,而scp是把所有文件都复制过去,所以它的效果更高一些。
1. 基本语法
rsync -av $pdir/$fname $user@$host:$pdir/$fname
语法说明:
(1)-a:归档拷贝,尽可能让拷贝的文件之间保持一致。
(2)-v:显示拷贝过程。
(3)$pdir/$fname: 要拷贝的文件路径/名称
(4)$user@host:$pdir/$fname: 目的地用户@主机:目的地路径/名称
2. 案例实操
下面我们去操作一下。
第一步:在两台机器上准备文件。
在hadoop100的/opt/conf/ 新建1.txt, 2.txt, 3.txt, 4.txt
做一次同步。
[root@hadoop100 ]$c
它会在hadoop101上创建conf目录。
第二步:在hadoop100中,添加新文件,5.txt, 6.txt, 7.txt
第三步:使用命令把新添加的文件同步到hadoop101中。
命令如下:
[root@hadoop100 ]$ rsync -av /opt/conf/ root@hadoop101:/opt/conf/
请特别注意目录最后的尾/。有/表示拷贝这文件夹下的内容,没有/表示会拷贝这个文件夹
1. HDFS(Hadoop Distributed File System)命令
HDFS 是 Hadoop 的分布式文件系统,用于存储大规模数据。以下是常用命令:
基本操作
-
查看文件系统状态
hdfs dfsadmin -report
-
查看 HDFS 中的文件和目录
hdfs dfs -ls /path/to/directory
-
创建目录
hdfs dfs -mkdir /path/to/new_directory
-
上传文件到 HDFS
hdfs dfs -put local_file_path /path/to/hdfs_directory
-
从 HDFS 下载文件
hdfs dfs -get /path/to/hdfs_file local_file_path
-
删除文件或目录
hdfs dfs -rm /path/to/file hdfs dfs -rm -r /path/to/directory
-
查看文件内容
hdfs dfs -cat /path/to/file
-
查看文件内容(分页)
hdfs dfs -cat /path/to/file | more
-
查看文件大小
hdfs dfs -du -h /path/to/directory
权限管理
-
设置文件权限
hdfs dfs -chmod 755 /path/to/file_or_directory
-
设置文件所有者
hdfs dfs -chown user:group /path/to/file_or_directory
2. MapReduce 命令
MapReduce 是 Hadoop 的分布式计算模型,用于处理大规模数据。
提交 MapReduce 任务
hadoop jar /path/to/jar_file.jar com.example.MainClass /input/path /output/path
查看 MapReduce 任务状态
yarn application -status <application_id>
列出所有正在运行的任务
yarn application -list
杀死 MapReduce 任务
yarn application -kill <application_id>
3. YARN(Yet Another Resource Negotiator)命令
YARN 是 Hadoop 的资源管理器,用于调度和管理计算资源。
查看 YARN 集群状态
yarn node -status
列出所有 YARN 应用程序
yarn application -list
查看 YARN 节点状态
yarn node -list
4. Hadoop 集群管理命令
启动 Hadoop 集群
start-dfs.sh # 启动 HDFS
start-yarn.sh # 启动 YARN
停止 Hadoop 集群
stop-dfs.sh # 停止 HDFS
stop-yarn.sh # 停止 YARN
格式化 NameNode
hdfs namenode -format
查看集群状态
hdfs dfsadmin -report