Hadoop完全分布式的搭建

目录

前言

搭建

准备

配置JAVA环境

搭建Hadoop集群


前言

今天我们来学习Hadoop完全分布式的搭建,我们要搭建hadoop完全分布式要掌握哪些东西呢?

首先需要掌握的就是Hadoop的基础知识,了解Hadoop的生态系统,包括Hadoop的核心组件(如HDFS、MapReduce、YARN等)以及其他相关组件(如HBase、Hive、Zookeeper等)。理解这些组件的功能和相互作用对于搭建和管理Hadoop集群至关重要。因为Hadoop通常在Linux操作系统上运行,因此需要对Linux有一定的了解,包括基本的命令行操作、系统管理和网络配置等。再者Hadoop是用Java编写的,因此需要对Java编程语言有一定的了解,包括Java编程基础、JDK的安装和配置等。还要了解如何规划和搭建Hadoop集群,包括选择合适的硬件和软件、配置网络、安装和配置Hadoop等。此外,还需要了解如何管理和维护Hadoop集群,包括监控集群状态、处理故障、优化性能等。熟悉Hadoop的配置文件(如core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml等),了解如何配置和优化Hadoop集群以满足不同的业务需求。熟悉Hadoop的配置文件(如core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml等),了解如何配置和优化Hadoop集群以满足不同的业务需求。了解如何保障Hadoop集群的安全性和可靠性,包括设置访问控制、数据加密、备份和恢复等。

当我们大概了解了这些以后,就可以开始我们的搭建过程

搭建

准备

首先我们的Hadoop完全分布式,是搭建在Linux系统上的,所以我们需要在Linux服务系统上准备三个节点,这里大家自行准备,我准备的是

  • bigdata1
  • bigdata2
  • bigdata3

有了节点以后,我们还需要做一下集群规划

  节点NameNodeDataNodeSecondNameNode
bigdata1        √        √
bigdata2        √                √
bigdata3        √

上述表格就是我们的集群规划,采用1NameNode、3DataNode的方式去搭建我们的Hadoop分布式集群

配置JAVA环境

搭建Hadoop先配置支撑它的语言,要不则会寸步难行,这里选择的是jdk1.8.0版本

首先先把压缩包拉取到bigdata1节点的/opt/software目录下(没有的自行创建)

然后运行命令解压压缩包到/opt/module目录下(没有的自行创建)

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

首先 tar是Linux 系统上的一个用于处理归档文件的工具,-zxvf分别代表

  • z: 使用 gzip 进行解压。这告诉 tar 命令,归档文件是用 gzip 压缩的,所以需要先进行 gzip 解压。
  • x: 解压。这告诉 tar 命令要解压归档文件。
  • v: 详细模式(verbose)。这会在解压过程中显示正在解压的文件名,使得用户可以看到解压的进度。
  • f: 文件。这告诉 tar 命令后面会跟一个文件名,而不是从标准输入或输出中读取/写入。

解压缩完文件以后,还要配置JAVA环境才可以正常使用,所有环境我们都配在/etc/profile.d/目录下的my_env.sh文件下,这里不推荐在/etc/目录下的profile文件,因为一旦profile文件受损,节点就会宕机,所以建议配置在自建文件my_env.sh上

vim /etc/profile.d/bigdata_env.sh

在my_env.sh文件上添加内容:

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

保存退出以后,运行命令,刷新环境变量使其生效

source /etc/profile

运行命令,验证是否配置成功,如果没有报错,则为成功

java -version
javac

搭建Hadoop集群

与配置JAVA环境一样,我们需要先解压压缩包

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

然后我们配置hadoop的运行环境

vim /etc/profile.d/bigdata_env.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

然后使用source刷新环境变量文件,运行命令验证是否成功

hadoop version

接下来就是配置hadoop分布式最重要的部分了,配置文件

cd /opt/module/hadoop-3.1.3/etc/hadoop/

Hadoop-env.sh 文件

hadoop-env.sh 是 Hadoop 分布式文件系统 (HDFS) 和其他 Hadoop 组件的一个重要配置文件,这个文件主要用于设置 Hadoop 运行环境的一些重要参数,比如 Java 运行环境(JRE)的路径、Hadoop 的 PID(进程 ID)文件存放位置等。

然后修改Hadoop-env.sh文件,添加内容

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

核心配置文件 —— core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://bigdata1:9820</value></property><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value></property><property><name>hadoop.http.staticuser.user</name><value>root</value></property><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property></configuration>

