Hadoop部署伪分布式

news2024/11/16 9:33:46

伪分布式模式也是只需要一台机器,但是与本地模式的不同,伪分布式使用的是分布式的思想,具有完整的分布式文件存储和分布式计算的思想。只不过在进行存储和计算的时候涉及到的相关的守护进程都运行在同一台机器上,都是独立的Java进程。因而称为伪分布式集群。比本地模式多了代码调试功能,允许检查内存使用情况、HDFS输入输出、以及其他的守护进程交互。

​ 总结来说: 伪分布式集群就是只有一个节点的分布式集群。


平台软件说明

平台&软件说明
宿主机操作系统Windows / MacOS
虚拟机操作系统CentOS 7
虚拟机软件Windows: VMWare
MacOS: Parallels Desktop
SSH工具Windows: MobaXterm / FinalShell
MacOS: FinalShell / iTerm2
软件包上传路径/root/softwares
软件安装路径/usr/local
JDKX64: jdk-8u321-linux-x64.tar.gz
ARM: jdk-8u321-linux-aarch64.tar.gz
HadoopX64: hadoop-3.3.1.tar.gz
ARM: hadoop-3.3.1-aarch64.tar.gz
用户root

搭建环境准备 

  1. 总纲

    1. 确保防火墙是关闭状态。
    2. 确保NAT模式和静态IP的确定 (192.168.10.101)
    3. 确保/etc/hosts文件里, ip和hostname的映射关系
    4. 确保免密登陆localhost有效
    5. jdk和hadoop的环境变量配置
    复制代码
  2. 防火墙关闭

    [root@qianfeng01 ~]# systemctl stop firewalld
    [root@qianfeng01 ~]# systemctl disable firewalld
    [root@qianfeng01 ~]# systemctl stop NetworkManager
    [root@qianfeng01 ~]# systemctl disable NetworkManager
    
    #最好也把selinux关闭掉,这是linux系统的一个安全机制,进入文件中将SELINUX设置为disabled
    [root@qianfeng01 ~]# vi /etc/selinux/config
    .........
    SELINUX=disabled			
    .........
    复制代码
  3. 修改host映射

    # 进入hosts文件,配置一下ip和hostname
    [root@qianfeng01 ~]# vi /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.10.101 qianfeng01     # 添加本机的静态IP和本机的主机名之间的映射关系      
    复制代码
  4. 确保ssh对localhost的免密登陆认证有效

    # 1. 使用rsa加密技术,生成公钥和私钥。一路回车即可
    [root@qianfeng01 ~]# ssh-keygen -t rsa				
    # 2. 进入~/.ssh目录下,使用ssh-copy-id命令
    [root@qianfeng01 .ssh]# ssh-copy-id  root@qianfeng01
    # 3. 进行验证,去掉第一次的询问(yes/no)
    [hadoop@qianfeng01 .ssh]# ssh localhost
    复制代码
  5. 确保JDK与Hadoop已经安装完成,并且已经配置好环境变量

 配置文件修改

  1. core-site.xml

    <configuration>
        <!-- 设置namenode节点 -->
        <!-- 注意: hadoop1.x时代默认端口9000 hadoop2.x时代默认端口8020 hadoop3.x时代默认端口 9820 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://qianfeng01:9820</value>
        </property>
        
        <!-- hdfs的基础路径,被其他属性所依赖的一个基础路径 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/usr/local/hadoop-3.3.1/tmp</value>
        </property>
    </configuration>
    复制代码
  2. hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局 -->
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>qianfeng01:9868</value>
        </property>
        <!-- namenode守护进程的http地址:主机名和端口号。参考守护进程布局 -->
        <property>
            <name>dfs.namenode.http-address</name>
            <value>qianfeng01:9870</value>
        </property>
    </configuration>
    复制代码
  3. hadoop-env.sh

    export JAVA_HOME=/usr/local/jdk1.8.0_321
    
    # Hadoop3中,需要添加如下配置,设置启动集群角色的用户是谁
    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
    复制代码

格式化集群

注意事项:

​ 我们在core-site.xml中配置过hadoop.tmp.dir的路径,在集群格式化的时候需要保证在这个路径不存在!如果之前存在数据,先将其删除,再进行格式化!

hdfs namenode -format
复制代码

image-20220128125929695

启动集群

[root@qianfeng01 hadoop]# start-dfs.sh
Starting namenodes on [qianfeng01]
Starting datanodes
Starting secondary namenodes [qianfeng01]

[root@qianfeng01 hadoop]# jps
11090 Jps
10595 NameNode
10938 SecondaryNameNode
10763 DataNode
复制代码

webUI查看

在电脑的浏览器中输入虚拟机的IP地址,如果做过了主机名映射,可以直接使用主机名


http://192.168.10.101:9870

image-20220128130634155

