Hadoop伪分布式平台搭建

news/2024/5/8 8:46:18

搭建Hadoop伪分布式环境是在单台机器上模拟完整的Hadoop分布式系统,使得所有的Hadoop守护进程(如NameNode、DataNode、ResourceManager、NodeManager等)都在同一台机器上运行。这样可以在一台机器上体验Hadoop的分布式特性,适合学习、测试和开发。以下是搭建Hadoop伪分布式环境的详细步骤:

1.系统准备

硬件要求:

  • 一台机器:可以是物理机或虚拟机,具有足够的内存(至少4GB,推荐8GB或更高)和磁盘空间。

软件要求:

  • 操作系统:安装Linux发行版,如Ubuntu、CentOS或RHEL。
  • Java环境:安装Java Development Kit (JDK) 8或以上版本,并设置JAVA_HOME环境变量。

2.安装Hadoop 

下载Hadoop

  • 从Apache官方网站或其他可信源下载对应版本的Hadoop二进制包。
  • 将下载的Hadoop压缩包上传至目标机器,并解压缩至指定目录(如 /opt 或 /usr/local/src)。

配置环境变量

  • 在用户主目录(如~/.bashrc~/.bash_profile 或 /etc/profile)中添加如下环境变量:
vim /etc/profile
#在结尾添加下面内容export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

3.设置JDK环境变量

vim /etc/profile
#在结尾添加下面内容
export JAVA_HOME=/usr/local/src/jdk
export PATH=$PATH:$JAVA_HOME/bin

4.配置Hadoop

编辑核心配置文件

  • core-site.xml:设置Hadoop全局属性,如HDFS的默认FS URI(fs.defaultFS)应指向本地的伪分布式模式,例如 hdfs://localhost:9000;临时文件目录(hadoop.tmp.dir)设置为一个可用的本地路径,如 /usr/local/src/hadoop/tmp

  • hdfs-site.xml:配置HDFS特定属性,如副本数(dfs.replication)在伪分布式模式下通常设为1,表示数据只有一个本地副本;开启短路读写(dfs.client.use.datanode.hostnamedfs.datanode.hostname)以优化本地访问性能。

  • yarn-site.xml:设置YARN相关参数,如ResourceManager地址(yarn.resourcemanager.hostname)设为 localhost;调度器策略等。

  • mapred-site.xml(或mapred-site.xml.template改名后):配置MapReduce框架属性,如作业提交方式(mapreduce.framework.name设为yarn)。

配置主机名与IP映射

vim /etc/hosts
#在结尾添加下面内容
192.168.10.10 master

 编辑core-site.xml

 

cd /usr/local/src/hadoop/etc/hadoop/
vim core-site.xml#添加下面内容
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value> #填写自己的主机名</property><property><name>hadoop.tmp.dir</name><value>/usr/local/src/hadoop/bin/tmp</value></property>
</configuration>

 编辑hdfs-site.xml

cd /usr/local/src/hadoop/etc/hadoop/
vim hdfs-site.xml
#添加如下内容
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>/usr/local/src/hadoop/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/usr/local/src/hadoop/dfs/data</value></property>
</configuration>

 编辑yarn-site.xml

cd /usr/local/src/hadoop/etc/hadoop/
vim yarn-site.xml
#添加下面内容
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property>
</configuration>

 编辑mapred-site.xml

cd /usr/local/src/hadoop/etc/hadoop/
vim mapred-site.xml
#添加下面内容
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

 编辑masters

cd /usr/local/src/hadoop/etc/hadoop/
vim masters
192.168.10.10  #主机ip

 创建目录

mkdir /usr/local/src/hadoop/tmp
mkdir /usr/local/src/hadoop/dfs/name -p
mkdir /usr/local/src/hadoop/dfs/data -p

5.配置SSH无密码登录

虽然在伪分布式环境中SSH无密码登录不是必须的,但如果希望使用某些依赖SSH的功能(如DistCp、Hadoop fs -get/-put等),可以配置SSH公钥认证以实现本地无密码登录: 

[root@master ~]# vim /etc/ssh/sshd_config
PubkeyAuthentication yes #找到此行,并把#号注释删除。

 生成密钥

[root@master ~]# ssh-keygen -t rsa 

查看密钥是否生成

[root@master ~]# ls ~/.ssh
id_rsa id_rsa.pub

将 id_rsa.pub 追加到授权 key 文件中

 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 查看是否成功

[root@master ~]#  ls ~/.ssh/
authorized_keys id_rsa id_rsa.pub

设置权限

chmod 600 ~/.ssh/authorized_keys

 配置 Hadoop 格式化

cd /usr/local/src/hadoop/
bin/hdfs namenode -format

 启动Hadoop集群

start-dfs.sh
start-yarn.sh
start-all.sh