HDFS 配置文件 —— hdfs-site.xml

<configuration><property><name>dfs.namenode.http-address</name><value>bigdata1:9870</value></property><property><name>dfs.namenode.secondary.http-address</name><value>bigdata3:9868</value></property><property><name>dfs.replication</name><value>2</value></property></configuration>

YARN 配置文件 —— yarn-site.xml

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>bigdata2</value></property><property> <name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property><property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log.server.url</name><value>http://bigdata1:19888/jobhistory/logs</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property>
</configuration>

MapReduce 配置文件 —— mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>bigdata1:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>bigdata1:19888</value></property>
</configuration>

配置 workers/slaves 文件

bigdata1
bigdata2
bigdata3

在/etc/profile.d/bigdata_env.sh 文件末尾田间

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

这是保证在HDFS上可以畅通无阻,生产活动的时候不建议这样,因为root用户是权限最大的用户

分发

配置分发工具:(参考尚硅谷)

进入/usr/bin目录下,创建文件xsync,

#!/bin/bash
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
for host in bigdata1 bigdata2 bigdata3
doecho ====================  $host  ====================for file in $@doif [ -e $file ]thenpdir=$(cd -P $(dirname $file); pwd)fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done

给xsync添加可执行的权限

chmod 777 /usr/bin/xsync

然后直接分发想分发的文件就可以了

xsync /opt/module/
xsync /etc/profile

第一启动hadoop集群需要先格式化,在bigdata1下运行

hdfs namenode -format

然后再bigdata1中,运行start-all.sh;再进入bigdata2,运行start-yarn.sh

和集群规划如果一致那么说明配置成功

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

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

相关文章

IIOT|QCA9882 vs MT7915: What‘s the difference?

IIOT|QCA9882 vs MT7915: Whats the difference? How to choose? Choosing QCA9882 or MT7915 depends on your specifc needs. lf you need a stable, widely compatible WiFi wireless cardthe QCA9882 is a good choice. lf you need wifi6 solution with DBDC 2.4Ghz 5G…

跨平台数据整合:电商平台如何利用API进行数据分析和决策支持

在当今数据驱动的商业环境中&#xff0c;跨平台数据整合对于电商平台来说至关重要。API&#xff08;应用程序编程接口&#xff09;提供了一种高效的方式来收集、整合和分析来自不同平台的数据&#xff0c;从而支持更明智的商业决策。以下是电商平台如何利用API进行数据分析和决…

PHP 实现http重定向https 或不带www的域名跳转到主域名

