Hadoop学习总结(搭建Hadoop集群(完全分布式模式))

news2024/11/15 6:00:18

       学习搭建Hadoop集群(完全分布式模式)

链接:https://pan.baidu.com/s/1wwTKk-XxHbccHjE-Xk2PTA 
提取码:q7j7

在SecurityCRT 或者在 Xshell 进行虚拟机链接

(这里使用Xshell )

在hadoop001里配置

如果没有 /opt目录下创建software、module就先创建

(software 用于存储软件安装包,module 用于存放安装包解压后的文件)

mkdir +路径/文件名

打开目录 /opt/software

上传压缩包(网盘里有压缩包)

一、安装 jdk

先进入,命令:cd /opt/software

cd /opt/software

命令:tar -zxvf jdk-8u161-linux-x64.tar.gz -C /opt/module/

tar -zxvf jdk-8u161-linux-x64.tar.gz -C /opt/module/

查看:ls /opt/module/

ls /opt/module/

查看路径(克隆新会话)

进入:cd /opt/module/jdk1.8.0_161/

cd /opt/module/jdk1.8.0_161/

输入:pwd

配置path

命令:vi /etc/profile

vi /etc/profile

添加下面内容,保存退出(最好不复制输入)

export JAVA_HOME=/opt/module/jdk1.8.0_161

export PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME=/opt/module/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin

执行配置文件生效:source /etc/profile

查看:java -version

source /etc/profile
java -version

注意:(hadoop出现这种情况也可以这样的方法解决)

       如果配置文件生效不了可以输入命令:reboot -n 客户机重启 ,然后重新编辑:vi /etc/profile  添加以下内容:(最好不复制输入)

export JAVA_HOME=/opt/module/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin

保存退出,执行配置文件生效:source /etc/profile  ,查看:java -version

source /etc/profile
java -version

      如果很着急使用可以直接在命令行输入以下内容:(最好不复制输入)

export JAVA_HOME=/opt/module/jdk1.8.0_161

export PATH=$PATH:$JAVA_HOME/bin

然后输入 java -version 查看

java -version

二、安装 Hadoop

先进入,命令:cd /opt/software

cd /opt/software

命令:tar -zxvf hadoop-2.7.4.tar.gz -C /opt/module/

tar -zxvf hadoop-2.7.4.tar.gz -C /opt/module/

查看:ls /opt/module

ls /opt/module

查看路径(克隆新会话)

进入:cd /opt/module/ hadoop-2.7.4/

cd /opt/module/ hadoop-2.7.4/

输入:pwd

配置path

命令:vi /etc/profile

vi /etc/profile

添加下面内容,保存退出(最好不复制输入)

export HADOOP_HOME=/opt/module/hadoop-2.7.4

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HADOOP_HOME=/opt/module/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行配置文件生效:source /etc/profile

查看:hadoop version

source /etc/profile

hadoop version

 进入hadoop查看目录结构

进入hadoop命令:cd /opt/module/hadoop-2.7.4

cd /opt/module/hadoop-2.7.4

三、Hadoop 集群配置

可以只使用一台虚拟机(这里使用hadoop001)hadoop002和hadoop003保持连接状态

1、配置 Hadoop 集群主节点

进入 hadoop安装位置

cd $HADOOP_HOME

进入hadoop 

cd etc/hadoop

(1)修改 hadoop-env.sh 文件

vim hadoop-env.sh

或者(vi   vim  都可以) 

​vi hadoop-env.sh

 

修改export JAVA_HOME=路径

查路径,先克隆新会话

echo $JAVA_HOME

然后修改 hadoop-env.sh 文件,保存退出

(2)修改 core-site.xml 文件

vim core-site.xml

       该文件是Hadoop的核心配置文件,其目的是配置 HDFS 地址、端口号,以及临时文件目录。配置文件中配置了 HDFS 的主进程NameNode运行主机(也就是此次Hadoop集群的主节点位置)同时配置了Hadoop运行时生成数据的临时文件。

