Hadoop 部署

1 准备工作

  • 准备好集群环境
    详情参考博客:集群初始配置。
  • 安装 Java
    1. 输入javac可查看安装提示信息。
    2. 使用命令sudo apt install openjdk-8-jdk-headless安装JDK
    3. 配置环境变量。使用sudo vim /etc/profile打开profile文件,输入以下内容,保存并退出。然后输入命令source /etc/profile使修改生效。
      export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      export JRE_HOME=$JAVA_HOME/jre
      export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
      export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
      

2 获取文件

  • 去官网https://dlcdn.apache.org/hadoop/下载文件。比如下载hadoop-3.4.0.tar.gz
  • 上传至某一个 Linux 设备上。
  • 创建目录/opt/hadoop/,或根据自己情况选择其他目录。使用以下命令解压:
    sudo tar -zxvf hadoop-3.4.0.tar.gz -C /opt/hadoop/
    

3 修改配置

需要修改/opt/hadoop/etc/hadoop中的hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 workers。

3.1 hadoop-env.sh

如果是按照上面方法安装的Java,可添加如下内容:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/binexport HADOOP_HOME=/opt/hadoop/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbinexport HADOOP_PID_DIR=$HADOOP_HOME/tmp
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

然后将该文件复制到/etc/profile.d,并运行source /etc/profile使其生效。

3.1 core-site.xml

添加配置如下:

<configuration><!-- 配置指定HDFS的通信地址 --><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><!-- 配置Hadoop的临时文件存储目录。需要手动创建及修改权限。 --><property><name>hadoop.tmp.dir</name><value>${HADOOP_PID_DIR}</value></property><!-- 配置网页登录使用的用户 --><property><name>hadoop.http.staticuser.user</name><value>cluster</value></property>
</configuration>

3.2 hdfs-site.xml

添加配置如下:

<configuration><!-- 配置NameNode的http访问地址和端口号 --><property><name>dfs.namenode.http-address</name><value>node1:9870</value></property><!-- 配置SecondaryNameNode的http访问地址和端口号 --><property><name>dfs.namenode.secondary.http-address</name><value>node2:9868</value></property><!----------- 下面的可选择配置 -----------><!-- 配置HDFS副本数量 --><property><name>dfs.replication</name><value>3</value></property><!-- 配置NameNode存放的路径 --><property><name>dfs.namenode.name.dir</name><value>/opt/hadoop/hadoop-3.4.0/tmp/dfs/name</value></property><!-- 配置DataNode存放的路径 --><property><name>dfs.datanode.data.dir</name><value>/opt/hadoop/hadoop-3.4.0/tmp/dfs/data</value></property>
</configuration>

3.3 mapred-site.xml

添加配置如下:

<configuration><!-- 配置MapReduce运行时的框架 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!----------- 下面的可选择配置 -----------><!-- 配置MapReduce的历史服务器安装的位置及端口号 --><property><name>mapreduce.jobhistory.address</name><value>node3:10020</value></property><!-- 设置历史服务器的web页面地址和端口 --><property><name>mapreduce.jobhistory.webapp.address</name><value>node3:19888</value></property><!-- 配置存放日志文件的临时目录 --><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/opt/hadoop/hadoop-3.4.0/tmp/mr-history/tmp</value></property><!-- 配置存放运行日志文件的最终目录 --><property><name>mapreduce.jobhistory.done-dir</name><value>/opt/hadoop/hadoop-3.4.0/tmp/mr-history/done</value></property>
</configuration>

3.4 yarn-site.xml

添加配置如下:

<configuration><!-- 配置ResourceManager运行位置 --><property><name>yarn.resourcemanager.hostsname</name><value>node3</value></property><!-- 配置NodeManager启动时加载server的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!----------- 下面的可选择配置 -----------><!-- 配置使用mapreduce_shuffle中的类 --><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><!-- 配置ResourceManager服务器的web地址和端口 --><property><name>yarn.resourcemanager.webapp.address</name><value>node3:8088</value></property><!-- 配置配置是否启用日志聚集功能 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 配置聚集的日志在HDFS上保存的最长时间 --><property><name>yarn.log-aggregation.retain-seconds</name><value>106800</value></property><!-- 配置日志聚合目录 --><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/opt/hadoop/hadoop-3.4.0/logs</value></property>
</configuration>

namenode、secondary namenode 和 ResourceManager 建议放在不一设备上。

3.5 workers

设置为你的设备地址。如

node1
node2
node3

4 分发文件

经过上面的配置已经配置好文件,接下来需要把文件分发给其他设备。为了方便分发,我编写了脚本,以供使用。可参考:https://blog.csdn.net/White_Ink_/article/details/139909769。

