首页 > 其他分享 >大数据时代--Hadoop的学习介绍,安装配置过程#全世界最细致万字教程(*拌面版

大数据时代--Hadoop的学习介绍,安装配置过程#全世界最细致万字教程(*拌面版

时间:2024-11-18 17:16:04浏览次数:3  
标签:拌面 -- 虚拟机 sudo Hadoop hadoop master 数据

前言:

        让我们回到世界转变为数字时代之前的日子。那时,生成的数据量非常小,速度相对缓慢,几乎所有数据都是文件,行和列的形式,存储或处理这种数据并不麻烦,因为单个存储单元和处理器结合就可以完成这项工作,随着时间的流逝,互联网席卷了全球,每微秒都会产生大量以多种形式和格式的数据,半结构化和非结构化数据现在以,电子邮件,图像,音频和视频等形式出现,这些数据统称为大数据。尽管如此,但想要处理这些大数据几乎是不可能的,而且存储单元处理器组合显然还不够。那么解决方案是什么呢?

        多个存储单元和处理器无疑是当下的需要,这个概念被并入Hadoop框架中,该框架可以有效存储和处理大量数据,通过使用硬件集群。Hadoop由三个专门为处理大数据而设计的组件组成。

        为了充分利用数据,第一步是存储数据,Hadoop的第一个组件是它的存储单元--Hadoop分布式文件系统(HDFS),在一台电脑上存储大量数据是不可行的,因此,数据分布在许多计算机中并以块的形式存储。(如果你有600MB的数据要存储,HDFS将数据分成多个数据块,然后存储在集群中的几个数据节点上,128MB是每个块的默认大小,因此,600MB将被分为4个128MB块和一个88MB块,ABCDE。)但是如果一个数据节点崩溃了怎么办,我们会丢失了那块特定的数据吗?不会,这就是HDFS的魅力所在,HDFS对数据进行拷贝并将其存储在多个系统中。(例如:当块A被创建时,将其复制并存储在不同的数据节点上,这被称为复制方法,这样做,即使一个数据节点崩溃,由于HDFS容错也不会损失任何数据

        成功存储数据后,需要对数据进行处理。这是Hadoop的第二个组件--MapReduce发挥作用的地方,在传统的数据处理方法中,整个数据都是在一台具有单个处理器的机器上处理的,既费时又低效,特别是在处理大量各种数据时更是如此。为了克服这个问题,MapReduce将数据分成多个部分,并在不同的数据节点上分别处理每个部分,然后将各个结果汇总并最终输出,这改善了负载平衡并节省了大量时间。现在已经准备好了MapReduce,是时候在Hadoop集群上运行了,这是在内存,网络带宽和CPU等资源的帮助下完成的,多个作业在Hadoop上同时运行,他们都需要硬件资源来成功完成任务,为了有效的管理这些资源,我们使用了Hadoop的第三个组件--YARN。YARN由资源管理器(分配资源),节点管理器(处理节点并监控节点中的资源使用情况),应用管理器和容器(包含物理资源的集合)组成。

         除了这些,作为大数据时代最有力的工具之一,还有很多工具和框架需要我们去了解。

从今天起,不只学java了,大数据也要搞起来。

-----------------------------分割线-------------------------------

1.hadoop简介

        hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。

        #什么是分布式基础架构?

        Hadoop是基于java语言开发的,具有很好的跨平台性,并且可以部署在廉价的计算机集群中。

        #电影《社交软件》里是不是就用的Hadoop

        Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce。

        #两个名词分别代表着什么?

        Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。

2.Hadoop版本演变

 目前Hadoop的最新版本,可以登录Hadoop官网来查看,当前最新的为3.4.1。

  网址:https://hadoop.apache.org/

3.Hadoop特性   

        Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠,高效,可伸缩的方式进行处理的。

 4.Hadoop生态圈

未来我们会一个个探索

5.Hadoop的安装和配置

        ~1.因为采取的是分布式,所以我们要先在自己的电脑上安装虚拟机

Ubuntu20.04 Server版本安装

①下载链接:

https://releases.ubuntu.com/focal/ubuntu-20.04.6-live-server-amd64.iso

②创建虚拟机

选择ubuntu-20.04.6-live-server-amd64.iso,按照提示创建虚拟机,创建过程中需要输入:电脑名称,用户名称,用户密码等内容,需要记住相关信息。

③设置Ubuntu虚拟机网络

先设置Windows下的共享网络,然后设置VMware的虚拟机网络编辑器,最后通过ping www.baidu.com测试网络是否通。

第1步:打开window中网络共享(将当前可上网的网卡共享给vmnet8,操作如下图)

第2步:设置虚拟机网络适配器为NAT模式

第3步:打开vmware中菜单编辑->虚拟网络编辑器,使其中网关地址与window中vmnet8中一致;(子网IP:192.168.137.0,NAT设置中的网关为:192.168.137.2)

第4步:测试外网是可用

执行命令:ping www.baidu.com,返回如下结果表示网络已通,若超时则表示网络未通,需要重新检查1-3步骤。

第5步:ifconfig查看已分配的IP(没有安装ifconfig,则需要根据提示先安装,若没有网络需要将网络设置通后再安装);

        ~2.安装xshell命令行工具(xshell是对虚拟机的映射,方便操作以及后面传输数据和文件)

①xshell7 下载地址:https://cdn.netsarang.net/de06d109/Xshell-7.0.0137p.exe

操作:①新建连接,如右图;②输入登录用户名;③输入密码

②注意:若连接失败

检查ssh服务是否正常:service ssh status 若没有看到相关信息,则在虚拟机安装openssh-server程序执行:sudo apt-get install openssh-server,然后重新检查ssh服务。

③传输文件的服务

可以sz rz命令,实现xshell与window传输和下载文件

安装服务:sudo apt-get install lrzsz

         ~3.java环境安装(因为前面说了Hadoop是基于java开发的,这里看过我前面java文章的可以掠过下载,直接用以前的)

由于Hadoop本身是使用Java编写的,因此,Hadoop的开发和运行都需要Java的支持,对于Hadoop 3.3.6而言,其要求使用JDK 1.8或者更新的版本。

①下载Java

https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

②通过xshell上传到Linux的~/workspace/software目录

③解压缩

第一步:解压缩到目录/usr/local

sudo tar -xvf jdk-21_linux-x64_bin.tar.gz -C  /usr/local/

第二步:切换目录:cd /usr/local/

第三步:重命名:sudo mv jdk-21.0.4 jdk21

第四步:设置环境变量:

编辑系统变量文件 sudo vim /etc/profile,在文档末尾添加下面语句(java8之后,不再用设置jre),保存退出

  1. export JAVA_HOME=/usr/local/jdk21
  2. export PATH=$PATH:$JAVA_HOME/bin

第五步:执行修改系统变量生效命令:source /etc/profile

④验证是否安装成功

执行名:java -version查看版本

        ~4.无密码登陆配置

master

master

slave1

slave2

①安装SSH服务

  1. 执行命令:sudo apt-get install openssh-server
  2. 启动命令: service ssh start
  3. 查看ssh服务:ps -ef | grep sshd
  4. 查看ssh运行状态:service ssh status

②设置无密码登录

  1. 执行密钥生成命令:ssh-keygen(只需要在master主机操作一次,下一步无需输入)
  2. 拷贝密钥到服务器:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected](包括自己所在的节点)
  3. 无密码登录:ssh [email protected].xx(注意这里@前后,是要登录结点的用户名和IP地址)
  4. 退出远程登录:ctrl+d

                ~5.Hadoop安装配置