添加以下内容
<property>
    <!--用于设置Hadoop的文件系统,由URL指定-->
    <name>fs.defaultFS</name>
    <!--用于指定namenode地址在hadoop001机器上-->
    <value>hdfs://hadoop001:9000</value>
</property>
<!--配置Hadoop的临时目录,默认/tmp/hadoop-${user.name}-->
<property>
    <name>hadoop.tmp.dir</name>
    <!--Hadoop安装路径-->
    <value>/opt/module/hadoop-2.7.4/data</value>
</property>

(3)修改 hdfs-site.xml 文件

vi hdfs-site.xml

      该文件作用于设置 HDFS 的NameNode 和 DataNode 两大进程。

添加以下内容
<property>
    <!--指定 HDFS 副本的数量-->
    <name>dfs.replication</name>
    <value>3</value>
</property>
<!--secondary namenode 所在主机的IP和端口-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop02:50090</value>
</property>

(4)修改 mapred-site.xml 文件

如果vi出了新文件,要重命名文件夹名:

cp -R mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

      该文件时 MapReduce 的核心配置文件,用于指定  MapReduce 运行时框架

添加以下内容
<!--指定 MapReduce 运行时框架,这里指定在 YARN上,默认是 local-->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

(5)修改 yarn-site.xml 文件

vi yarn-site.xml

      本文件是 YARN 框架的核心配置文件,需要指定 YARN 集群的管理者。 在配置文件中配置 YARN 的主进程 ResourceManager 运行主机为hadoop001,同时配置了 NodeManager 运行时的附属服务,需要配置为 mapreduce_shuffle 才能正常运行 MapReduce 默认程序。

添加以下内容
<property>
    <!--指定 YARN集群的管理者(ResourceManager)的地址-->
    <name>yarn.resourcemanager.hostname</name>
   <!-- 主机名-->
    <value>hadoop001</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

(6)修改 slaves 文件

      该文件用于记录 Hadoop 集群所有从节点(HDFS 的 DataNode 和 YARN 的 NodeManager 所在主机)的主机名,用来配合一键启动集群从节点(并且还需要验证关联节点配置了 SSH 免密登录)。打开该配置,先文件删除里面的内容

vi slaves

配置如下 

      配置文件配置了 Hadoop集群所有从节点的主机名为 hadoop001、hadoop002 和 hadoop003(这是因为此次在该3台机器上搭建 Hadoop 集群,同时前面的配置文件 hdfs-site.xml 指定了 HDFS 服务副本数量为3 )。

2、将集群主节点的配置文件分发到其他子节点

       完成 Hadoop 集群主节点 hadoop001 的配置后,还需要将系统环境配置文件、JDK安装目录和 Hadoop安装目录分发到其他子节点 hadoop002 和 hadoop003上。

scp /etc/profile hadoop002:/etc/profile
scp /etc/profile hadoop003:/etc/profile

这个为安装hadoop的路径 /opt/module/
scp -r /opt/module/ hadoop002:/opt/
scp -r /opt/module/ hadoop003:/opt/

一堆码一直在刷就成功了,不用把他停住,给他自己停

      执行完上述所有指定后,还需要在其他子节点 hadoop002、hadoop003 上分别执行

source /etc/profile

立即刷新配置文件。

四、Hadoop 集群测试

格式化文件系统

      通过 Hadoop 集群的安装和配置。此时还不能直接启动集群,因为在初次启动 HDFS 集群时,必须对主节点进行格式化处理

hdfs namenode -format

或者

hadoop namenode -format

       执行上述任意一条都可以对 Hadoop 集群进行格式化。执行命令后,必须出现有 successfully formatted 信息才表示格式化成功

       如果没有出现请检查一下Hadoop 安装和配置文件是否正确 ,如果都正确,则需要删除所有主机的 /hadoop-2.7.4 目录下的 tmp文件夹,重新执行格式化命令,对 Hadoop 集群进行格式化。

注意:格式化只能进行一次,如果多此进行可能会导致服务器运行的java进程不完全

五、脚本一键启动和关闭

1、在主节点hadoop001上使用以下指令启动所有 HDFS 服务进程

start-dfs.sh

2、在主节点hadoop001上使用以下指令启动所有 YARN 服务进程