5 启动集群

在 Hadoop 根目录运行以下命令。

  • 在启动 Hadoop 集群前,需要先格式化 NameNode,在 Master 主机下操作。在下一次格式化之前,需要停止所有的 NameNode和 DateNode,并删除所有机器的 tmp 和 logs 中的文件。
    ./bin/hdfs namenode -format
    
  • 启动和停止HDFS:
    ./sbin/start-dfs.sh        #启动HDFS
    ./sbin/stop-dfs.sh         #停止HDFS
    
  • 启动和停止YARN:
    ./sbin/start-yarn.sh       #启动YARN
    ./sbin/stop-yarn.sh        #停止YARN
    
  • 全部启动和停止:
    ./sbin/start-all.sh        #启动HDFS和YARN
    ./sbin/stop-all.sh         #停止HDFS和YARN
    
  • 启动和停止历史(日志)服务器:
    ./sbin/mr-jobhistory-daemon.sh start historyserver     #启动historyserver
    ./sbin/mr-jobhistory-daemon.sh start historyserver     #停止historyserver
    

6 访问

  • 访问HDFS:node1:9870
  • 访问YARN:node3:8088

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

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

相关文章

53、基于竞争层的竞争学习(matlab)

1、基于竞争层的竞争学习简介及原理 竞争学习是一种无监督学习方法&#xff0c;其中的竞争层神经元之间互相竞争以学习输入模式的表示。竞争学习的一个经典模型是竞争神经网络&#xff08;Competitive Neural Network&#xff0c;简称CNN&#xff09;&#xff0c;其核心部分是…

Docker使用daocloud镜像加速

之前给大家分享的阿里云的镜像加速&#xff0c;今天再给大家分享一个还可以使用的镜像加速地址daocloud。 经过测试速度还是比较快的。 [rootbogon ~]# cat /etc/docker/daemon.json {"registry-mirrors": ["https://docker.m.daocloud.io"] }[rootbogon…

运营商、银行、国企等单位开发岗24届Offer薪资与福利汇总

本文介绍24届校园招聘中&#xff0c;地理信息科学&#xff08;GIS&#xff09;专业硕士研究生所得Offer的整体薪资情况、福利待遇等。 在2024届秋招与春招中&#xff0c;我累计投递了170余个单位&#xff0c;获得17个Offer&#xff1b;平均每投递10个简历才能获得1个Offer。说句…

flink-触发器Trigger和移除器Evictor

窗口原理与机制 图片链接&#xff1a;https://blog.csdn.net/qq_35590459/article/details/132177154 数据流进入算子前&#xff0c;被提交给WindowAssigner&#xff0c;决定元素被放到哪个或哪些窗口&#xff0c;同时可能会创建新窗口或者合并旧的窗口。每一个窗口都拥有一个…

Pc端多功能视频混剪工具/便携版打开即用

PC便携版 视频批量剪辑大师&#xff0c;全自动剪辑神器&#xff0c;会打字就能做视频 多功能&#xff0c;视频混剪&#xff0c;视频配音&#xff0c;文字生成语音&#xff0c;图片合成视频&#xff0c;自动识别音频并生成字幕等功能 链接&#xff1a;https://pan.baidu.com/…

递归算法~快速排序、归并排序

递归排序是一种基于分治法的排序算法&#xff0c;最典型的例子就是快速排序和归并排序。这两种算法都利用递归将问题分解成更小的子问题&#xff0c;然后将子问题的解合并以得到原始问题的解。 1、快速排序&#xff08;Quick Sort&#xff09; 快速排序的基本思想是选择一个基…

文件操作与管理

程序经常需要访问文件和目录&#xff0c;读取文件信息或写入文件信息&#xff0c;在Python语言中对文件的读写是通过文件对象&#xff08;file object&#xff09;实现的。Python的文件对象也称为类似文件对象或流&#xff08;stream&#xff09;&#xff0c;因为Python提供一种…

springboot笔记示例七:mybiteplus框架mysql8新类型json集成

springboot笔记示例七&#xff1a;mysql8新类型json集成 ###本文md文件下载地址 https://download.csdn.net/download/a254939392/89492142md文件下载 建表SQL CREATE TABLE my_test (id int unsigned NOT NULL AUTO_INCREMENT,txt json DEFAULT NULL,txt_array json DEFAU…

<电力行业> - 《第9课:输电(二)》

4 输送电能流程 输送电能总共有&#xff1a;发电站→升压变压器→高压输电线→降压变压器→用电单位等五个流程。 电力工业初期&#xff0c;发电厂建在电力用户附近&#xff0c;直接向用户送电&#xff0c;所以那个时候只有发电和用电两个环节。 随着电力生产规模和负荷中心规…