案例演示: wordcount

  1. 数据准备

    [root@qianfeng01 ~]# mkdir input && cd input
    [root@qianfeng01 input]# echo "hello world hadoop linux hadoop" >> file1
    [root@qianfeng01 input]# echo "hadoop linux hadoop linux hello" >> file1
    [root@qianfeng01 input]# echo "hadoop linux mysql linux hadop" >> file1
    [root@qianfeng01 input]# echo "hadoop linux hadoop linux hello" >> file1
    [root@qianfeng01 input]# echo "linux hadoop good programmer" >> file2
    [root@qianfeng01 input]# echo "good programmer qianfeng good" >> file2
    复制代码
  2. 上传到集群

    # 因为伪分布式集群也应用到了分布式的思想,分布式的存储。任务处理的数据是HDFS的数据,而并不是Linux本地的。
    [root@qianfeng01 input]# hdfs dfs -put ~/input/ /
    # 检查是否已经上传成功
    [root@qianfeng01 input]# hdfs dfs -ls -R /
    drwxr-xr-x   - root supergroup          0 2022-01-28 13:11 /input
    -rw-r--r--   1 root supergroup         31 2022-01-28 13:11 /input/file
    -rw-r--r--   1 root supergroup        127 2022-01-28 13:11 /input/file1
    -rw-r--r--   1 root supergroup         59 2022-01-28 13:11 /input/file2
    复制代码
  3. 执行任务

    [root@qianfeng01 input]# hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
    复制代码
  4. 查看结果

    [root@qianfeng01 input]# hdfs dfs -cat /output/*
    good	3
    hadoop	9
    hadop	2
    hello	3
    linux	10
    mysql	2
    programmer	2
    qianfeng	1
    world	1

可以观看视频:

千锋教育大数据Hadoop全新升级版入门教程,零基础从安装搭建到集群调优

 

 

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

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

相关文章

《LKD3粗读笔记》(15)进程地址空间

进程地址空间&#xff1a;内核除了管理本身的内存外&#xff0c;还必须管理用户空间中进程的内存&#xff0c;这个内存就是进程地址空间&#xff0c;即系统中每个用户空间进程所看到的内存。Linux操作系统采用虚拟内存技术&#xff0c;系统中的所有进程之间以虚拟方式共享内存。…

面试都不会造火箭,还想拿20k,过于离谱

前段时间公司缺人&#xff0c;也面了许多测试&#xff0c;一开始瞄准的就是中级水准&#xff0c;当然也没指望能来大牛&#xff0c;提供的薪资在15-20k这个范围&#xff0c;来面试的人有很多&#xff0c;但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

iOS App外包开发的内存泄露解决

在iOS应用开发中&#xff0c;内存泄露是一个常见的问题。内存泄露会导致应用程序占用越来越多的内存&#xff0c;最终可能导致应用程序崩溃。为了解决这个问题&#xff0c;可以使用以下工具和方法来查找和修复内存泄露。今天和大家分享这方面的知识&#xff0c;希望对大家有所帮…

AttributeError: module ‘gym‘ has no attribute ‘benchmark_spec‘解决办法

报错如下&#xff1a; 我安装的gym版本是gym-0.26.2 报错原因&#xff1a;gym版本太高了&#xff0c;需要降低版本 pip install gym0.9.0 -i https://pypi.douban.com/simple

@Qualifier注解详解

本文来说下Qualifier注解使用 文章目录 Autowired注解Qualifier注解Primary注解 Resource注解 Autowired注解 spring Autowire 的注解默认是按类型注入bean 如果存在多个实现类&#xff0c;可以使用 Qualifier注解 Qualifier注解 Primary注解 存在多个实现类&#xff0c;也可以…

支持双向充放电的高效Buck-Boost控制器——TMI5810

传统方案下&#xff0c;MCU需要分别控制“充电电路”和“放电电路”的功能模块实现电池包充放电&#xff0c;整个过程相当复杂&#xff0c;电路设计也比较繁琐。 拓尔微TMI5810是一颗集双向充放电和高效率于一身的同步升降压电源管理芯片&#xff0c;能有效解决多节锂电池充放电…

RAM Sequential

前段时间&#xff0c;在微信公众号上偶然看到一篇很不错的技术分享文章&#xff1a;《南湖处理器DFT设计范例》。文中详细介绍了中科院计算所的RISC-V处理器实施的DFT设计。 去年&#xff0c;也基于一款处理器应用过Share Test Bus技术&#xff0c;但在memory界面fault测试的问…

基于 ESP32 创建 HTTP Server 服务器,支持载入文件到服务器,并对载入文件进行删除管理

软件编程指南参见&#xff1a;HTTP 服务器 测试准备 任意一款 ESP32 系列开发板2.4GHz 路由器热点准备各种格式的文件 测试软件 可基于 esp-idf/examples/protocols/http_server /file_serving 例程进行测试 测试步骤 1、软件配置 只需要设置 ESP32 连接的 2.4GHz 的 WiFi…

