大数据从入门到精通(超详细版)之HDFS安装部署 , 跟着部署 , 真的有手就行 !

前言

嗨,各位小伙伴,恭喜大家学习到这里,不知道关于大数据前面的知识遗忘程度怎么样了,又或者是对大数据后面的知识是否感兴趣,本文是《大数据从入门到精通(超详细版)》的一部分,小伙伴们如果对此感谢兴趣的话,推荐大家按照大数据学习路径开始学习哦。

以下就是完整的学习路径哦。

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

大数据从入门到精通文章体系!!!!!!!!!!!!!!

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

推荐大家认真学习哦!!!

前面我们已经介绍了HDFS的入门知识与原理,对HDFS的使用场景已经有了一个初步的认识,现在我们开始动手实操HDFS的安装吧,HDFS安装好了,对后续学习大数据的其他组件也起到一个铺垫作用。

HDFS的安装部署

相信大家看到安装部署就会产生恐惧的心理,因为安装部署往往伴随着一堆环境问题,但是大家不要害怕,今天教大家完美完成部署安装。

在这里插入图片描述

下面是部署安装需要使用到的软件的百度网盘链接。 😊😊😊

Hadoop软件百度网盘资源

软件下载完成后,我们就正式开始安装部署了。

在这里插入图片描述

集群规划

凡事有个规划,现在我们先规划下集群的节点,任务分配,内存情况等等。

注意:

  • 我们需要在虚拟机的hosts文件量里面添加主机映射。主机映射我们下面会介绍一下,以防小伙伴忘记这个概念了。
vim /etc/hosts

#添加的文件内容
xxx.xxx.xxx.130 node
xxx.xxx.xxx.131 node1
xxx.xxx.xxx.132 node2
  • 对于Node节点,就是**NameNode所在的节点,需要运行多个组件,要占用的内存较高,我们需要增大NameNode所在节点的内存。**

在这里插入图片描述

什么是主机映射呢

在计算机网络中,hosts文件是一个文本文件,用于将主机名映射到相应的IP地址。它位于操作系统中的特定位置(通常是C:\Windows\System32\drivers\etc\hosts或/etc/hosts),并被用作域名解析的本地数据库。

当您在浏览器或其他应用程序中输入一个URL或主机名时,系统首先会检查hosts文件是否包含对该主机名的映射。如果找到匹配项,系统会使用hosts文件中指定的IP地址来建立与目标主机的连接,而不是通过DNS(域名系统)查询来获取IP地址。

Hosts文件的映射规则非常简单:每行包含一个IP地址和一个或多个对应的主机名,之间用空格或制表符分隔。例如:

127.0.0.1       localhost
192.168.0.1     example.com

在这个例子中,第一行将IP地址127.0.0.1映射到主机名localhost。这是一个特殊的IP地址,通常指代本地主机。第二行将IP地址192.168.0.1映射到主机名example.com

使用hosts文件的一个常见应用是在开发过程中模拟特定的域名或测试环境,以便直接访问开发机器或测试服务器,而无需修改公共的DNS配置。

需要注意的是,hosts文件中的信息优先级较高,这意味着如果hosts文件中存在与要访问的主机名相匹配的映射规则,系统将直接使用该映射而忽略DNS查询。因此,在修改hosts文件时应谨慎,确保正确性和合理性。

总结起来,hosts文件提供了一种简单但有效的方式,将主机名映射到IP地址,用于本地域名解析,绕过DNS查询。

接下来就开始

前置配置

前置配置是非常重要的一步,完成了此步,我们就能为HDFS集群部署节省大量的时间。

配置免密登录

后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆

  1. 在每一台机器都执行:ssh-keygen -t rsa -b 4096,一路回车到底即可

  2. 在每一台机器都执行:

    ssh-copy-id node
    ssh-copy-id node1
    ssh-copy-id node2
    
  3. 执行完毕后,node、node1、node2之间将完成root用户之间的免密互通

    通过这种方式可完成连通测试

    ssh node
    ssh node1
    ssh node2
    

创建hadoop用户并配置免密登录

后续大数据的软件,将不会以root用户启动(确保安全,养成良好的习惯)

我们为大数据的软件创建一个单独的用户hadoop,并为三台服务器同样配置hadoop用户的免密互通

  1. 在每一台机器执行:useradd hadoop,创建hadoop用户

  2. 在每一台机器执行:passwd hadoop,设置hadoop用户密码为123456

  3. 在每一台机器均切换到hadoop用户:su - hadoop,并执行 ssh-keygen -t rsa -b 4096,创建ssh密钥

  4. 在每一台机器均执行

    ssh-copy-id node
    ssh-copy-id node1
    ssh-copy-id node2
    