烧结刚玉砂轮片 磨具用晶谷低温陶瓷结合剂玻璃粉

晶谷CBN 砂轮磨具用低温陶瓷结合剂玻璃粉的一些特点如下&#xff1a; - 软化点&#xff1a;通常为450~650度&#xff1b; - 膨胀系数&#xff1a;50~12010-7&#xff1b; - 粒径&#xff1a;300~3000目&#xff08;可按要求订做&#xff09;&#xff1b; - 外观颜色&#xff…

h5兼容table ,如何实现h5在app内使用h5渲染table表格而且实现横屏预览?

压图地址 横屏div 通过css 实现 transform: rotate(90deg); transformOrigin: 50vw 50vw ; height: 100vw; width: 100vh;<divclass"popup-box":style"{transform: originSet 0 ? rotate(90deg) : ,transformOrigin: originSet 0 ? 50vw 50vw : ,height…

GuLi商城-商品服务-API-三级分类-删除-逻辑删除

注意&#xff1a;官方文档说logic配置可以省略&#xff0c;代码中直观些&#xff0c;配上吧 逻辑删除注解&#xff1a; 实体类字段上加逻辑删除注解&#xff1a; 启动nacos&#xff1a; 启动商品服务&#xff1a; postman测试&#xff1a; 数据库字段值改成了0&#xff0c;说明…

Linux----> tail、cat、more、head、less的用法详解

1.tail命令&#xff1a;用于查看文件的最后几行内容。 基本用法&#xff1a;tail [选项] [文件] 常用选项&#xff1a; -n <行数>&#xff1a;显示最后的 <行数> 行。-f&#xff1a;实时显示文件新增内容&#xff0c;通常用于查看日志文件。 示例&#xff1a;…

Python测试的艺术:深入理解单元测试与unittest框架应用

Python测试的艺术&#xff1a;深入理解单元测试与unittest框架应用 一、引言 在软件开发过程中&#xff0c;测试是确保软件质量的关键环节。Python作为一种流行的编程语言&#xff0c;其测试体系也非常成熟和强大。其中&#xff0c;单元测试是测试体系中最基础、最常用的一种…

数据恢复篇:如何在没有备份的情况下从恢复已删除的照片

许多用户更喜欢将他们的私人照片保存在他们的 Android 设备上的一个单独的安全空间中&#xff0c;以确保他们的记忆不仅被存储&#xff0c;而且受到保护。这就是“安全文件夹”功能派上用场的地方。您可以使用 PIN 码、密码、指纹或图案锁定此文件夹&#xff0c;即使您的设备落…

Linux Docker Squid:构建自己的代理服务器

基础环境 ubuntu: docker docker-compose 1.准备环境 安装Docker和Docker Compose # 安装Docker sudo apt-get update sudo apt-get install docker.io# 安装Docker Compose sudo apt-get install docker-compose2.创建一个Dockerfile来构建Squid代理服务器的Docker镜像。 …

从Oracle自定义函数和存储过程案例学习PL/SQL的使用

一、什么是PL/SQL PL/SQL&#xff08;Procedural Language/Structured Query Language&#xff09; 是Oracle数据库对SQL的扩展&#xff0c;它在SQL的基础上增加了过程化编程语言的元素&#xff0c;如变量、条件语句、循环语句、异常处理等。这使得PL/SQL不仅可以用于查询数据&…

[小试牛刀-习题练]《计算机组成原理》之数据信息的表示、运算方法与运算器

【数据信息的表示运算方法与运算器】 1、【机器码转换】X-0.11111111&#xff0c;X的补码是 1.00000001 。 最高位符号位为负值&#xff1a; 反码法——绝对值按位取反末位加一&#xff0c;1.000000000.000000011.00000001扫描法——从右往左找到第一个为1的&#xff…

常用字符串方法<python>

导言 在python中内置了许多的字符串方法&#xff0c;使用字符串方法可以方便快捷解决很多问题&#xff0c;所以本文将要介绍一些常用的字符串方法。 目录 导言 string.center(width[,fillchar]) string.capitalize() string.count(sub[,start[,end]]) string.join(iterabl…

ffmpeg编码图象时报错Invalid buffer size, packet size * < expected frame_size *

使用ffmpeg将单个yuv文件编码转为jpg或其他图像格式时&#xff0c;报错&#xff1a; Truncating packet of size 11985408 to 3585 [rawvideo 0x1bd5390] Packet corrupt (stream 0, dts 1). image_3264_2448_0.yuv: corrupt input packet in stream 0 [rawvideo 0x1bd7c60…