【图解大数据技术】Hadoop、HDFS、MapReduce、Yarn

【图解大数据技术】Hadoop、HDFS、MapReduce、Yarn

Hadoop

Hadoop是Apache开源的分布式大数据存储与计算框架,由HDFS、MapReduce、Yarn三部分组成。广义上的Hadoop其实是指Hadoop生态圈,包括的组件就不只是HDFS、MapReduce、Yarn,还包括Spark、Flink、Zookeeper、Sqoop、Hive、HBase等工具,但是我们讨论的不是Hadoop生态圈。

在这里插入图片描述

由于要解决大数据量的存储和计算问题,因此数据不能再存储在关系型数据库,而是存储在分布式文件系统HDFS中;然后通过分布式离线计算框架MapReduce进行计算;而Yarn则是负责资源调度,也就是决定计算任务调度到哪些节点上执行。

在这里插入图片描述

HDFS

HDFS是一个分布式文件系统,用于存储海量的文件数据。其优点是可以存储达PB级别的文件数据,百万级别以上的文件数量;而缺点则是不适合低延时数据访问,并且不支持文件修改,只支持追加。

HDFS架构

在这里插入图片描述

HDFS一共由四部分组成:Client、NameNode、DataNode、SecondaryNameNode。

  • Client:负责文件上传之前的文件切分,切分好后传输每一个文件数据块到DataNode,上传数据块前询问NameNode该数据
### 一、Hadoop大数据平台概述 Hadoop 是一种分布式计算框架,能够处理大规模数据集。它由多个组件构成,主要包括 HDFS (分布式文件系统)、YARN (资源管理器) 和 MapReduce (编程模型)[^1]。 --- ### 二、Hadoop 运行环境准备 #### 虚拟机配置 为了搭建 Hadoop 平台,需要先准备好虚拟机环境。以下是具体步骤: 1. **安装虚拟机软件** 使用 VMware 或 VirtualBox 安装 Linux 系统作为基础运行环境[^2]。 2. **网络设置** 配置静态 IP 地址以便于集群节点之间的通信[^3]。 3. **关闭防火墙和 SELinux** 执行以下命令禁用安全机制: ```bash sudo systemctl stop firewalld sudo setenforce 0 ``` 4. **时间同步服务** 在所有节点上启用 NTP 时间同步工具以保持一致性: ```bash yum install ntp -y systemctl start ntpd systemctl enable ntpd ``` --- ### 三、Java 环境配置 Hadoop 基于 Java 开发,因此需要提前安装 JDK 并完成路径变量声明。 1. 下载并解压 JDK 到指定目录 `/export/server/jdk`。 2. 编辑 `~/.bashrc` 文件加入如下内容: ```bash export JAVA_HOME=/export/server/jdk export PATH=$JAVA_HOME/bin:$PATH ``` 3. 加载新配置: ```bash source ~/.bashrc java -version ``` --- ### 四、Hadoop 的安装与配置 #### 1. 解压缩 Hadoop 包 下载官方版本并将 tar.gz 文件放置到目标机器上的 `/export/server/` 目录下: ```bash tar -zxvf hadoop-x.x.x.tar.gz -C /export/server/ ``` 编辑 `.bashrc` 添加 Hadoop 变量定义: ```bash export HADOOP_HOME=/export/server/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH source ~/.bashrc ``` #### 2. 修改核心配置文件 ##### a. hdfs-site.xml 用于设定 NameNode 数据存储位置以及副本数量: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/data/datanode</value> </property> </configuration> ``` ##### b. core-site.xml 指定默认 FS URI 和临时工作区: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode-host:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> </property> </configuration> ``` ##### c. mapred-site.xml 切换至 YARN 架构支持 MapReduce 计算任务调度: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` ##### d. yarn-site.xml 调整 ResourceManager 设置参数优化性能表现: ```xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>resourcemanager-host</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` --- ### 五、SSH 密钥免密码登录 为了让各节点间无障碍通讯,在主控节点生成公私钥对并向其他成员推送授权信息: ```bash ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` 测试连接无需输入密码即可成功访问远程主机。 --- ### 六、启动 Hadoop 集群 执行初始化操作前需格式化 Namenode 日志索引结构体: ```bash hdfs namenode -format start-dfs.sh jps ``` 验证进程是否正常加载(Namenode, Datanode, SecondaryNameNode)。 接着开启 YARN 组件: ```bash start-yarn.sh mr-jobhistory-daemon.sh start historyserver ``` 通过浏览器查看状态页面确认功能可用性: - HDFS Web UI: http://namenode-ip:9870 - YARN Resource Manager Dashboard: http://resourcemanager-ip:8088 --- ### 七、提交第一个 WordCount 测试作业 创建样本数据源上传至 HDFS 上供后续分析调用: ```bash mkdir -p /datas/tmp/wordcount/input echo "hello world hello" > /datas/tmp/wordcount/input/sample.txt hdfs dfs -put /datas/tmp/wordcount/input /input ``` 利用内置示例程序发起批量统计请求: ```bash bin/yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples*.jar wordcount /input /output hdfs dfs -cat /output/part-r-00000 ``` --- ### 总结 以上流程涵盖了从零开始构建完整的 Hadoop 生态体系所需的关键环节。每一步都紧密关联最终形成稳定高效的生产级解决方案[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值