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

       学习搭建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_161export 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/profilehadoop 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.rhkb.cn/news/165781.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中文编程开发语言工具构件说明:屏幕截取构件的编程操作

屏幕截取 用于截取指定区域的图像。 图 标&#xff1a; 构件类型&#xff1a;不可视 重要属性 l 截取类型 枚举型&#xff0c;设置在截取屏幕时的截取类型。包括&#xff1a;全屏幕、指定区域、活动窗口三种。当全屏幕截取时相当于执行了硬拷屏&#xff08;PrintScre…

0基础学习PyFlink——模拟Hadoop流程

学习大数据还是绕不开始祖级别的技术hadoop。我们不用了解其太多&#xff0c;只要理解其大体流程&#xff0c;然后用python代码模拟主要流程来熟悉其思想。 还是以单词统计为例&#xff0c;如果使用hadoop流程实现&#xff0c;则如下图。 为什么要搞这么复杂呢&#xff1f; 顾…

xlive.dll下载安装方法分享,教你快速修复xlive.dll文件

在运行某些应用程序或游戏时&#xff0c;你可能会遭遇到"xlive.dll缺失"错误提示&#xff0c;这可能导致程序无法正常运行。本文将向你介绍一些可行的解决方法教你下载xlive.dll文件&#xff0c;并详细阐述xlive.dll是什么文件以及导致其缺失的原因。 一.理解"x…

Docker-镜像的备份迁移及私有仓库的搭建

一、Docker-备份与迁移 A服务器系统配置 B服务器系统配置 1.用命令将容器保存为镜像。 案例&#xff0c;将A服务器的Docker容器迁移到另外一台服务器B&#xff0c;A服务器的容器配置过对应的文件&#xff0c;不想在B服务器重新搭建&#xff0c;可以使用该案例。 docker c…

FL studio21永久激活码 附带一键下载安装包

玩音乐的朋友&#xff0c;对FL studio肯定不陌生&#xff0c;目前最新的版本是FL studio21&#xff0c;这是一款非常强大且专业的音频制作软件&#xff0c;而且还可以编曲、剪辑、录音、混音等等之类的创作操作&#xff0c;使你的计算机成为一个全功能录音室。下面小编就来和大…

抛砖引玉:Redis 与 接口自动化测试框架的结合

接口自动化测试已成为保证软件质量和稳定性的重要手段。而Redis作为一个高性能的缓存数据库&#xff0c;具备快速读写、多种数据结构等特点&#xff0c;为接口自动化测试提供了强大的支持。勇哥这里粗略介绍如何结合Python操作Redis&#xff0c;并将其应用于接口自动化测试框架…

Qt实现一个电子相册

一、要实现的功能 在窗口中可以显示图片&#xff0c;并且能够通过两个按钮进行图片的前进和后退的顺序切换。有一个按钮&#xff0c;通过这个按钮可以从所存图片资源中随机选取一个图片进行展示通过按钮可以控制图片自动轮播顺序切换的开始与停止&#xff0c;显示当前系统的时…

使用 LF Edge eKuiper 将物联网流处理数据写入 Databend

作者&#xff1a;韩山杰 Databend Cloud 研发工程师 https://github.com/hantmac LF Edge eKuiper LF Edge eKuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件&#xff0c;可以运行在各类资源受限的边缘设备上。eKuiper 的主要目标是在边缘端提供一个流媒体软件…

大模型必备算力:CPUGPU天梯图(2023年最新版)

在当今计算机世界&#xff0c;CPU、GPU和显卡的性能成为了衡量计算机性能的重要指标。今天深入了解CPU、GPU和显卡天梯图。 首先&#xff0c;CPU作为计算机的大脑&#xff0c;负责处理各种任务。它的性能主要由核心数、主频和缓存大小决定。其中&#xff0c;核心数和主频决定了…

kubeadm初始化搭建cri-dockerd记录 containerd.io

07.尚硅谷_搭建K8s集群&#xff08;kubeadm方式&#xff09;-部署master节点_哔哩哔哩_bilibili 视频里的版本只有1.17而现在&#xff08;2023.10.20&#xff09;kubernetes最新版本是1.28&#xff0c;需要搭载cri-dockerd&#xff0c; 先去网站下载了对应的rpm包cri-dockerd…

计算机网络篇之TCP滑动窗口

文章目录 前言概述 前言 在网络数据传输时&#xff0c;若传输的原始数据包比较大&#xff0c;会将数据包分解成多个数据包进行发送。需要对数据包确认后&#xff0c;才能发送下一个数据包。在等待确认包的这个过程浪费了大量的时间&#xff0c;不过还好TCP引入了滑动窗口的概念…

2022最新版-李宏毅机器学习深度学习课程-P26 Recurrent Neural Network

RNN 应用场景&#xff1a;填满信息 把每个单词表示成一个向量的方法&#xff1a;独热向量 还有其他方法&#xff0c;比如&#xff1a;Word hashing 单词哈希 输入&#xff1a;单词输出&#xff1a;该单词属于哪一类的概率分布 由于输入是文字序列&#xff0c;这就产生了一个问…

【算法|动态规划No.27】leetcode516. 最长回文子序列

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

快速自动化处理JavaScript渲染页面的方法

目录 一、使用无头浏览器 二、使用JavaScript渲染引擎 三、使用前端框架工具 随着互联网技术的不断发展&#xff0c;JavaScript已经成为Web开发中不可或缺的一部分。然而&#xff0c;在自动化处理JavaScript渲染页面方面&#xff0c;却常常让开发者感到头疼。本文将介绍一些快…

02 开闭原则

官方定义&#xff1a; 开闭原则规定软件中的对象、类、模块和函数对扩展应该是开放的&#xff0c;但对于修 改是封闭的。这意味着应该用抽象定义结构&#xff0c;用具体实现扩展细节&#xff0c;以此确保 软件系统开发和维护过程的可靠性。 通俗解释&#xff1a; 对扩展开放…

基础MySQL的语法练习

基础MySQL的语法练习 create table DEPT(DEPTNO int(2) not null,DNAME VARCHAR(14),LOC VARCHAR(13) );alter table DEPTadd constraint PK_DEPT primary key (DEPTNO);create table EMP (EMPNO int(4) primary key,ENAME VARCHAR(10),JOB VARCHAR(9),MGR …

运营商大数据精准营销,击碎你的固化营销思维

大数据精准营销服务是大数据应用的典型场景之一&#xff0c;也是依托大数据和互联网提升企业效率的一种有效手段。但是&#xff0c;在选择大数据服务的很多时候&#xff0c;企业往往要考虑法律与合规的问题&#xff0c;其中比较重要的是数据获取渠道与数据是否脱敏。在所有大数…

Labview2023安装教程 (最新最详细保姆级教程)

目录 一 .简介 二.安装步骤 软件&#xff1a;Labview版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;2.73G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.6GHz 内存8G(或更高&#xff09;下载通道①百度网盘丨下载链接&#xff1a; htt…

英语——分享篇——每日200词——2401-2600

2401——moisture——[mɔɪstʃə(r)]——n.潮气&#xff0c;湿气&#xff0c;水分——moisture——moist潮湿的(熟词)ur你的(编码your)e鹅(编码)——潮湿的地方你的鹅一身潮气——Moisture in the atmosphere condensed into dew during the night.——大气中的水分在夜间凝结…

微信小程序设计之主体文件app-json-pages

一、新建一个项目 首先&#xff0c;下载微信小程序开发工具&#xff0c;具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后&#xff0c;注册小程序账号&#xff0c;具体注册方法&#xff0c;可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…