查看是否启动成功 

jps
6128 SecondaryNameNode
9316 NodeManager
6038 NameNode
9036 ResourceManager
9868 Jps
8733 DataNode

 访问

打开浏览器输入http://localhost:50070

打开浏览器输入http://localhost:50090

打开浏览器输入http://localhost:8088

到此你的Hadoop伪分布式就搭建完成了

6.装spark组件

去Spark官网自行下载安装包,进行解压,这里不做演示

搭建单击伪分布式集群

配置spark

cd /sur/local/src/spark/conf
cp spark-env.sh.template spark-env.sh#编辑配置文件
export JAVA_HOME=/usr/local/src/jdk
export SPARK_MASTER_IP=master
export HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoop
export SPARK_LOCAL_IP=master

启动spark集群

cd /usr/local/src/spark/sbin/
./start-all.sh

 启动spark-shell

cd /usr/local/src/spark/
./bin/spark-shell

 

 访问

打开浏览器输入http://localhost:8080

7.安装scala

自行下载安装包,并加压到相关路径,这里不做演示

配置scala环境变量

vim /etc/profile/
#在结尾添加下面内容
export SCALA_HOME=/usr/local/src/scala
export PATH=$PATH:$SCALA_HOME/bin

运行scala

scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_152).
Type in expressions for evaluation. Or try :help.scala> 


http://www.mrgr.cn/p/02278608

相关文章

python使用opencv对图像的基本操作(2)

13.对多个像素点进行操作&#xff0c;使用数组切片方式访问 img[i,:] img[j,:] #将第j行的数值赋值给第i行 img[-2,:]或img[-2] #倒数第二行 img[:,-1] #最后一列 img[50:100,50:100] #50-100行&#xff0c;50-100列&#xff08;不包括第100行和第100列&#xff09; img[:100…

防盗链在nginx中如何配置,简单演示403forbidden的效果

一、使用场景&#xff1a; 资源被其他网站无端盗用 服务器压力无端增加 二、实现方法 1.valid_referers指令可以检测被访问资源从哪个地址来 2.通过referer头字段判断 3.若为空&#xff0c;报403错误 nginx的准备工作&#xff1a; 可以看 虚拟机中使用LNMP模拟跨域并结合…

北京车展“第一枪”:长安汽车发布全球首款量产可变新汽车

4月25日&#xff0c;万众瞩目的2024北京国际汽车展览会在中国国际展览中心如期而至。作为中国乃至全球汽车行业的盛宴&#xff0c;本次车展也吸引了无数业内人士的高度关注。 此次北京车展以“新时代 新汽车”为主题&#xff0c;汇聚了1500余家主流车企及零部件制造商&#xff…

数据结构-二叉树-堆(二)

一、建堆的时间复杂度问题 1、除了向上调整建堆&#xff0c;我们还可以向下调整建堆。不能在根上直接开始向下调整。这里的条件就是左右子树必须都是大堆或者小堆。我们可以倒着往前走&#xff0c;可以从最后一个叶子开始调整。但是从叶子开始调整没有意义。所以我们可以从倒数…

Java基础之JVM基础调优与常见问题

常见命令 以下命令的介绍&#xff0c;全部在jdk8环境下运行的&#xff1b; jps ☆☆☆☆☆ 查看当前运行的进程号&#xff1b; jmap ☆☆☆ jmap命令可以查看jvm的内存信息&#xff0c;class对应的实例个数以及占用的内存大小 jmap -histo 查看当前java进程 [rdVM-8-12-c…

微信小程序关于主包大小不能超过1.5MB的问题

常规的解决办法有以下几种 1、把资源文件改成远程服务器的&#xff0c;比如png这些 2、进入如图的分析页面&#xff0c;能明确知道你哪个插件包太大&#xff0c;我这里之前echart的包就1mb&#xff0c;现在给他缩减到了500kb的样子 3、解决vant等npm包太大的问题&#xff0c…

Linux——NFS网络文件系统

在生产环境中共享宿主目录可以用于集中管理账户 一、存储设备 DAS 是直连存储相当于移动硬盘 NAS 是网络文件系统&#xff0c;挂载后可以直接访问 SAN 存储区域网络 IPSAN 网线连接 共享的是设备&#xff0c;需要挂载后分区使用 FCSAN 光纤连接 二、服务的管理 1、安…

【C++杂货铺】多态

目录 &#x1f308;前言&#x1f308; &#x1f4c1;多态的概念 &#x1f4c1; 多态的定义及实现 &#x1f4c2; 多态的构成条件 &#x1f4c2; 虚函数 &#x1f4c2; 虚函数重写 &#x1f4c2; C11 override 和 final &#x1f4c2; 重载&#xff0c;覆盖&#xff08;重写…

《HCIP-openEuler实验指导手册》1.6 Apache静态资源配置

