• Hadoop完全分布式的搭建


    目录

    前言

    搭建

    准备

    配置JAVA环境

    搭建Hadoop集群


    前言

    今天我们来学习Hadoop完全分布式的搭建,我们要搭建hadoop完全分布式要掌握哪些东西呢?

    首先需要掌握的就是Hadoop的基础知识,了解Hadoop的生态系统,包括Hadoop的核心组件(如HDFS、MapReduce、YARN等)以及其他相关组件(如HBase、Hive、Zookeeper等)。理解这些组件的功能和相互作用对于搭建和管理Hadoop集群至关重要。因为Hadoop通常在Linux操作系统上运行,因此需要对Linux有一定的了解,包括基本的命令行操作、系统管理和网络配置等。再者Hadoop是用Java编写的,因此需要对Java编程语言有一定的了解,包括Java编程基础、JDK的安装和配置等。还要了解如何规划和搭建Hadoop集群,包括选择合适的硬件和软件、配置网络、安装和配置Hadoop等。此外,还需要了解如何管理和维护Hadoop集群,包括监控集群状态、处理故障、优化性能等。熟悉Hadoop的配置文件(如core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml等),了解如何配置和优化Hadoop集群以满足不同的业务需求。熟悉Hadoop的配置文件(如core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml等),了解如何配置和优化Hadoop集群以满足不同的业务需求。了解如何保障Hadoop集群的安全性和可靠性,包括设置访问控制、数据加密、备份和恢复等。

    当我们大概了解了这些以后,就可以开始我们的搭建过程

    搭建

    准备

    首先我们的Hadoop完全分布式,是搭建在Linux系统上的,所以我们需要在Linux服务系统上准备三个节点,这里大家自行准备,我准备的是

    • bigdata1
    • bigdata2
    • bigdata3

    有了节点以后,我们还需要做一下集群规划

      节点NameNodeDataNodeSecondNameNode
    bigdata1        √        √
    bigdata2        √                √
    bigdata3        √

    上述表格就是我们的集群规划,采用1NameNode、3DataNode的方式去搭建我们的Hadoop分布式集群

    配置JAVA环境

    搭建Hadoop先配置支撑它的语言,要不则会寸步难行,这里选择的是jdk1.8.0版本

    首先先把压缩包拉取到bigdata1节点的/opt/software目录下(没有的自行创建)

    然后运行命令解压压缩包到/opt/module目录下(没有的自行创建)

    tar -zxvf /opt/software/jdk-8u212-linux-x64.tar .gz -C /opt/module

    首先 tar是Linux 系统上的一个用于处理归档文件的工具,-zxvf分别代表

    • z: 使用 gzip 进行解压。这告诉 tar 命令,归档文件是用 gzip 压缩的,所以需要先进行 gzip 解压。
    • x: 解压。这告诉 tar 命令要解压归档文件。
    • v: 详细模式(verbose)。这会在解压过程中显示正在解压的文件名,使得用户可以看到解压的进度。
    • f: 文件。这告诉 tar 命令后面会跟一个文件名,而不是从标准输入或输出中读取/写入。

    解压缩完文件以后,还要配置JAVA环境才可以正常使用,所有环境我们都配在/etc/profile.d/目录下的my_env.sh文件下,这里不推荐在/etc/目录下的profile文件,因为一旦profile文件受损,节点就会宕机,所以建议配置在自建文件my_env.sh上

    vim /etc/profile.d/bigdata_env.sh

    在my_env.sh文件上添加内容:

    1. #JAVA_HOME
    2. export JAVA_HOME=/opt/module/jdk1.8.0_212
    3. export PATH=$PATH:$JAVA_HOME/bin

    保存退出以后,运行命令,刷新环境变量使其生效

    source /etc/profile

    运行命令,验证是否配置成功,如果没有报错,则为成功

    1. java -version
    2. javac

    搭建Hadoop集群

    与配置JAVA环境一样,我们需要先解压压缩包

    tar -zxvf  hadoop-3.1.3.tar.gz -C /opt/module/

    然后我们配置hadoop的运行环境

    vim /etc/profile.d/bigdata_env.sh
    1. #HADOOP_HOME
    2. export HADOOP_HOME=/opt/module/hadoop-3.1.3
    3. export PATH=$PATH:$HADOOP_HOME/bin
    4. export PATH=$PATH:$HADOOP_HOME/sbin

    然后使用source刷新环境变量文件,运行命令验证是否成功

    hadoop version

    接下来就是配置hadoop分布式最重要的部分了,配置文件

    cd /opt/module/hadoop-3.1.3/etc/hadoop/

    Hadoop-env.sh 文件

    hadoop-env.sh 是 Hadoop 分布式文件系统 (HDFS) 和其他 Hadoop 组件的一个重要配置文件,这个文件主要用于设置 Hadoop 运行环境的一些重要参数,比如 Java 运行环境(JRE)的路径、Hadoop 的 PID(进程 ID)文件存放位置等。

    然后修改Hadoop-env.sh文件,添加内容

    export JAVA_HOME=/opt/module/jdk1.8.0_212

    核心配置文件 —— core-site.xml

    1. fs.defaultFS
    2. hdfs://bigdata1:9820
    3. hadoop.tmp.dir
    4. /opt/module/hadoop-3.1.3/data
    5. hadoop.http.staticuser.user
    6. root
    7. hadoop.proxyuser.root.hosts
    8. *
    9. hadoop.proxyuser.root.groups
    10. *

    HDFS 配置文件 —— hdfs-site.xml

    1. dfs.namenode.http-address
    2. bigdata1:9870
    3. dfs.namenode.secondary.http-address
    4. bigdata3:9868
    5. dfs.replication
    6. 2

    YARN 配置文件 —— yarn-site.xml

    1. yarn.nodemanager.aux-services
    2. mapreduce_shuffle
    3. yarn.resourcemanager.hostname
    4. bigdata2
    5. yarn.nodemanager.env-whitelist
    6. JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    7. yarn.nodemanager.pmem-check-enabled
    8. false
    9. yarn.nodemanager.vmem-check-enabled
    10. false
    11. yarn.log-aggregation-enable
    12. true
    13. yarn.log.server.url
    14. http://bigdata1:19888/jobhistory/logs
    15. yarn.log-aggregation.retain-seconds
    16. 604800

    MapReduce 配置文件 —— mapred-site.xml

    1. mapreduce.framework.name
    2. yarn
    3. mapreduce.jobhistory.address
    4. bigdata1:10020
    5. mapreduce.jobhistory.webapp.address
    6. bigdata1:19888

    配置 workers/slaves 文件

    1. bigdata1
    2. bigdata2
    3. bigdata3

    在/etc/profile.d/bigdata_env.sh 文件末尾田间

    1. export HDFS_NAMENODE_USER=root
    2. export HDFS_DATANODE_USER=root
    3. export HDFS_SECONDARYNAMENODE_USER=root
    4. export YARN_RESOURCEMANAGER_USER=root
    5. export YARN_NODEMANAGER_USER=root

    不添加会报错

    启动hadoop集群

    [root@bigdata1 hadoop]# start-all.sh 

    报错内容如下:

    1. Starting namenodes on [bigdata1]
    2. ERROR: Attempting to operate on hdfs namenode as root
    3. ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
    4. Starting datanodes
    5. ERROR: Attempting to operate on hdfs datanode as root
    6. ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
    7. Starting secondary namenodes [bigdata1]
    8. ERROR: Attempting to operate on hdfs secondarynamenode as root
    9. ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
    10. Starting resourcemanager
    11. ERROR: Attempting to operate on yarn resourcemanager as root
    12. ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
    13. Starting nodemanagers
    14. ERROR: Attempting to operate on yarn nodemanager as root
    15. ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.

    这是保证在HDFS上可以畅通无阻,生产活动的时候不建议这样,因为root用户是权限最大的用户

    分发

    配置分发工具:(参考尚硅谷)

    进入/usr/bin目录下,创建文件xsync,

    1. #!/bin/bash
    2. if [ $# -lt 1 ]
    3. then
    4. echo Not Enough Arguement!
    5. exit;
    6. fi
    7. for host in bigdata1 bigdata2 bigdata3
    8. do
    9. echo ==================== $host ====================
    10. for file in $@
    11. do
    12. if [ -e $file ]
    13. then
    14. pdir=$(cd -P $(dirname $file); pwd)
    15. fname=$(basename $file)
    16. ssh $host "mkdir -p $pdir"
    17. rsync -av $pdir/$fname $host:$pdir
    18. else
    19. echo $file does not exists!
    20. fi
    21. done
    22. done

    给xsync添加可执行的权限

    chmod 777 /usr/bin/xsync
    

    然后直接分发想分发的文件就可以了

    1. xsync /opt/module/
    2. xsync /etc/profile

    第一启动hadoop集群需要先格式化,在bigdata1下运行

    hdfs namenode -format
    

    然后再bigdata1中,运行start-all.sh;再进入bigdata2,运行start-yarn.sh

    和集群规划如果一致那么说明配置成功

  • 相关阅读:
    企业微信机器人还能这么玩?
    linux apt-get安装Jenkins
    【STM32】IIC的初步使用
    MatrixOne Logtail 设计解析
    c语言中常用的操作符,字符串的结束字符\0
    最新CleanMyMac X4.12.1中文版Mac系统优化清理工具
    HarmonyOS 实现底部导航栏
    Linux系统firewall开放端口
    ChatGPT简介及基本概念
    word添加gif
  • 原文地址:https://blog.csdn.net/2301_78038072/article/details/136498258