start-yarn.sh

或者在主节点 hadoop001上执行以下命令,直接启动整个 Hadoop 集群服务

start-all.sh

3、查看 Hadoop 集群服务是否启动成功

      在各自机器上使用 jps 指令查看各节点的服务进程启动情况

hadoop001

hadoop002

hadoop003

六、通过 UI 查看 Hadoop 运行状态

(1)查看HDFS 集群状态

      通过浏览器分别访问http://hadoop001:50070(集群服务IP+端口号),查看HDFS 集群状态

(2)查看YARN 集群状态

      通过浏览器分别访问http://hadoop001:8088  ,查看YARN 集群状态

 

      Hadoop默认开设HDFS端口号为9000,监控HDFS集群端口号为50070,监控YARN集群端口号为8088。

七、Hadoop集群初体验

进入HDFS 集群状态

进入这里后

在主节点hadoop001上执行以下命令

创建/export/data,并进入

mkdir -p /export/data
cd /export/data

新建一个word.txt文件,并且编辑以下内容

vi word.txt
添加以下内容(可随意添加)
hello itcast
hello itheima
hello hadoop

 

查看word.txt文件内容:

cat word.txt

      在HDFS上创建 /wordcount/input 目录,并将 word.txt 文件上传至该目录下

hadoop fs -mkdir -p /wordcount/input
hadoop fs -put word.txt /wordcount/input

刷新一下HDFS集群状态 

进入 /share/hadoop/mapreduce目录下,使用 ll 指令查看文件夹内容

cd $HADOOP_HOME/share/hadoop/mapreduce 

      图中这个 jar包中包含了计算机单词个数、计算Pi值等功能。可以用来对HDFS的 word.txt文件进行单词统计,通过以下命令执行

hadoop jar hadoop-mapreduce-examples-2.7.4.jar wordcount /wordcount/input /wordcount/output

如果要重新执行要在后面添加第几次

例如:hadoop jar hadoop-mapreduce-examples-2.7.4.jar wordcount /wordcount/input /wordcount/output4

      刷新YARN 集群状态,如果未出现以下情况,重新查看一下  mapred-site.xml文件是否编写正确

刷新查看HDFS的UI

下载part-r-00000文件

      打开查看是否执行成功,由图可知道已执行成功

 八、解决 jps 查看不了完整的 java 服务器进程

(1)缺少 datanode 进程

      原因:多次格式化可能会导致,输入jps出现的java进程服务不完全

      当初始化成功的时候,会产生一个集群ID,分布在这三个地方:NameNode、seondary NameNode、DataNode

       第二次初始化时,只会更新 NameNode的集群ID

解决:

进入hadoop001、hadoop002和hadoop03将这data个文件删除

在hadoop001主节点上

先将集群服务关闭 stop-all.sh

stop-all.sh

进行格式化:hdfs namenode -format

hdfs namenode -format

重启服务 start-all.sh

 start-all.sh

如果还是不能解决,检查一下配置 hadoop集群主节点的文件是否正确,输入 jps 命令查看

(2)SecondaryNameNode 位置错了,在 001 上启动,在 002 上没有

      原因: hdfs-site.xml 关于 SecondaryNameNode 配置项的 name 属性写错
1. 修改 hdfs.xml
vi hdfs-site.sh
2.  修改之后,还要把修改后的文件同步到 002 003
scp hdfs-site.xml hadoop002:/opt/module/hadoop-2.7.4/etc/hadoop/
scp hdfs-site.xml hadoop003:/opt/module/hadoop-2.7.4/etc/hadoop/

​
3. 重新启动集群: start-all.sh
start-all.sh
4.  hadoop01 上使用 kill -15 xxxx 杀死旧的 SecondaryNameNode 进程

(3)启动报错

大部分原因:配置文件格式不对,启动集群就能看见
解决方案:
1、修改对应的文件,并同步到其他节点
2 、如果没有格式化成功,格式化之后再启动集群
3 、如果格式化已经成功,直接启动集群即可

(4)所有的进程都正常,但是无法访问网站