①检查虚拟机的基本信息(3个结点)

表:3台虚拟机基本信息

结点

用户名(记住)

计算机名

映射表(IP根据各台虚拟机实际情况设置)

master

bm

master

IP 计算机名,如192.168.137.xx master

slave1

bm

slave1

IP 计算机名,如192.168.137.xx slave1

slave2

bm

slave2

IP 计算机名,如192.168.137.xx slave2

注1:修改计算机名:执行编辑命令,sudo vim /etc/hostname,自行修改命令

注2:修改映射表:执行编辑命令,sudo vim /etc/hosts,自行修改映射表

②Hadoop分布式结构规划

③下载Hadoop3.3.6版本

   在Windows里面下载hadoop-3.3.6.tar.gz,下载链接:https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz,下载完成后,通过xshell上传到3台虚拟机用户目录下的software文件夹(若没有则自行创建)。

④解压缩到/usr/local目录(3个结点)

执行命令:sudo tar -xvf hadoop-3.3.6.tar.gz -C /usr/local/

⑤配置环境变量(3个结点)

配置环境变量,执行命令编辑sudo vim /etc/profile,在文件末尾添加以下项,保存退出:

export HADOOP_HOME=/usr/local/hadoop-3.3.6

export PATH=${HADOOP_HOME}/sbin:${HADOOP_HOME}/bin:$PATH

