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

前言

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

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

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

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

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

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

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

文章目录

  • 前言
  • HDFS的安装部署
    • 集群规划
    • 什么是主机映射呢
    • 前置配置
      • 配置免密登录
      • 创建hadoop用户并配置免密登录
      • 配置JDK环境
      • 完成压缩包的解压
      • 完成配置文件的修改
        • 配置workers文件
        • 配置hadoop-env.sh文件
        • 配置core-site.xml文件
        • 配置hdfs-site.xml文件
        • 完成文件的创建
        • 分发配置文件
        • 配置环境变量
        • 授权为hadoop用户
        • 格式化整个文件系统
        • 查看HDFS Web UI
        • 赠语

          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文件

                      fs.defaultFS hdfs://node:8020   io.file.buffer.size 131072 

                    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文件

                         dfs.datanode.data.dir.perm 700    dfs.namenode.name.dir /data/nn    dfs.namenode.hosts node,node1,node2    dfs.blocksize 268435456    dfs.namenode.handler.count 100    dfs.datanode.data.dir /data/dn 

                      完成文件的创建

                      根据下述2个配置项:

                        dfs.namenode.name.dir /data/nn   dfs.datanode.data.dir /data/dn 
                      • 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文件系统的管理网页。

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

                        赠语

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

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

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