错误原因:防火墙没有关闭
systemctl stop firewalld.service
systemctl disable firewalld.service

查看防火墙状态

systemctl status firewalld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1114142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【c#】Quartz开源任务调度框架学习及练习Demo

Quartz开源任务调度框架学习及练习Demo 1、定义、作用 2、原理 3、使用步骤 4、使用场景 5、Demo代码参考示例 6、注意事项 7、一些Trigger属性说明 1、定义、作用 Quartz是一个开源的任务调度框架&#xff0c;作用是支持开发人员可以定时处理业务&#xff0c;比如定时…

【C语言入门】C语言的历史 与 编程环境的安装选择与搭建

C语言入门 前言C语言的概念与历史一、什么是C语言&#xff1f;二、 C语言的历史与辉煌环境的选择三、编译器的选择 VS2022&#xff08;一&#xff09;编译和链接&#xff08;二&#xff09;编译器的对比&#xff08;三&#xff09;VS2022 的优缺点&#xff08;四&#xff09;VS…

解决 阿里云oss 对象存储 bucket 中的文件不能在线预览 只能下载

我的域名是在腾讯云的&#xff0c;所以点开腾讯云的域名解析后台。 点击添加记录&#xff1b; 记录类型选 CNAME&#xff1b;主机记录 随便写&#xff1b;解析线路 默认&#xff1b; 记录值 填你的bucketname 就是你存储文件的bucket的名字 然后 . 域名所在区域 北京就是oss-c…

SqueezeNet 一维,二维网络复现 pytorch 小白易懂版

SqueezeNet 时隔一年我又开始复现神经网络的经典模型&#xff0c;这次主要复的是轻量级网络全家桶&#xff0c;轻量级神经网络旨在使用更小的参数量&#xff0c;无限的接近大模型的准确率&#xff0c;降低处理时间和运算量&#xff0c;这次要复现的是轻量级网络的非常经典的一…

WebSocket 入门案例

目录 WebSocket入门案例WebSocket-server新增项目:添加依赖:yml:启动类&#xff1a; frontend-server前端项目&#xff1a;添加依赖&#xff1a;添加yml&#xff1a;启动类&#xff1a;前端引入JS:前端页面&#xff1a;后端代码&#xff1a;测试&#xff1a; WebSocket 入门案…

众和策略:地产板块发力走高,荣盛发展涨停,碧桂园等大幅拉升

地产板块20日盘中发力走高&#xff0c;到发稿&#xff0c;金科股份、荣盛展开涨停&#xff0c;中南建造、富丽家族涨超7%&#xff0c;华夏夸姣涨逾6%。 港服方面&#xff0c;内资地产股亦走强&#xff0c;到发稿&#xff0c;珠光控股涨超20%&#xff0c;碧桂园涨近10%&#xf…

PBA.常用人工智能预测分析算法

相同的数据型态&#xff0c;利用不同的方法分析&#xff0c;就可以解决不同的课题。例如目前已相当纯熟的人脸识别技术&#xff0c;在国防应用可以进行安保工作&#xff1b;企业可做员工门禁系统&#xff1b;可结合性别、年龄辨识让卖场进行市调分析&#xff0c;或结合追踪技术…

聚焦于先进电池技术等领域的前沿研究和应用,龙讯旷腾出席中国化学会第二届能源化学青年论坛

成都站电催化培训 2023年龙讯团队线下培训已走过北京、西安等城市&#xff0c;前几期均以定向邀请非公开的形式培训&#xff0c;应大家的积极号召&#xff0c;本期电催化成都站的培训我们将以公开招募的形式举办&#xff0c;并且保留前几期的优惠&#xff08;前30位免费&#…

html网页代码块高亮加行号

程序示例精选 html网页代码块高亮加行号 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《html网页代码块高亮加行号》编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习…

shopee平台现在好做吗

Shopee 是一家知名的电子商务平台&#xff0c;特别在东南亚地区非常流行。是否在 Shopee 平台做生意是否好做取决于多种因素&#xff0c;包括你的产品、市场竞争、营销策略和运营能力等。 以下是一些考虑因素&#xff1a; 1、产品选择&#xff1a;选择畅销的产品或具有市场需求…

