既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
概述
Hadoop包括HDFS(文件系统),yarn(任务调配),mapReduce(编程模型,大数据并行运算),Hadoop集群其实就是HDFS集群。
- HDFS其实就是一个分布式的文件系统 。 HDFS分有NameNode和DataNode,NameNode是整个文件系统目录,基于内存存储,存储的是一些文件的详细信息,比如文件名、文件大小、创建时间、文件位置等。Datanode是文件的数据信息,也就是文件本身,不过是分割后的小文件。
- Yarn是一种新的 Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
- MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(射)“和"Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
简单叙述一下HDFS、Hive和HBase之间的关系 HDFS存储从数据源抽取到的数据,Hive主要解决数据处理和计算问题Hbase主要解决实时数据查询问题。 通过ETL工具将数据源抽取到HDFS存储;通过Hive清洗、处理和计算原始数据;HIve清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase,数据应用从HBase查询数据。 在大数据架构中,HDFS、Hive和HBase数据流一般如下图:
1. 规划
主机名 | IP | 用户名 | HDFS | YARN |
---|---|---|---|---|
hadoop01 | 172.16.126.71 | hadoop | NameNode | ResourceManager |
hadoop02 | 172.16.126.72 | hadoop | DataNode、SecondaryNameNode | NodeManager |
hadoop03 | 172.16.126.61 | hadoop | DataNode | NodeManager |
hadoop04 | 172.16.126.62 | hadoop | DataNode | NodeManager |
安装包下载地址: Index of /hadoop/common
2.初始化
1、配置主机名
举例:在hadoop01服务器上
#hostnamectl set-hostname hadoop01
2、编辑/etc/hosts
172.16.126.71 hadoop01
172.16.126.72 hadoop02
172.16.126.61 hadoop03
172.16.126.62 hadoop04
3、创建hadoop用户
创建用户
#useradd hadoop
重置hadoop密码
#passwd hadoop
4、通过hadoop用户配置秘钥互信(hadoop01服务器执行即可)
创建秘钥
#ssh-keygen -t rsa
分发秘钥
#ssh-copy ssh-copy-id hadoop02
#ssh-copy ssh-copy-id hadoop03
#ssh-copy ssh-copy-id hadoop04
5、关闭selinux及防火墙
关闭selinux
# setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
关闭防火墙
#systemctl stop firewalld &&systemctl disable firewalld
6、 安装java
安装java可以采用yum安装或者手工配置的方式,这里采用yum安装
yum install jdk -y
7、解压hadoop-3.3.4.tar.gz安装包至/data/,并重命名为hadoop目录,实际部署目录是/data/hadoop/
#tar zxvf hadoop-3.3.4.tar.gz -C /data/
#mv /data/hadoop-3.3.4 /data/hadoop
8、配置环境变量/etc/profile,添加的内容如下:
export HADOOP_HOME=/data/hadoop/
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64/jre/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin
环境变量添加完后加载环境变量
#source /etc/profile
9、创建文件存储目录
hadoop01
#mkdir /data/hadoop/hdfs/full/dfs/name -p
hadoop02
#mkdir /data/hadoop/hdfs/full/dfs/namesecondary -p
#mkdir /data/hadoop/hdfs/full/dfs/data -p
hadoop03
#mkdir /data/hadoop/hdfs/full/dfs/data -p
hadoop04
#mkdir /data/hadoop/hdfs/full/dfs/data -p
3.配置
配置时需要修改“/data/hadoop/etc/hadoop”目录下的配置文件,其中HDFS涉及到的配置文件包括workers、core-site.xml、hdfs-site.xml,Yarn涉及到的配置文件包括yarn-site.xml, mapReduce 涉及到的配置文件包括mapred-site.xml、。
- 修改workers文件 该文件内容可以指定某几个节点作为数据节点,默认为localhost,将其删除并修改为如下内容:
hadoop02
hadoop03
hadoop04
2.修改core-site.xml文件
fs.defaultFS:指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
</configuration>
3.hdfs-site.xml文件
dfs.secondary.http.address:secondarynamenode运行节点的信息,应该和namenode存放在不同节点 dfs.repliction:hdfs的副本数设置,默认为3 dfs.namenode.name.dir:namenode数据的存放位置,元数据存放位置 dfs.datanode.data.dir:datanode数据的存放位置,block块存放的位置
<property>
<name>dfs.replication</name>
![img](https://img-blog.csdnimg.cn/img_convert/a40a4bb21f2622f8fa4c8d7f233c197d.png)
![img](https://img-blog.csdnimg.cn/img_convert/72998d531d299d83e4476cd6c4f3e9e5.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**