通过代码的方式的,比较简洁,容易控制.通过iis管理器的url重写或301重定向,总是出现各种冲突问题 以下代码解释.如果访问的url中,不是https安全链接.或者是不带www的域名,则说明都不符合本站的要求,那么,都需要进行完整链接(https://www.12.com)的跳转,不再做进一步的判断 if …

AI 大模型赋能手机影像,小米14 Ultra 让真实有层次

2月22日&#xff0c;小米龙年第一场重磅发布会&#xff0c;正式发布专业影像旗舰小米14 Ultra。 此前小米发布的两代 Ultra&#xff0c;在不同维度&#xff0c;引领了移动影像行业的走向。最新的小米14 Ultra 在定义的时候&#xff0c;我们反复在思考&#xff1a;怎么才能把移动…

一站式解决方案:uni-app条件编译及多环境配置,appid动态修改攻略!

前言 这篇文章主要介绍uniapp在Hbuilderx 中&#xff0c;通过工程化&#xff0c;区分不同环境、动态修改小程序appid以及自定义条件编译&#xff0c;解决代码发布和运行时手动切换到问题。 背景 在企业级的应用中&#xff0c;通常会分为&#xff0c;开发、联调、生产等多个环…

基于单片机的电子琴设计

基于单片机的电子琴设计 摘 要 读书、看电影、听音乐&#xff0c;都是最常见的丰富内心世界的良剂。听音乐&#xff0c;作为陶冶情操、提升境界最便捷的方式&#xff0c;正受到越来越多人们的欢迎。音乐可以很轻松的融入各种场合&#xff0c;给人们带来很轻松的氛围&#xff…

ChatGPT-Next-Web SSRF漏洞+XSS漏洞复现(CVE-2023-49785)

0x01 产品简介 ChatGPT-Next-Web 是一种基于 OpenAI 的 GPT-3.5 、GPT-4.0语言模型的产品。它是设计用于 Web 环境中的聊天机器人,旨在为用户提供自然语言交互和智能对话的能力。 0x02 漏洞概述 2024年3月,互联网上披露CVE-2023-49785 ChatGPT-Next-Web SSRF/XSS 漏洞,未经…

开源免费CasaOS:轻松打造高效便捷的家庭云生活新体验

一、引言 随着科技的不断发展&#xff0c;家庭云系统逐渐成为现代家庭生活中的重要组成部分。CasaOS作为一款简单易用的开源家庭云系统&#xff0c;受到了广大用户的青睐。其简洁明了的界面设计&#xff0c;使得即使没有任何技术背景的用户也能轻松上手。本文将详细介绍CasaOS…

若依中配置mybatis展示所有sql

在配置文件中加入下面这句 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

什么是制作视频内容?如何搞好视频内容制作?

写在前面 视频内容已成为希望吸引数字观众的企业、品牌和创作者的必备资产。事实上&#xff0c;根据NogenTech的一份报告&#xff0c;在2023年&#xff0c;91%的营销部门使用了这种动态内容。 视频内容创作和优化性能的技巧和窍门的增加绝非巧合。TikTok以及Instagram Reels和…

#LLM入门|Prompt#3.3_存储_Memory

在与语言模型交互时&#xff0c;一个关键问题&#xff1a;记忆缺失使得对话缺乏真正的连续性。 因此&#xff0c;接下来介绍 LangChain 中的储存模块&#xff0c;即如何将先前的对话嵌入到语言模型中的&#xff0c;使其具有连续对话的能力。 当使用 LangChain 中的储存(Memory)…

ChatGPT的核心技术

ChatGPT的核心技术主要包括以下几个方面&#xff1a; 语言模型&#xff1a;ChatGPT使用的是基于Transformer架构的语言模型&#xff0c;这种模型具有强大的处理能力和较低的学习成本&#xff0c;能够更好地处理自然语言中的语法和语义。预训练模型&#xff1a;ChatGPT采用了预…

基于SpringBoot+Druid实现多数据源:baomidou多数据源

前言 本博客姊妹篇 基于SpringBootDruid实现多数据源&#xff1a;原生注解式基于SpringBootDruid实现多数据源&#xff1a;注解编程式基于SpringBootDruid实现多数据源&#xff1a;baomidou多数据源 一、功能描述 支持 数据源分组 &#xff0c;适用于多种场景 纯粹多库 读写…

linux安全--Nginx与Tomcat实现负载均衡

目录 1.实验拓扑原理图&#xff0c;前提实现全网互通 2.找到nginx的conf目录中的nginx.conf文件 3.实验效果 1.实验拓扑原理图&#xff0c;前提实现全网互通 搭建全网互通可以看https://blog.csdn.net/m0_74313947/article/details/136008513?spm1001.2014.3001.5501 搭建N…

SQLiteC/C++接口详细介绍之sqlite3类(七)

上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;六&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍之sqlite3类&#xff08;八&#xff09;&#xff08;未发表&#xff09; 22.sqlite3_create_collation、sqlite3_create_collation16和sqlite3_creat…

Unload-labs-pass-03

这里是设置了黑名单不能传.asp.aspx.php.jsp文件 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(.asp,.aspx,.php,.jsp);$file_name trim($_FILES[upload_file][name]);$file_name deldot($file_name);//删…

Python实现BOA蝴蝶优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

C# 中的 List<int> 和 int[] ?

区别 List<int>和int[]都可以用来存储整数集合&#xff0c;但它们之间有一些重要的区别&#xff1a; 大小可变性&#xff1a;List<int>的大小是可变的&#xff0c;你可以随时添加或删除元素&#xff0c;而int[]的大小在创建时就固定了&#xff0c;不能再改变。 方…

报表生成器FastReport .Net用户指南:关于脚本(上)

FastReport的报表生成器&#xff08;无论VCL平台还是.NET平台&#xff09;&#xff0c;跨平台的多语言脚本引擎FastScript&#xff0c;桌面OLAP FastCube&#xff0c;如今都被世界各地的开发者所认可&#xff0c;这些名字被等价于“速度”、“可靠”和“品质”,在美国&#xff…

微信小程序自动化测试pytest版工具使用方法

-mini https://github.com/zx490336534/pytest-mini 微信小程序自动化测试pytest插件/工具 基于MiniTest进行pytest改造 使用方法 准备测试小程序 根据miniprogram-demo项目介绍运行一次项目 成功运行后关闭 安装&更新 pip install pytest-mini --upgrade引入插件…