hdfs的shell命令格式1: hadoop fs -命令 参数
hdfs的shell命令格式2: hdfs dfs -命令 参数
查看目录下内容: hdfs df
linux本地上传文件到hdfs中: hdfs dfs -put linux本地要上传的目录或者文件路径 hfds中目标位置绝对路径
hdfs中下载文件到liunx本地: hdfs dfs -get hfds中要下载的目录或者文件的绝对路径 linux本地目标位置路径
练习:
# 1.linux本地远程查看hdfs根目录文件列表
[root@node1 ~]# hdfs dfs -ls /
Found 3 items
drwxr-xr-x - root supergroup 0 2023-08-18 21:44 /source
drwxrwx--- - root supergroup 0 2023-08-12 17:52 /tmp
drwxr-xr-x - root supergroup 0 2021-10-24 02:25 /user
# 2.linux本地远程在hdfs根目录中创建itcast目录,最后验证是否创建成功
[root@node1 ~]# hdfs dfs -mkdir /itcast
您在 /var/spool/mail/root 中有新邮件
[root@node1 ~]# hdfs dfs -ls /
Found 4 items
drwxr-xr-x - root supergroup 0 2023-08-26 21:41 /itcast
drwxr-xr-x - root supergroup 0 2023-08-18 21:44 /source
drwxrwx--- - root supergroup 0 2023-08-12 17:52 /tmp
drwxr-xr-x - root supergroup 0 2021-10-24 02:25 /user
s -ls 目录的绝对路径
创建目录: hdfs dfs -mkdir 目录的绝对路径
创建文件: hdfs dfs -touch 文件的绝对路径
移动目录/文件: hdfs dfs -mv 要移动的目录或者文件的绝对路径 目标位置绝对路径
复制目录/文件: hdfs dfs -cp 要复制的目录或者文件的绝对路径 目标位置绝对路径
删除目录/文件: hdfs dfs -rm [-r] 要删除的目录或者文件的绝对路径
把本地文件内容追加到hdfs指定文件中: hdfs dfs -appendToFile 本地文件 hdfs文件绝对路径
查看文件的内容: hdfs dfs -cat 要查看的文件的绝对路径 注意: 除了cat还有head,tail也能查看
查看hdfs其他shell命令帮助: hdfs dfs --help
注意: hdfs有相对路径,如果操作目录或者文件的时候没有以根目录/开头,就是相对路径,默认操作的是/user/root
# 3.linux本地远程在hdfs根目录中创建a.txt和b.txt文件,最后验证是否创建成功
[root@node1 ~]# hdfs dfs -touch /a.txt /b.txt
您在 /var/spool/mail/root 中有新邮件
[root@node1 ~]# hdfs dfs -ls /
Found 6 items
-rw-r--r-- 3 root supergroup 0 2023-08-26 21:43 /a.txt
-rw-r--r-- 3 root supergroup 0 2023-08-26 21:43 /b.txt
drwxr-xr-x - root supergroup 0 2023-08-26 21:41 /itcast
drwxr-xr-x - root supergroup 0 2023-08-18 21:44 /source
drwxrwx--- - root supergroup 0 2023-08-12 17:52 /tmp
drwxr-xr-x - root supergroup 0 2021-10-24 02:25 /user
# 4.linux本地远程把hdfs根目录的a.txt移动到itcast目录中
[root@node1 ~]# hdfs dfs -mv /a.txt /itcast
# 5.linux本地远程把hdfs根目录的b.txt复制到itcast目录中
[root@node1 ~]# hdfs dfs -cp /b.txt /itcast
# 6.linux本地远程查看hdfs根目录观察移动和复制后文件列表
[root@node1 ~]# hdfs dfs -ls /
Found 5 items
-rw-r--r-- 3 root supergroup 0 2023-08-26 21:43 /b.txt
drwxr-xr-x - root supergroup 0 2023-08-26 21:44 /itcast
drwxr-xr-x - root supergroup 0 2023-08-18 21:44 /source
drwxrwx--- - root supergroup 0 2023-08-12 17:52 /tmp
drwxr-xr-x - root supergroup 0 2021-10-24 02:25 /user
# 7.linux本地远程把根目录的b.txt删除
[root@node1 ~]# hdfs dfs -rm /b.txt
Deleted /b.txt
# 8.在linux本地创建一个h.txt文件,存储内容为'hello hadoop'
[root@node1 ~]# echo 'hello hadoop' > /root/h.txt
[root@node1 ~]# ls
anaconda-ks.cfg h.txt
# 9.把linux本地h.txt文件内容追加到hdfs的itcast/a.txt文件中
[root@node1 ~]# hdfs dfs -appendToFile /root/h.txt /itcast/a.txt
[root@node1 ~]# hdfs dfs -cat /itcast/a.txt
hello hadoop
# 10.把linux本地h.txt文件上传到hdfs的itcast目录中,并验证是否上传成功
[root@node1 ~]# hdfs dfs -put /root/h.txt /itcast
[root@node1 ~]# hdfs dfs -ls /itcast
Found 3 items
-rw-r--r-- 3 root supergroup 13 2023-08-26 21:48 /itcast/a.txt
-rw-r--r-- 3 root supergroup 0 2023-08-26 21:44 /itcast/b.txt
-rw-r--r-- 3 root supergroup 13 2023-08-26 21:49 /itcast/h.txt
# 11.把hdfs的itcast目录下a.txt文件下载到linux本地root目录中,并验证是否下载成功
[root@node1 ~]# hdfs dfs -get /itcast/a.txt /root
[root@node1 ~]# ls /root
anaconda-ks.cfg h.txt a.txt
问题1:
简述下分布式和集群的区别?
参考答案:
集群和分布式,都是描述的一组计算机。集群的所有节点跑的是同样的任务,集群本质是多台服务器联合起来独立做相同的任务(多个服务器分担客户端发来的请求) 。而分布式系统的节点跑的是分解后的任务,分布式本质是多台服务器协同配合完成同一个大任务(每个服务器都只完成大任务拆分出来的单独1个子任务)
以修手机为例:维修手机要分为检测、维修、测试三个环节,当多部手机都需要维修的时候,为了提高效率,雇了10位工程师。如果每个工程师维修时,对每台手机进行检测、维修和测试,这就是集群的工作方式。如果2位工程师负责检测,5位工程师负责维修,剩下的3位工程师负责测试,这就是分布式的工作方式。
问题2:
简述hadoop技术栈的组成?
参考答案:
首先hadoop技术栈由HDFS , MapReduce ,YARN三大组件组成
其次三大组件核心知识如下:
HDFS是(分布式文件系统),解决海量数据存储
元数据是描述核心数据的数据
NameNode是集群当中的主节点,主要用于管理集群当中的各种数据
SecondaryNameNode是主要能用于辅助NameNode进行文件块元数据存储
DataNode是集群当中的从节点,主要用于存储真实的海量的业务数据
YARN是(作业调度和集群资源管理的框架),解决资源任务调度
ResourceManager是接收用户的计算请求任务,并负责集群的资源管理和分配
NodeManager是 负责执行主节点分配的任务(给MR的计算程序提供资源)
MapReduce是(分布式运算编程框架),解决海量数据计算
核心思想就是分而治之 Map负责分解,Reduce负责合并
最后概括下MapReduce计算需要的数据和产生的结果需要HDFS来进行存储,MapReduce的运行需要由Yarn集群来提供资源调度。