知识点 常用用途&#xff1a; 软件仓库镜像及提供下载服务&#xff1a; 配置步骤 删除网站主目录中的文件&#xff08;本实验机目录为/home/source ip为192.168.12.137 端口为81&#xff09; cd /home/source rm -rf *在主目录中新建6个文件夹如下图 mkdir test{1..6}新建…

redis常用数据结构

redis常用数据结构 Redis 底层在实现下面数据结构的时候&#xff0c;会进行特定的优化&#xff0c;来达到节省时间/空间的效果。 内部结构 String raw&#xff08;最基本的字符串&#xff09;&#xff0c;int&#xff08;实现计数功能&#xff0c;当value为整数的时候会用整…

python基础——正则表达式

&#x1f4dd;前言&#xff1a; 这篇文章主要想讲解一下python中的正则表达式&#xff1a; 1&#xff0c;什么是正则表达式 2&#xff0c;re模块三匹配 3&#xff0c;元字符匹配 4&#xff0c;具体示例 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&am…

TreeSet 和 TreeMap 和 HashSet 和 HashMap

一、二叉搜索树 1、概念 &#xff08;1&#xff09;二叉搜索树 要么是一棵空树&#xff0c;要么就得满足左子树上所有结点的值都小于根结点的值&#xff0c;右子树上所有结点的值都大于根结点的值&#xff0c;即左边比我小&#xff0c;右边比我大。二叉树的左右子树也分别都是…

IntelliJ IDEA2020下使用Maven构建Scala 项目

1.创建maven文件 2.进入pom.xml导入依赖 <!--添加spark的依赖--><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.2.1</version></dependency><!--添加scala依…

玩转nginx的配置文件3

1. limit_req_zone配置限流 limit_req_zone $binary_remote_addr zonemylimit:10m rate10r/s;upstream myweb {server 10.0.105.196:80 weight1 max_fails1 fail_timeout1;}server {listen 80;server_name localhost;location /login {limit_req zonemylimit;proxy_pass http:…

.net8系列-04图文并茂手把手教你配置Swagger支持token以及实现Swagger扩展,Swagger代码单独抽离

前情提要 接上篇文章,我们当前已完成如下内容:创建应用成功 创建接口成功 配置Swagger实现接口注释和版本控制 本文章主要内容为: 配置Swagger支持token传值测试接口快速上手-代码配置 添加如下代码 文件目录:\xiaojinWebApplication\xiaojinWebApplication\Program.cs// S…

【OceanBase诊断调优】——hpet(高精度时钟源)引起的CPU高问题排查

最近总结一些诊断OCeanBase的一些经验&#xff0c;出一个【OceanBase诊断调优】专题出来&#xff0c;也欢迎大家贡献自己的诊断OceanBase的方法。 1. 前言 昨天在问答区帮忙排查一个用户CPU高的问题&#xff0c;帖子链接&#xff1a;《刚刚新安装的OceanBase集群&#xff0c;…

万业企业发布23年年报、24年一季报,集成电路业务同比大增近七成 转型成效显著

4月26日晚间&#xff0c;万业企业&#xff08;600641&#xff09;发布2023年年度报告及2024年一季度报告。2023年&#xff0c;公司实现营业收入9.65亿元&#xff0c;归母净利润1.51亿元。其中&#xff0c;公司集成电路设备制造业务收入较上年同期大幅增长67.53%&#xff0c;公司…

Synchronized关键字的深入分析

一、引言 在多线程编程中&#xff0c;正确地管理并发是确保程序正确运行的关键。Java提供了多种同步工具&#xff0c;其中synchronized关键字是最基本且最常用的同步机制之一。本文旨在深入解析synchronized的实现原理&#xff0c;探讨其在不同应用场景中的使用&#xff0c;并…

.net报错异常及常用功能处理总结(持续更新)

@目录1. WebApi dynamic传参解析结果中ValueKind = Object处理方法问题描述方案1:(推荐,改动很小)方案2:2.C# .net多层循环嵌套结构数据对象如何写对象动态属性赋值问题描述JavaScript动态属性赋值.net动态属性赋值3.Object.GetType().GetProperty().GetValue()读取对象报错…

微信小程序实战项目开发(天气预报项目实战):内涵开发说明文档、需求文档 手把手分步骤教你写出自己的小程序项目 天气预报小程序 时实请求获取天气 自定义功能 完整的源代码

文章目录 微信小程序开发实现天气预报 一、项目需求分析需求分析实现思路分析详解如下&#xff1a;1、创建项目、全局配置 json 文件2、在 wxml文件中完成布局3、wxss的实现美化效果颜色渐变效果&#xff1a;鼠标 hover 浮动阴影效果&#xff1a;圆角效果底部按钮button使用fle…