linux 部署Nginx

1&#xff0c;进入官网下载Nginx资源: 官网下载&#xff1a;http://nginx.org/en/download.html 2、下载 nginx-1.20.2 3、上传服务器 /opt目录 4、解压nginx-1.20.2.tar.gz 到当前目录 tar -zxvf nginx-1.20.2.tar.gz 5、配置基本信息&#xff0c;命令如下 #配置config…

香港服务器如何操作域名解析让网站上线?

​  网站上线是一个需要多个步骤的过程&#xff0c;其中之一就是解析IP。在这个过程中&#xff0c;您需要将您的网站域名解析到香港服务器IP地址&#xff0c;以便访问者可以通过域名来访问您的网站。 下面是解析IP的一般步骤&#xff1a; 1. 获取服务器IP地址&#xff1a;首先…

回收站文件恢复教程:如何找回误删除的重要文件

在使用电脑的过程中&#xff0c;误删除文件是一件很常见的事情&#xff0c;尤其是对于那些不太熟悉电脑操作的人来说&#xff0c;这种情况更为普遍。当重要文件误删除之后&#xff0c;人们最希望的就是能够快速地找回它。其实&#xff0c;在 Windows 操作系统中&#xff0c;回收…

View的工作原理

View的工作原理 当Activity对象被创建的时候,会将DecorView添加到Window中,同时创建ViewRootImpl对象并将它和DecorView关联起来 ViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot完成的 View的绘制是从ViewRoot的perf…

如何编写快速的SQL查询(一)——MySQL8.0优化器查询优化处理与样例

当希望MySQL能够以更高的性能运行查询时&#xff0c;最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点&#xff0c;很多查询优化工作实际上就是遵循一些原则让优化器能够按照预想的合理的方式运行。 MySQL是如何执行一个查询的过程的&#xff1f;根据图8-1可…

Java基础 变量与数据类型(类型转换)

变量 为什么需要变量 一花一世界&#xff0c;如果把一个程序看做一个世界或一个社会的话&#xff0c;那么变量就是程 序世界的花花草草、万事万物。即&#xff0c;变量是程序中不可或缺的组成单位&#xff0c;最基 本的存储单元。 初识变量 变量的概念 内存中的一个存储区域…

4.计算机网络基础

文章目录 1.网络互联模型2.常见网络协议&#xff08;1&#xff09;应用层协议&#xff1a;FTP、HFTP、HTTP&#xff08;2&#xff09;传输层协议&#xff1a;TCP、UDP三次握手、四次挥手&#xff08;重要&#xff09;TCP 和 UDP 区别&#xff08;1&#xff09;连接&#xff08;…

【可乐荐书】人工智能数学基础

本栏目将推荐一些经典的、有趣的、有启发性的书籍&#xff0c;这些书籍涵盖了各个领域&#xff0c;包括文学、历史、哲学、科学、技术等等。相信这些书籍不仅可以让你获得知识&#xff0c;还可以让你感受到阅读的乐趣和魅力。 今天给大家推荐的书籍是&#xff1a;《人工智能数…

1688阿里巴巴中国站按关键字搜索抓取新品数据API接口展示示例(封装可高并发)(Java系列)

一、电商平台上新的重要性 电商平台上新非常重要。 首先&#xff0c;持续的新品上线可以吸引更多的用户访问平台和留存用户的兴趣。新品可以激发用户想要知道更多、购买更多的欲望&#xff0c;从而提高用户的使用频率和转化率。此外&#xff0c;新品上线也可以使电商平台更具…

windows下lib文件中的函数列表查看

可以使用Visual Studio中自带的dumpbin工具&#xff0c;首先应确保该文件路径已经加载到了环境变量中&#xff0c;以博主环境为例&#xff0c;其路径在 D:\xxxxxxxxxxxxx\Microsoft Visual Studio 14.0\VC\bin dumpbin.exe /LINKERMEMBER libfile.lib

pytorch房价预测(线性回归)

文章目录 一、前言二、实现方法 一、前言 任务目标&#xff1a;根据统计在csv中的房屋属性相关数据&#xff0c;预测房屋最终成交价格数据集&#xff1a;《住宅属性数据集》&#xff0c;自取https://download.csdn.net/download/weixin_43721000/87785277 3.数据集字段解释&am…

JAVA开发(对大表数据逐条进行处理踩的坑记录一下)

一、编程语言介绍 所使用的编程语言为JAVA。纯后端开发。 二、炫技代码分享 现在我编写代码一般通过逆向工程生成&#xff0c;只需要设计好数据库表就可以逆向生成后端的接口模块。 三、案例分享 逆向工程。逆向工程涉及到的输出模块。具体运用需要关注和联系博主分享使用。 ##…