⑥Hadoop分布式环境配置

Hadoop环境配置,通常会涉及以下5个文件修改,其基本作用如下表所示。

⑦修改hadoop-env.sh文件(3个结点)

修改hadoop-env.sh文件,执行命令编辑sudo vim /usr/local/hadoop3.3.6/etc/hadoop/hadoop-env.sh,在文件末尾添加以下2项,保存退出:

export JAVA_HOME=/usr/local/jdk21

export HADOOP_LOG_DIR=/home/bm/myworkspace/hadoop/logs

export HADOOP_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"

注意此处bm是虚拟机的用户名,myworkspace/hadoop/logs自行创建的目录。(mkdir)

⑧修改core-site.xml文件(3个结点)

<configuration>

        <property>

                <!-- 指定NameNode的地址 -->

                <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

        </property>

        <property>

         <!-- 指定hadoop数据的存储目录 -->

                <name>hadoop.tmp.dir</name>            <value>/home/bm/myworkspace/hadoop/tmp</value>

        </property>

</configuration>

注:master为主节点的计算机名,hadoop.tmp.dir指定Hadoop数据存储主目录。

⑨修改hdfs-site.xml文件(3个结点)

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

    <property>

                <name>dfs.namenode.http-address</name>

                <value>master:9870</value>

     </property>

      <property>

                <name>dfs.namenode.secondary.http-address</name>

                <value>slave1:9868</value>

      </property>

</configuration>

⑩修改yarn-site.xml文件(3个结点)

<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.ShuffHandler</value>

    </property>

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>master</value>

    </property>

    <property>

        <name>yarn.resourcemanager.address</name>

        <value>master:8032</value>

    </property>

    <property>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value>master:8030</value>

    </property>

    <property>

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>master:8031</value>

    </property>

</configuration>

11修改mapred-site.xml文件(3个结点)

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

    <property>

        <name>mapreduce.jobhistory.address</name>

        <value>master:10020</value>

    </property>

    <property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>master:19888</value>

    </property>

    <property>

        <name>yarn.app.mapreduce.am.env</name>

        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

    </property>

    <property>

        <name>mapreduce.map.env</name>

        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

    </property>

    <property>

        <name>mapreduce.reduce.env</name>

        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

    </property>

</configuration>

yarn.app.mapreduce.am.env/mapreduce.map.env/mapreduce.reduce.env用于指定分布式计算MapReduce任务的运行环境。

        ~6.修改workers

配置Hadoop从结点运行的服务器

        ~7.修改计算机名称和固定IP

修改计算机名称

编辑文件:sudo vim /etc/hostname

重新启动该虚拟机,让计算机名生效

修改固定IP(可选,若网路冲突,或者网络不可用问题时设置)

查看网络配置信息:ifconfig

修改配置文件:sudo vim  /etc/netplan/00-installer-config.yaml(文件名可能不同)

sudo netplan apply

        ~8.虚拟机克隆

克隆方式(建议方式):如下图按照引导操作,

完整克隆

注意:选择独立新创建的文件夹

                 ~9.最后一步,启动

初始化文件系统(主节点)

hdfs namenode -format(只需在主节点执行一次)

启动/关闭hadoop文件系统(主节点)

start-all.sh/stop-all.sh(只在主节点执行,务必正常关闭)

启动进程查看

jps

 搞定~~

配置有困难,可以私信我,或者评论区里留言,不遗余力帮忙!

