Hadoop伪分布式集群搭建

本文详细介绍了如何在Linux环境下搭建Hadoop的伪分布式集群,包括环境准备、配置文件设置、NameNode格式化、HDFS启动以及通过WebUI进行监控。同时,还提供了wordcount程序的运行步骤,帮助读者实践Hadoop的基本操作。

伪分布式模式介绍

1.特点
    - 在⼀台机器上安装,使⽤的是分布式思想,即分布式⽂件系统,⾮本地⽂件系统。
    - Hdfs涉及到的相关守护进程(namenode,datanode,secondarynamenode)都运⾏在⼀台机器上,都是独⽴的java进程。
2. ⽤途
	⽐Standalone mode 多了代码调试功能,允许检查内存使⽤情况,HDFS输⼊输出,以及其他的守护进程交互

伪分布式搭建环境准备

  1. 总纲
1. 确保防⽕墙是关闭状态。
2. 确保NAT模式和静态IP的确定 (192.168.10.101)
3. 确保/etc/hosts⽂件⾥, ip和hostname的映射关系
4. 确保免密登陆localhost有效
5. jdk和hadoop的环境变量配置
  1. 防⽕墙关闭确认
[root@qianfeng01 ~]# systemctl stop firewalld
[root@qianfeng01 ~]# systemctl disable firewalld.service
[root@qianfeng01 ~]# systemctl stop NetworkManager
[root@qianfeng01 ~]# systemctl disable NetworkManager
#最好也把selinux关闭掉,这是linux系统的⼀个安全机制,进⼊⽂件中将SELINUX设置为disabled
[root@qianfeng01 ~]# vi /etc/selinux/config
.........
SELINUX=disabled
.........
  1. 配置/etc/hosts⽂件
-- 进⼊hosts⽂件,配置⼀下ip和hostname
[root@qianfeng01 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
192.168.10.101 qianfeng01 <====添加本机的静态IP和本机的主机名之间的映射关系
  1. 确保ssh对localhost的免密登陆认证有效
# 1. 使⽤rsa加密技术,⽣成公钥和私钥。⼀路回⻋即可
[root@qianfeng01 ~]# ssh-keygen -t rsa
# 2. 进⼊~/.ssh⽬录下,使⽤ssh-copy-id命令
[root@qianfeng01 .ssh]# ssh-copy-id root@localhost
# 3. 进⾏验证,去掉第⼀次的询问(yes/no)
[hadoop@qianfeng01 .ssh]# ssh localhost
  1. 安装Jdk和Hadoop,配置相关环境变量
-1. 上传和解压两个软件包
[root@qianfeng01 ~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@qianfeng01 ~]# tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/

-2. 进⼊local⾥,给两个软件更名
[root@qianfeng01 ~]# cd /usr/local/
[root@qianfeng01 local]# mv 1.8.0_221/ jdk
[root@qianfeng01 local]# mv hadoop-2.7.6/ hadoop

-3. 配置环境变量
[hadoop@qianfeng01 local]# vi /etc/profile

.....省略...........

#java environment
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

#hadoop environment
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

伪分布式相关⽂件配置

  1. core-site.xml的配置
[root@qianfeng01 ~]# cd $HADOOP_HOME/etc/hadoop
[root@qianfeng01 hadoop]# vi core-site.xml
<configuration>
	<!-- 配置分布式⽂件系统的schema和ip以及port,默认8020-->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://localhost:8020/</value>
	</property>
</configuration>
扩展: hadoop1.x的默认端⼝是9000,hadoop2.x的默认端⼝是8020,使⽤哪⼀个都可以
  1. hdfs-site.xml的配置
root@qianfeng01 hadoop]# vi hdfs-site.xml
<configuration>
    <!-- 配置副本数,注意,伪分布模式只能是1。-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
  1. hadoop-env.sh的配置:指定jdk的环境
[root@qianfeng01 hadoop]# vi hadoop-env.sh
................
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk
..................

格式化NameNode

  1. 格式化命令
[root@qianfeng01 hadoop]# hdfs namenode -format 
  1. 格式化的⽇志解读

在这里插入图片描述

启动HDFS

  1. 启动伪分布式
[root@qianfeng01 hadoop]# start-dfs.sh 
  1. 启动滚动信息说明

在这里插入图片描述

  1. jps命令查看守护进程
从上图我们可以看到,启动脚本会开启分布式⽂件系统上的相关进程:
namenode
datanode
secondarynamenode

