Hadoop分布模式

Hadoop分布模式

Hadoop本地模式

特点

  1. 没有HDFS(文件系统)==》处理的数据来源于本地的Linux文件
  2. 没有Yarn(资源管理系统)
  3. 只能测试MapReduce程序,作为一个普通的Java程序
  4. 一般用于开发和测试

部署方式
1.修改hadoop-env.sh文件,这个文件是hadoop配置环境变量的脚本,包含了设置 Hadoop 运行所需环境变量的命令,比如 Java 的安装路径(JAVA_HOME)、Hadoop 的安装路径(HADOOP_HOME)等。
2.#The java implementation to use.是写当前Java环境变量的,在此处增加当前Java环境

测试Mapreduce程序
单词计数
1. 准备测试数据
路径:/root/temp/data.txt
在这里插入图片描述
2.测试用例
路径:/root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
语句:hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /root/temp/ /root/output/wc
第一个路径为输入,表示此路径下所有的文件(只有以上建立的文件)
第二个为输出,表示内容输出到此路径

00000表示分区,一下为输出结果
在这里插入图片描述

Hadoop伪分布模式

特点

  1. 在单机上,模拟一个分布式环境
  2. 具备Hadoop所有的功能(HDFS,Yarn)
  3. 一般只用于测试和开发

部署方式
1. 完成本地模式安装(参上)

2. 配置文件总览 (以下内容均在/root/training/hadoop-2.7.3/etc/hadoop中)

参数文件配置参数参考值
hadoop-env.shJAVA_HOME/root/training/jdk1.8.0_181
hdfs-site.xmldfs.replication1
dfs.permissionsfalse
core-site.xmlfs.defaultFShdfs://:9000
hadoop.tmp.dir/root/training/hadoop-2.7.3/tmp
mapred-site.xmlmapreduce.framework.nameyarn
yarn-site.xmlyarn.resourcemanager.hostname
yarn.nodemanager.aux-servicesmapreduce_shuffle

说明:

  • hadoop-env.sh 属于本地模式的配置内容
  • hdfs-site.xml和core-site.xml 用于配置HDFS
  • mapred-site.xml 和yarn-site.xml用于配置Yarn
  • 以下的配置代码请仔细检查,中间不要出现空格,否则容易出现格式化报警

3. hdfs-site.xml

dfs.replication
用于配置数据块的冗余度,默认为3
一般而言,数据块的冗余度和数据节点的数量一样,但冗余度最大不超过3
例:当保存某个数据时,系统默认保存3份

修改:当前是伪分布环境,只有1个节点,修改为1

 <property>
  <name>dfs.replication</name>
  <value>1</value>
 </property>

dfs.permissions
用于配置HDFS权限检查,即系统对所有的目录或者文件进行权限验证。只有当请求者具有足够的权限时,请求才会被允许执行。true:执行;false:不执行

 <property>
  <name>dfs.permissions</name>
  <value>false</value>
 </property>

4. core-site.xml
fs.defaultFS
配置NameNode(HDFS的主节点)的地址
NameNode:HDFS主节点,当了解NameNode地址时==》了解HDFS的位置 ==》操作HDFS
9000时RPC通信的端口

 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://bigdata111:9000</value>
 </property>

hadoop.tmp.dir
HDFS对应的操作系统目录
默认值为Linux的temp目录

 <property>
  <name>hadoop.tmp.dir</name>
  <value>/root/training/hadoop-2.7.3/tmp</value>
 </property>

5. mapred-site.xml
配置mapreduce运行的框架为Yarn
这个文件默认为空,因此需要创建

 <property>
  <name>mapreduce.framework.name </name>
  <value>yarn</value>
 </property>

6. yarn-site.xml
yarn.resourcemanager.hostname是整个ResourceManager的地址,即Yarn的主节点

 <property>
  <name> yarn.resourcemanager.hostname</name>
  <value> bigdata111</value>
 </property>

Mapreduce运行的方式

 <property>
  <name> yarn.nodemanager.aux-services</name>
  <value> mapreduce_shuffle </value>
 </property>

7. 对NameNode进行格式化

hdfs namenode -format

出现如下所示,表示成功被格式化(此处的tmp文件夹需要自行创建)
在这里插入图片描述
在这里插入图片描述
8. 启动

start-alll.sh

之后输入4次密码,4次yes,由于我这是第二次启动,没有yes提示输入。
在这里插入图片描述
9. 检查
jps查看进程
应该出现如下所示的6个进程
在这里插入图片描述
错误提示:此处nodemanager没有正常启动,因此关闭yarn,重新启动即可,若没有,则检查其他可能。
在这里插入图片描述
重新启动
在这里插入图片描述

测试:执行mapreduce任务

  1. 创建文件
    在hdfs中创建文件夹 input,用于任务输入
    类似于网盘中的文件夹
hdfs dfs -mkdir /input

将data.txt文件上传到input中

hdfs dfs -put temp/data.txt /input
  1. 命令

进行单词统计

hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output/wc

监控hadoop状态

http://192.168.80.111:8088/cluster

在这里插入图片描述

Hadoop分布模式

特点:

  1. 分布式环境,用于生产
  2. 具备Hadoop完整的功能,如HDFS,Yarn等
  3. 至少需要3个节点()

部署方式

  1. 准备3台相同配置的虚拟机,此处命名为bigdata112 bigdata113 bigdata114
  2. 关闭防火墙,并使其永久失效(同时设置这三台机器)
systemctl stop firewalld.service
systemctl disable firewalld.service

在这里插入图片描述

  1. 配置IP映射
vi /etc/hosts

设置三台主机的IP地址,(此处我共设置了4台,不用管)
在这里插入图片描述
4. 配置公钥密钥
正常的hadoop运行需要输入4次密码,若集群节点越多,输入密码较为繁琐,因此配置免密登录
输入如下代码,生成每个机器的公钥和私钥

ssh-keygen -t rsa

在这里插入图片描述
ssh文件夹:
在这里插入图片描述

  1. 拷贝公钥私钥给每个机器
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata112
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata113
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata114

每台机器均执行一次,使用以下进行验证

ssh bigdata112
ssh bigdata113
ssh bigdata114
  1. 检查JDK环境
    三个机器jdk环境保持统一,具体请自行安装
    在这里插入图片描述

  2. 统一时间
    使用date进行时间设置
    2024年08月08日19点34分45秒(第一个08是月,第二个08是日)

 date 080819342024.45

在这里插入图片描述
8. 结构设置
如图,一般而言,不建议将NameNode和SecondaryNameNode部署在一起(虽然能节省资源,但出现bug,可能导致整个HDFS集群不可用)
在这里插入图片描述
9. 修改参数配置
在这里插入图片描述
slaves文件编辑

vi slaves

删除localhost,增加新的节点
在这里插入图片描述

  1. 执行namenode初始化
hdfs namenode -format
  1. 将主节点上的hadoop目录复制给从节点
scp -r hadoop-2.7.3/ root@bigdata113:/root/training
scp -r hadoop-2.7.3/ root@bigdata114:/root/training
  1. 启动
    主节点上启动hadoop
    效果
    在这里插入图片描述
    测试
    和之前一样测试wordcount命令,效果如下
    在这里插入图片描述
  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无奈ieq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值