配置JDK环境

  1. 创建文件夹,用来部署JDK,将JDK和Tomcat都安装部署到:/export/server 内

    mkdir -p /export/server
    
  2. 解压缩JDK安装文件

    tar -zxvf jdk-8u351-linux-x64.tar.gz -C /export/server
    
  3. 配置JDK的软链接

    ln -s /export/server/jdk1.8.0_351 /export/server/jdk
    
  4. 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件夹加入PATH环境变量中

    #编辑/etc/profile文件
    export JAVA_HOME=/export/server/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    
  5. 生效环境变量

    source /etc/profile
    
  6. 配置java执行程序的软链接

    #删除系统自带的java程序
    rm -f /usr/bin/java
    #软链接我们自己安装的java程序
    ln -s /export/server/jdk/bin/java /usr/bin/java
    
  7. 执行验证

    java -version
    javac -version
    

正常显示的话就执行完成啦!!!

完成压缩包的解压

  1. 上传Hadoop安装包到node节点中

  2. sh解压缩安装包到/export/server/中

    tar -zxvf hadoop-3.3.4.tar.gz -C /export/server
    
  3. 构建软链接

    cd /export/server
    ln -s /export/server/hadoop-3.3.4 hadoop
    

    在这里插入图片描述

这时候我们已经可以看到Hadoop文件的内部结构了。

各个文件夹含义如下:

  • bin,存放Hadoop的各类程序(命令)
  • etc,存放Hadoop的配置文件
  • include,C语言的一些头文件
  • lib,存放Linux系统的动态链接库(.so文件)
  • libexec,存放配置Hadoop系统的脚本文件(.sh和.cmd)
  • licenses-binary,存放许可证文件
  • sbin,管理员程序(super bin)
  • share,存放二进制源码(Java jar包)

完成配置文件的修改

配置文件可谓是重中之重啊,基本上完成部署安装都是依靠我们配置文件的配置是否正确

配置HDFS集群,我们主要涉及到如下文件的修改:

  • workers:配置从节点(DataNode)有哪些h
  • adoop-env.sh:配置Hadoop的相关环境变量
  • core-site.xml:Hadoop核心配置文件
  • hdfs-site.xml:HDFS核心配置文件

这些文件均存在与hadoop/etc/hadoop文件夹中。

配置workers文件

进入配置文件目录

cd etc/hadoop

编辑workers文件

vim workers

填入如下内容,表明集群记录了三个从节点(DataNode)

node
node2
node3

配置hadoop-env.sh文件

# 填入如下内容
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoopsh
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
  • JAVA_HOME,指明JDK环境的位置在哪
  • HADOOP_HOME,指明Hadoop安装位置
  • HADOOP_CONF_DIR,指明Hadoop配置文件目录位置
  • HADOOP_LOG_DIR,指明Hadoop运行日志目录位置通过记录这些环境变量, 来指明上述运行时的重要信息

配置core-site.xml文件

<!--在文件内部填入如下内容-->
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node:8020</value>
  </property>

  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
</configuration>

key:fs.defaultFS

  • 含义:HDFS文件系统的网络通讯路径

  • 值:hdfs://node:8020

  • 协议为hdfs://
    
    namenode为node
    
    namenode通讯端口为8020
    
  • key:io.file.buffer.size

  • 含义:io操作文件缓冲区大小

  • 值:131072 bit

hdfs://node:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)表明DataNode将和node的8020端口通讯,node是NameNode所在机器,此配置固定了node必须启动NameNode进程

配置hdfs-site.xml文件

<!--# 在文件内部填入如下内容 -->
<configuration>
 <!-- 
 dfs.datanode.data.dir.perm 
 hdfs文件系统,默认创建的文件权限设置
 值:700,即:rwx------
-->
  <property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
  </property>
 <!-- 
 dfs.namenode.name.dir
 NameNode元数据的存储位置
 值:/data/nn,在node1节点的/data/nn目录下
-->    
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>
  </property>
  <!-- 
 dfs.namenode.hosts
 NameNode允许哪几个节点的DataNode连接(即允许加入集群)
 值:node、node2、node3,这三台服务器被授权
-->   
  <property>
    <name>dfs.namenode.hosts</name>
    <value>node,node1,node2</value>
  </property>
  <!-- 
key:dfs.blocksize
含义:hdfs默认块大小
值:268435456(256MB)
-->  
<property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
  </property>
   <!-- 
