Hadoop(部署篇)

2023-11-10

目录

 Hadoop三种运行模式

本地运行模式

伪分布式运行模式

完全分布式运行模式(开发重点)


 Hadoop三种运行模式

Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Hadoop 官方网站:http://hadoop.apache.org/

本地运行模式

1. 官方 Grep 案例
①创建在 hadoop-2.7.6 文件下面创建一个 input 文件夹:
[root@master hadoop-2.7.6]# mkdir input
②将 Hadoop 的 xml 配置文件复制到 input
[root@master hadoop-2.7.6]# cp etc/hadoop/*.xml input
③执行 share 目录下的 MapReduce 程序
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar grep input output 'dfs[a-z.]+'
④查看输出结果:
[root@master hadoop-2.7.6]# cat output/*

伪分布式运行模式

1.启动 HDFS 并运行 MapReduce 程序

(1)分析
        ①配置集群
        ②启动、测试集群增、删、查
        ③执行 WordCount 案例
(2)执行步骤
        ①配置集群
(a)配置:hadoop-env.sh
主节点中,获取 jdk 的路径:
[root@master hadoop-2.7.6]# echo $JAVA_HOME
编辑 hadoop-env.sh,并添加 jdk 路径:
[root@master hadoop]# vim hadoop-env.sh
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

(b)配置:core-site.xml
<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>
<!-- 指定 Hadoop 运行时产生文件的存储目录 -->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
(c)配置:hdfs-site.xml
<!-- 指定 HDFS 副本的数量 -->
<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
②启动集群
(a)格式化 NameNode(第一次启动时格式化,以后就不要总格式化)
[root@master hadoop-2.7.6]# hadoop namenode -format

 

(b)启动 NameNode
[root@master hadoop-2.7.6]# hadoop-daemon.sh start namenode

 

(c)启动 DataNode
[root@master hadoop-2.7.6]# hadoop-daemon.sh start datanode
③查看集群
(a)查看是否启动成功
[root@master hadoop-2.7.6]# jps
7461 NameNode
7559 DataNode
7641 Jps
(b)web 端查看 HDFS 文件系统
http://master:50070

 

(c)查看产生的 Log 日志
说明:在企业中遇到 Bug 时,经常根据日志提示信息去分析问题、解决 Bug。
[root@master hadoop-2.7.6]# cd logs/
[root@master logs]# ll

(d)思考:为什么不能一直格式化 NameNode,格式化 NameNode,要注意什
么?
[root@master hadoop-2.7.6]# cd tmp/dfs/name/current
[root@master current]# cat VERSION
#Mon Jul 11 10:27:14 CST 2022
namespaceID=1179648118
clusterID=CID-92721281-f46b-419c-bab2-e23edc300e06
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1720451217-192.168.18.133-1657506434948
layoutVersion=-63
[root@master data]# cd current/
[root@master current]# ll
总用量 4
drwx------. 4 root root 54 7 月 11 10:30 BP-1720451217-192.168.18.133-1657506434948
-rw-r--r--. 1 root root 229 7 月 11 10:30 VERSION
[root@master current]# cat VERSION
#Mon Jul 11 10:30:12 CST 2022
storageID=DS-7efd22c8-fc53-4e03-beae-6699e4398181
clusterID=CID-92721281-f46b-419c-bab2-e23edc300e06
cTime=0
datanodeUuid=5774abb7-ab49-4740-8747-a6923bd17d8e
storageType=DATA_NODE
layoutVersion=-56
注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode的集群 id 不一致,集群找不到已往数据。所以,格式 NameNode 时,一定要先删除 data 数据和 log 日志,然后再格式化 NameNode。

 ④操作集群