-------------------------分割线-------------------------

今天记录了Hadoop的了解学习,安装配置,基本使用的话未来Linux的学习里会记录。

(如果可以的话,请点赞收藏关注我的频道,当然能在评论区留下你的宝贵意见是最好的!)

我是拌面酱  期待再次与你相遇#¥%……&*()

 

标签:拌面,--,虚拟机,sudo,Hadoop,hadoop,master,数据
From: https://blog.csdn.net/BanMianJiang/article/details/143858841

相关文章

  • 一文二十分钟搞懂云技术基础
    目录一、引言二、云架构介绍1.技术基础的必要性2.历史演变3.云计算的定义4.公有云与私有云5.共享责任模型三、云服务核心特点四、云分类云服务模型部署模型五、云架构云架构概述1.核心组件2.设计原则3.架构模式4.部署模型5.管理工具6.持续集成......
  • 清华姚班校友马腾宇,发布了他的首个多模态嵌入模型:「多模态检索」实现SOTA
    清华姚班校友马腾宇和他的团队,推出了自创业以来的首个多模态嵌入模型voyage-multimodal-3,而且发布即“SOTA”。据介绍,在对3个多模态检索任务(共20个数据集)进行评估时,voyage-multimodal-3比第二名平均高出了19.63%的检索准确率。这是为包含丰富视觉和文本的文档提供......
  • SpringBoot在线音乐系统的设计与实现8355m程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着数字化技术的快速发展,音乐产业正在经历深刻的变革。在线音乐系统以其便捷性、即时性和丰富性,成为音乐爱好者的首选。本项目......
  • SpringBoot招聘就业管理531ii--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、课题名称招聘就业管理系统设计与实现二、研究背景与意义随着就业市场的日益扩大和竞争的加剧,招聘就业管理成为企业和求职者共同关注的焦点。......
  • 【Stable Diffusion】文生图超详细参数使用技巧和方法推荐
    Ai出图最基本的就是文生图,拿写实类方向来说,可以生成很多逼真的Ai作品,足够让人惊艳了。2张图像都是用SD生成的,底模用的是麦橘大神新发布的V7写实模型,lora还搭配使用了麦橘大神发布的花田错stablediffusion整合包以及更多模型插件,可以扫描下方,免费获取今天我想来一期......
  • SpringBoot证券交易系统rx5y4--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着金融市场的快速发展,证券交易在经济活动中扮演着越来越重要的角色。传统的证券交易方式存在信息处理不及时、交易效率低下等问题,无......
  • WebGL 被视为前端开发天花板,那3D可视化和它相比呢
    一、WebGL:前端开发的强大利器WebGL是一种基于OpenGLES的JavaScriptAPI,它允许在网页浏览器中呈现交互式2D和3D图形,而无需安装额外的插件。其强大之处主要体现在以下几个方面:高性能图形渲染WebGL能够利用图形硬件加速,实现高效的图形渲染。这使得在网页上展示复杂......
  • 常用代码模板1——基础算法
    算法基础课相关代码模板活动链接——算法基础课快速排序算法模板——模板题luogu785.快速排序voidquick_sort(intq[],intl,intr){if(l>=r)return;inti=l-1,j=r+1,x=q[l+r>>1];while(i<j){doi++;wh......
  • 门店销售秘籍:精准推荐与顾客互动的艺术
    门店的成功秘诀,恒久在于“三分货品,七分销售”的智慧。销售过程中,有效展示产品并详细解说固然重要,但积极推荐,激发顾客的购买兴趣同样不可或缺。门店销售作为销售链的最终环节,其重要性不言而喻,产品的最终成交往往取决于这“临门一脚”。门店导购与销售人员的专业技能,直接关联到门店......
  • python自动化之selenium 自动化unittest框架
    自动化框架一、介绍框架1、unittest框架是python中自带的框架2、作用:管理和组织测试用例当我们写的用例越来越多,我们就要考虑用例的编写的规范和组织,以便于后期的维护3、常见的自动化框架:po框架、pytest框架、unittest框架(我们讲解)4、unitest框架自带标准的库:有如下a、T......