快捷导航
1、hadoop概述
haoop是一个由Apache基金会所开发的分布式系统基础框架;主要解决,海量数据存储和海量数据分析计算问题。
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈
2、hadoop三大发行版本
- cloudera对应产品CDH
- hortonworks对应产品HDP
- hortonworks被clouder收购,推出的新产品CDP
3、Hadoop的优势
- 高可靠性
Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失 - 高扩展性
在集群间分布任务数据,可方便的拓展数以千计的节点 - 高效性
在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度 - 高容错性
能自动将失败的任务重新分配
4、Hadoop组成(三大组件)
- HDFS:hadoop distrubuted file system分布式文件存储系统
- NameNode(nn):存储文件元数据,比如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表DataNode等。
- DataNode(dn):在本地文件系统存储文件数据块
- Secondary NameNode(2nn):协助NameNode处理数据,定时备份namenode数据
- MapReduce:负责计算
Map:并行处理输入数据
Reduce:对map阶段数据进行汇总 - Yarn:资源调度
- ResourceManager(RM):集群资源(cpu、内存)管理者
- NodeManager(NM):单个节点资源管理者
- ApplicationMaster(AM):当个任务运行的管理者
- Container容器:相当于一台独立服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等
5、hadoop启动
1、 cd /opt/module/hadoop-3.3.0/sbin/
2、./start-all.sh
3、jps
查看是否正确启动了进程,正常启动如下截图
4、如果缺少namenode,执行下列代码
rm -rf /tmp/hadoop-hadoop/dfs/name/*
hadoop namenode -format
cd /opt/module/hadoop-3.3.0/sbin/
./stop-all.sh
./start-all.sh
5、如果缺少datanode则执行下列代码
rm -rf /tmp/hadoop-hadoop/dfs/data/*
hadoop datanode -format
./stop-all.sh
./start-all.sh
jps
6、HDFS命令操作
hadoop fs
hdfs dfs
1. 从本地剪切到HDFS
hadoop fs -moveFormLocal 本地路径名 要上传到HDFS的指定路径
[hadoop@node100 123]$ hadoop fs -moveFromLocal ./try.txt /test/a
2.从本地复制HDFS
方法一:hadoop fs -copyFromLocal 本地路径名 要复制到的HDFS路径
方法二:hadoop fs -put 本地路径名 要复制到HDFS的路径
[hadoop@node100 123]$ hadoop fs -copyFromLocal ./score.txt /test/a
[hadoop@node100 123]$ hadoop fs -put ./h_q.sh /test/a
3. 追加一个本地文件到HDFS已经存在的文件的末尾
hadoop fs -appendToFile 本地文件名 要追加到的HDFS文件名路径
4. 从HDFS复制到本地
方法一:hadoop fs -copyToLocal HDFS要复制的文件绝对路径名 指定本地文件路径名
方法二:hadoop fs -get HDFS要复制的文件绝对路径名 指定本地文件路径名
[hadoop@node100 123]$ hadoop fs -copyToLocal /test/a/try.txt /home/hxx
[hadoop@node100 123]$ hadoop fs -get /test/a/try.txt /home/hxx
5. 创建HDFS目录
hadoop fs -mkdir 20240619
在浏览器,用ip查看;如果没有指定目录就会默认创建到/user/hadoop下
6. 显示HDFS目录信息
hadoop fs -ls
7.查看HDFS文件内容
hadoop fs -cat /20240619/test.sh
8.HDFS复制
hadoop fs -cp 需复制的文件路径 复制到指定的文件路径
[hadoop@node100 123]$ hadoop fs -mkdir /test
[hadoop@node100 123]$ hadoop fs -mkdir /test/a
[hadoop@node100 123]$ hadoop fs -mkdir /test/b
[hadoop@node100 123]$ hadoop fs -cp /test/a /test/b
9. HDFS剪切
hadoop fs -mv 需要剪切的路径 放置到指定的路径
[hadoop@node100 123]$ hadoop fs -mv /test/b /test/a
10.HDFS更改权限
hadoop fs -chmod 权限 更改文件路径名
对于权限设置理解不清楚的可以看该博客用户身份与权限的部分
hadoop fs -chown 更改组 更改的文件路径名
11.删除
hadoop fs -rm -r 指定文件路径名
[hadoop@node100 hxx]$ hadoop fs -rm -r /test/a/h_q.sh
Deleted /test/a/h_q.sh
12、显示文件最后1kb的内容
hadoop fs -tail /shengtu/test.sh
13、统计文件夹的大小
hadoop fs -du -h 查看的路径
[hadoop@node100 hxx]$ hadoop fs -du /test
315 315 /test/a
14、设置HDFS中文件的副本数
hadoop fs -setrep 3 /shengtu/test.sh