key:dfs.namenode.handler.count
含义:namenode处理的并发线程数
值:100,以100个并行度处理文件系统的管理任务
-->  
  <property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
  </property>
    <!-- 
key:dfs.datanode.data.dir
含义:从节点DataNode的数据存储目录
值:/data/dn,即数据存放在node、node2、node3,三台机器的/data/dn内
-->  
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>
</configuration>

完成文件的创建

根据下述2个配置项:

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>

  • namenode数据存放node的/data/nn
  • datanode数据存放node、node2、node3的/data/dn

在node节点:

mkdir -p /data/nn
mkdir /data/dn

在node1和node2节点:

mkdir -p /data/dn

分发配置文件

以上的操作,我们都是在节点完成的,我们还需要配置其他节点的配置文件,但是此时为了避免浪费时间编写,我们需要使用scp命令将这些文件分发过去。

#在node执行如下命令

cd /export/server

scp -r hadoop-3.3.4 node1:`pwd`/

scp -r hadoop-3.3.4 node2:`pwd`/

配置环境变量

为了方便我们操作Hadoop,可以将Hadoop的一些脚本、程序配置到PATH中,方便后续使用。

在这里插入图片描述

在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,现在来配置一下环境变量

vim /etc/profile

# 在/etc/profile文件底部追加如下内容
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在node1和node2配置同样的环境变量

授权为hadoop用户

hadoop部署的准备工作基本完成

为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务

所以,现在需要对文件权限进行授权。

ps:请确保已经提前创建好了hadoop用户(前置准备章节中有讲述),并配置好了hadoop用户之间的免密登录

以root身份,在node1、node2、node3三台服务器上均执行如下命令:

# 以root身份,在三台服务器上均执行
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export

格式化整个文件系统

前期准备全部完成,现在对整个文件系统执行初始化,这是十分关键的一步,没有这一步也会导致整个集群的启动出现异常

格式化namenode

# 确保以hadoop用户执行
su - hadoop
# 格式化namenode
hadoop namenode -format

启动

# 一键启动hdfs集群
start-dfs.sh
# 一键关闭hdfs集群
stop-dfs.sh

# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
/export/server/hadoop/sbin/start-dfs.sh
/export/server/hadoop/sbin/stop-dfs.sh

查看HDFS Web UI

启动完成后,可以在浏览器打开:http://node:9870,即可查看到hdfs文件系统的管理网页。

在这里插入图片描述

在这里插入图片描述

安装部署已经完成了,建议小伙伴们打一个虚拟机快照哦,以给我们辛苦的成功留一个备份哈。

赠语

恭喜小伙伴完成本篇文章的学习,相信文章的内容您已经掌握得十分清楚了,如果您对大数据的知识十分好奇,请接下来跟着学习路径完成大数据的学习哦,相信您定能学有所成的~~~

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

大数据从入门到精通文章体系!!!!!!!!!!!!!!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
大数据Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。想要从入门到精通大数据Hadoop,需要以下几个步骤。 首先,了解Hadoop的基本概念和架构。HadoopHadoop分布式文件系统(HDFS)和Hadoop分布式计算框架(MapReduce)组成。HDFS用于存储大规模数据集,而MapReduce用于分布式计算。了解这些基本概念对于理解Hadoop的运方式至关重要。 其次,学习Hadoop安装和配置。Hadoop安装可以通过官方网站提供的二进制文件进,同时需要配置相关环境变量和属性文件。熟悉Hadoop的配置能够更好地适应不同的需求和环境。 第三,学习Hadoop的编程模型和API。Hadoop使用Java编程语言来实现分布式计算任务。了解Hadoop编程模型和API可以帮助我们编写MapReduce程序,实现数据的分布式处理和并计算。 第四,了解Hadoop生态系统中的其他组件。Hadoop生态系统包括HBase、Hive、Pig、Spark等多个组件,它们可以与Hadoop一起使用,提供更强大的数据处理和分析能力。了解这些组件的基本概念和用法,能够更好地解决实际的数据处理问题。 最后,通过实践项目来提升技能。只有通过实践,才能真正掌握Hadoop的使用和应用。可以通过解决实际的数据问题,运和调优MapReduce程序,深入理解Hadoop的工作原理和性能优化。 总结起来,要想从入门到精通大数据Hadoop,需要了解基本概念和架构,学习安装配置,掌握编程模型和API,了解Hadoop生态系统中的其他组件,并通过实践项目来提升技能。这些步骤将帮助我们更好地理解和运用Hadoop,实现大数据的存储和处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木 木 水.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值