需要在 MySQL 服务器中监控的重要指标

MySQL是一个开源的关系数据库管理系统&#xff0c;它基于客户端-服务器模型运行&#xff0c;使用SQL作为其通信模式。它具有灵活性和可扩展性、高安全性、易用性以及无缝处理大型数据集的能力&#xff0c;由于其广泛的功能&#xff0c;MySQL 被用作数据库管理系统的一部分。 什…

初识Java 14-2 测试

目录 测试驱动开发&#xff08;TDD&#xff09; 日志 调试 使用JDB进行调试 基准测试 微基准测试 Java微基准测试工具&#xff08;JMH&#xff09; 分析和优化 重构 本笔记参考自&#xff1a; 《On Java 中文版》 测试驱动开发&#xff08;TDD&#xff09; 测试驱动开…

高博学子参加第二届火焰杯软件测试高校就业选拔赛喜获佳绩

近日&#xff0c;高博软件学院软件工程教研室组织指导全院近80名学生参加第二届火焰杯软件测试高校就业选拔赛。经过初赛、决赛&#xff0c;共有13名同学获优秀奖。获奖名单如下&#xff1a;&#xff08;排名不分先名&#xff09;&#xff1a;滕美妙、陈虹霖、陆春媚、陈媛、周…

厚壁菌门/拟杆菌门——肠道菌群的阴阳面,代表什么

在研究肠道菌群或复杂微生物样本构成时&#xff0c;“门"&#xff08;Phylum&#xff09;是细菌分类的高级分类单位之一。 细菌分类依次为门纲目科属种亚种&#xff0c;最大的分类层面是门&#xff0c;以前写过人群肠道菌群构成主要是以拟杆菌门和厚壁菌门为主&#xff0c…

基于YOLOv5[n/s/m/l/x]全系列参数模型开发构建小麦麦穗颗粒智能化精准检测识别计数系统

小麦麦穗颗粒或者是其他农作物颗粒计数本身是一件很繁琐枯燥的事情&#xff0c;这种事情交给程序来做是最好不过的了&#xff0c;最近正好在做课题项目&#xff0c;导师给的题目就是跟农业相关的&#xff0c;这里想的就是基于目标检测模型来开发构建一套智能化的精准检测计数系…

影像科室图像存储与传输系统源码 智能化影像报告系统源码

影像科室信息管理系统源码 RIS/PACS系统源码 PACS三维影像处理系统源码 影像科室信息管理系统&#xff0c;它包括RIS系统、PACS工作站和PACS服务器系统。提供强大的结构和智能化的影像报告系统、支持各种图象操作&#xff0c;以及实现图像的路由、预取、多级多层次存储。 系统特…

Selenium实战教程----Selenium中的动作

Selenium中针对元素进行的动作在代码中可以分为两类&#xff1a; Selenium::WebDriver::ActionBuilder类中的动作方法Selenium::WebDriver::Element类中的动作方法 其中ActionBuilder类中的动作方法比较丰富&#xff0c;基本涵盖了所有可以进行的操作。 而Element类的动作比较…

ERR_PNPM_JSON_PARSE Unexpected end of JSON input while parsing empty string in

终端报错&#xff1a;  ERR_PNPM_JSON_PARSE  Unexpected end of JSON input while parsing empty string in   报错原因&#xff1a;依赖没有删除干净  解决办法&#xff1a;  ①删除node_modules  ②在package.json的dependencies删除不需要依赖  ③重新pnpm i

干货 | 锁向环到底是什么?是怎么进行倍频的?

你们有没有这样一个疑问&#xff0c;就是CPU的主频怎么做到几个GHz呢&#xff1f; 每一秒要给处理器几亿个脉冲&#xff0c;就拿11代I7处理器来说&#xff0c;它的基本频率就可达2.5GHz&#xff0c;但在我们常规的认知中&#xff0c;频率的大小取决于晶振的频率&#xff0c;比…

速成offer收割机,接口自动化测试面试题,精准打击面试...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、我们测试的接口…