WebUI查看

可以在浏览器上输⼊:192.168.10.101:50070 来查看⼀下伪分布式集群的信息
--1. 浏览⼀下⻚⾯上提示的ClusterID,BlockPoolID
--2. 查看⼀下活跃节点(Live Nodes)的个数,应该是1个

Compiled:编译 hadoop是由kshvachk⼯具集成的
Cluster ID:集群id
Block Pool ID:datanode节点的block池的id,每个datanode节点的都要⼀样

在这里插入图片描述

程序案例演示:wordcount程序

  1. 准备要统计的两个⽂件,存储到/root/data/下
--1. 创建data⽬录
[root@qianfeng01 hadoop]# mkdir ~/data
--2. 将以下两个⽂件上传到data⽬录下
- poetry1.txt
- poetry2.txt
  1. 在hdfs上创建存储⽬录
[root@qianfeng01 hadoop]# hdfs dfs -mkdir /input 
  1. 将本地⽂件系统上的上传到hdfs上,并在web上查看⼀下
[root@qianfeng01 hadoop]$ hdfs dfs -put ~/data/poetry* /input/

在这里插入图片描述

  1. 运⾏⾃带的单词统计程序wordcount
[root@qianfeng01 hadoop]# cd $HADOOP_HOME
[root@qianfeng01 hadoop]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /out

5.查看webui

在这里插入图片描述

6.查看part-r-00000⽂件

[root@qianfeng01 hadoop]# hdfs dfs -cat /out/part-r-00000 
### Hadoop伪分布式集群搭建教程 Hadoop 是一种用于处理大规模数据集的开源框架,支持在廉价硬件组成的大型集群上运行应用程序。对于初学者来说,可以通过构建伪分布式环境来熟悉其工作方式。 #### 1. 安装 Java 开发工具包 (JDK) Hadoop 运行依赖于 JDK,因此需要先安装并配置好 JDK 的环境变量。以下是具体操作步骤: - 下载适合系统的 JDK 版本,并完成安装。 - 编辑 `~/.bashrc` 文件以设置 JAVA_HOME 变量: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin ``` - 执行命令使更改生效: ```bash source ~/.bashrc ``` 验证是否成功安装 JDK 并将其加入环境变量中[^2]。 #### 2. 下载与解压 Hadoop 软件包 下载最新版本的 Hadoop 压缩包至本地计算机,并将其解压缩到指定位置。例如: ```bash tar -zxvf hadoop-3.3.0.tar.gz -C /opt/ cd /opt/hadoop-3.3.0 ``` #### 3. 修改核心配置文件 core-site.xml 此文件定义了客户端连接 NameNode 和 DataNode 的基本参数。进入 `/etc/hadoop/core-site.xml` 后添加如下内容: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 这一步骤指定了默认文件系统为 HDFS,并设定了名称节点监听端口为 9000[^1]。 #### 4. 配置 hdfs-site.xml 文件 该文件主要用于设定 HDFS 数据块大小以及副本数量等属性。同样位于 `/etc/hadoop/` 目录下,修改后的样例代码如下所示: ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` 这里我们将复制因子调整成 1 来适应单机环境下资源有限的情况[^3]。 #### 5. 设置 MapReduce 框架相关选项 mapred-site.xml 如果发现当前目录不存在名为mapred-site.xml模板,则可以从备份文件重命名得到它;然后按照下面的方式填写字段信息即可满足需求: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` #### 6. 更新 yarn-site.xml 中 YARN 参数 最后还需关注 ResourceManager 地址和服务启动顺序等问题,在相应部分追加以下条目实现自动化管理功能: ```xml <configuration> <!-- Reducer 获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- NodeManager 上内存总量限制,默认单位 MB--> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>8192</value> </property> ... </configuration> ``` #### 7. 初始化 HDFS 文件系统 执行初始化命令前需确保所有必要的改动都已经保存完毕,接着输入下列指令创建根目录结构: ```bash bin/hdfs namenode -format ``` #### 8. 启动服务进程 依次开启各个组件对应的守护线程以便正常使用整个平台的各项能力: ```bash sbin/start-dfs.sh sbin/start-yarn.sh ``` 至此已完成基于 Linux 系统之上部署简易版 Hadoop 单节点模拟群组的操作流程说明^。 ```python print("Congratulations! Your pseudo-distributed cluster has been set up successfully.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值