(a)在 HDFS 文件系统上创建一个 input 文件夹
[root@master hadoop-2.7.6]# hadoop dfs -mkdir /input
(b)将测试文件内容上传到文件系统上
[root@master hadoop-2.7.6]# hadoop dfs -put wordcountinput/wc.input /input
(c)查看上传的文件是否正确
[root@master hadoop-2.7.6]# hadoop dfs -ls /input
[root@master hadoop-2.7.6]# hadoop dfs -cat /input/wc.input
(d)运行 MapReduce 程序
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
(e)查看输出结果
命令行查看:
[root@master hadoop-2.7.6]# hadoop dfs -cat /output/*

 2. 启动 YARN 并运行 MapReduce 程序

(1)分析
①配置集群在 YARN 上运行 MR
②启动、测试集群增、删、查
③在 YARN 上执行 WordCount 案例
(2)执行步骤
①配置集群
(a)配置 yarn-env.sh
配置一下 JAVA_HOME
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
(b)配置 yarn-site.xml
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>
<!-- Reducer 获取数据的方式 -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
(c)配置:mapred-env.sh
配置一下 JAVA_HOME
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
(d)配置: (对 mapred-site.xml.template 重新命名为) mapred-site.xml
[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vim mapred-site.xml
<!-- 指定 MR 运行在 YARN 上 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
②启动集群
(a)启动前必须保证 NameNode 和 DataNode 已经启动
(b)启动 ResourceManager
[root@master hadoop]# yarn-daemon.sh start resourcemanager
(c)启动 NodeManager
[root@master hadoop]# yarn-daemons.sh start nodemanager
③集群操作
(a)YARN 的浏览器页面查看:http://master:8088/cluster
(b)执行 MapReduce 程序:
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
(c)查看运行结果:
[root@master hadoop-2.7.6]# hadoop dfs -cat /output/*

 

3.配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如
下:
1. 配置 mapred-site.xml
在该文件里面增加如下配置。
<!-- 历史服务器端地址 -->
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
</property>
2. 启动历史服务器
[root@master hadoop-2.7.6]# mr-jobhistory-daemon.sh start historyserver
3. 查看历史服务器是否启动
[root@master hadoop-2.7.6]# jps
10016 Jps
9234 NodeManager
7461 NameNode
7559 DataNode
9948 JobHistoryServer
8941 ResourceManager
4. 查看 JobHistory
http://master:19888/jobhistory

4. 配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS 系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager和 HistoryManager。
开启日志聚集功能具体步骤如下:
1. 配置 yarn-site.xml
[root@master hadoop]# vim yarn-site.xml
在该文件里面增加如下配置。
<!-- 日志聚集功能使能 -->
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
<!-- 日志保留时间设置 7 天 -->
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>
2. 关闭 NodeManager 、ResourceManager 和 HistoryManager
[root@master hadoop]# yarn-daemon.sh stop resourcemanager
[root@master hadoop]# yarn-daemons.sh stop nodemanager
[root@master hadoop]# mr-jobhistory-daemon.sh stop historyserver
3. 启动 NodeManager 、ResourceManager 和 HistoryManager
[root@master hadoop]# yarn-daemon.sh start resourcemanager
[root@master hadoop]# yarn-daemon.sh start nodemanager
[root@master hadoop]# mr-jobhistory-daemon.sh start historyserver
4. 删除 HDFS 上已经存在的输出文件
[root@master hadoop]# hadoop dfs -rm -r /output
5. 执行 WordCount 程序
[root@master hadoop-2.7.6]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
6. 查看日志
http://master:19888/jobhistory

 

5. 配置文件说明
Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修
改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件

 

(2)自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个
配置文件存放在$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求
重新进行修改配置。

完全分布式运行模式(开发重点)

1. 准备工作
(1)设备
三台虚拟机:master、node1、node2
(2)时间同步
date
(3)修改主机名
三台主机名分别是:master、node1、node2
(4)关闭防火墙
systemctl stop firewalld
(5)查看防火墙状态
systemctl status firewalld
(6)取消防火墙自启
systemctl disable firewalld
(7)免密登录
三台都需要免密:
# 1、生成密钥
ssh-keygen -t rsa
# 2、配置免密登录
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
# 3、测试免密登录
ssh node1
2. 搭建 Hadoop 集群
(1)上传安装包并解压
①使用 xftp 上传压缩包至 master 的/usr/local/packages/
②解压
tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/soft/
(2)配置环境变量
vim /etc/profile
JAVA_HOME=/usr/local/soft/jdk1.8.0_171
HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
# 重新加载环境变量
source /etc/profile
(3)修改 Hadoop 配置文件
①进入 hadoop 的配置文件
cd /usr/local/soft/hadoop-2.7.6/etc/hadoop/
②core-site.xml
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
<property>
        <name>fs.trash.interval</name>
        <value>1440</value>
</property>
③hadoop-env.sh
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171

④hdfs-site.xml
<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
<property>
        <name>dfs.permissions</name>
        <value>false</value>
</property>
⑤mapred-site.xml.template
重命名文件:
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
</property>
⑥slaves
node1
node2
⑦yarn-site.xml
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>
(4)分发 Hadoop 到 node1、node2
cd /usr/local/soft/
scp -r hadoop-2.7.6/ node1:`pwd`
scp -r hadoop-2.7.6/ node2:`pwd`
(5)格式化 namenode(第一次启动的时候需要执行)
hdfs namenode -format

(6)启动 Hadoop 集群
start-all.sh
(7)检查 master、node1、node2 上的进程
①master

②node1 

 ③node2

(8)访问 HDFS 的 WEB 界面
http://master:50070

(9)访问 YARN 的 WEB 界面
http://master:8088/cluster

3.scp&rsync 的使用
(1) scp(secure copy)安全拷贝
①scp 定义:
scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
②基本语法
scp -r /usr/local/soft/data/ node1:`pwd`
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径 /名称
③案例实操
在 master 上,将 master 中/usr/local/soft/下的 data/目录拷贝到 node1
中的 soft 目录下:
[root@master soft]# scp -r data/ node1:`pwd`
(2)rsync 远程同步工具
rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。
①基本语法
[root@master soft]# rsync -rvl data/ node2:`pwd`
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
选项参数说明:
选项
②案例实操
把 master 机器上的/usr/local/packages 目录同步到 node1 服务器的 root
用户下的/usr/local/packages 目录
[root@master local]# rsync -rvl packages/
node1:/usr/local/packages/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop(部署篇) 的相关文章

随机推荐

  • 软件工程第一次阅读作业

    项目 内容 本作业属于北航软件工程课程 博客园班级链接 作业要求请点击链接查看 作业要求 我在这门课程的目标是 成为一个具有一定经验的软件开发人员 这个作业在哪个具体方面帮助我实现目标 让我对自己目前的状况有一个更加清醒的认识 1 快速阅读
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • jQuery如何判断input元素是否获得焦点(点击编辑时)

    问题提出 如果你要判断input元素是否获得焦点 或者是否处在活动编辑状态 使用jQuery的 hasFocus 方法或 is focus 方法貌似都无效 搜索网上给出的办法 几乎净是采用上述处理方法 然并卵 都是扯淡 我的解决办法 监听点
  • Caffe中对MNIST执行train操作执行流程解析

    之前在 http blog csdn net fengbingchun article details 49849225 中简单介绍过使用Caffe train MNIST的文章 当时只是仿照caffe中的example实现了下 下面说一下
  • Windows下VVC参考软件VTM10.0编译和运行

    1 预备工作 VTM软件下载 链接https vcgit hhi fraunhofer de jvet VVCSoftware VTM tree masterhttps vcgit hhi fraunhofer de jvet VVCSof
  • Word中批量更新域的两个小方法

    一处域更新 如果只有一处需要更新 对着域右键选择 更新域 即可 多处域更新 很多需要更新的时候 可以如下操作 两种方法应该都可以 选择 打印预览 可以更新文档中的所有域 MOS认证的老师教的 CTRL A 全选 然后F9 更新 即可 自己觉
  • UE4 虚幻引擎,绑定Mesh到Skeleton骨骼插槽Socket

    1 在Skeleton骨骼中Add socket添加插槽 新建的Slot socket插槽 可以添加Preview Asset预览资产 方便查看 2 将Component组件绑定到骨骼中 新建一个StaticMesh 绑定组件到骨骼插槽 3
  • 如何学习C++

    转自 http blog csdn net yong2016 article details 9321837 看了这篇文章才知道自己最近太浮躁了 学做技术也是学做人 读者定位是两类人群 a 初学者 即将入手 C 语言 不知道如何开始 b 已
  • Tomcat 与 Nginx,Apache的区别

    Apache指的应该是Apache软件基金会下的一个项目 Apache HTTP Server Project Nginx同样也是一款开源的HTTP服务器软件 当然它也可以作为邮件代理服务器 通用的TCP代理服务器 Tomcat是Apach
  • 计算机分析学生表字段,巧用Excel数据透视表统计分析学生成绩

    巧用Excel数据透视表统计分析学生成绩 科技信息 IT论坛 SCIENCE TECHNOLOGYINFORMATION2010年第19期 巧用Excel数据透视表统计分析学生成绩 魏零 桂林航天工业高等专科学校计算机系 广西 桂林 541
  • Coverless Image Steganography Based on Generative Adversarial Network

    基于生成对抗网络的无载体图像隐写技术 摘要 传统图像隐写技术 修改 嵌入到载体图像来传输秘密信息 gt 隐写工具很容易检测到载体图像的失真 gt 秘密信息的泄露 无载体图像隐写技术 不修改载体图像就可以隐藏秘密信息 但存在容量低 质量差等问
  • 操作系统地址重定位相关练习题

    一 问题描述 某虚拟存储器的用户空间共有32个页面 每页1KB 主存16KB 假定某时刻系统为用户的第0 1 2 3页分配的物理块号为5 10 4 7 而该用户作业的长度为6页 试将十六进制的虚拟地址0A5C 103C转换成物理地址 二 正
  • ★【动态规划】【线段树】基站选址

    问题描述 有N个村庄坐落在一条直线上 第i i gt 1 个村庄距离第1个村庄的距离为Di 需要在这些村庄中建立不超过K个通讯基站 在第i个村庄建立基站的费用为Ci 如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站 那么就成它被覆盖
  • 华为od机考题目-IPv4地址转换成为整数

    while 1 try nums list map int input split if len nums 4 有效ip 为 4段
  • Leetcode No. 136. Single Number

    Given an array of integers every element appears twice except for one Find that single one Note Your algorithm should ha
  • 面试官:你对Kafka了解吗?这41个问题你能答出几个

    一 请说明什么是Apache Kafka Apache Kafka是由Apache开发的一种发布订阅消息系统 它是一个分布式的 分区的和重复的日志服务 二 请说明什么是传统的消息传递方法 传统的消息传递方法包括两种 排队 在队列中 一组用户
  • 微信小程序真机调试实现获取本地服务器数据

    一般来说 如果不涉及到后端数据 我们通过微信小成开发工具预览功能是可以直观看到项目的情况的 但是一旦涉及到后端本地服务器数据 预览是无法获取到的 而真机调试得按下面操作才能实现 通过win r 打开命令行工具 输入ipconfig 如果你是
  • 关于RT-Thread中优先级翻转问题的简记

    最近在学习RT Thread的相关知识 记录一下心得 优先级翻转 是指当一个高优先级线程试图通过信号量机制访问共享资源时 如果该信号量已被低优先级线程持有 而这个低优先级线程在运行过程中可能又被其他一些中等优先级的线程抢占 从而造成高优先级
  • python-opencv 调取摄像头并保存图片

    通过opencv python 调用摄像头并保存图片 import torch coding utf 8 import numpy as np import cv2 import matplotlib pyplot as plt cap c
  • Hadoop(部署篇)

    目录 Hadoop三种运行模式 本地运行模式 伪分布式运行模式 完全分布式运行模式 开发重点 Hadoop三种运行模式 Hadoop 运行模式包括 本地模式 伪分布式模式以及完全分布式模式 Hadoop 官方网站 http hadoop a