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

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

  节点 NameNode DataNode SecondNameNode
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文件上添加内容:

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

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

source /etc/profile

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

java -version
javac

搭建Hadoop集群

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

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

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

vim /etc/profile.d/bigdata_env.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
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

<configuration>

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata1:9820</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>

    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>


</configuration>

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

<configuration>

    <property>
        <name>dfs.namenode.http-address</name>
        <value>bigdata1:9870</value>
    </property>

    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>bigdata3:9868</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

</configuration>

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

<configuration>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>bigdata2</value>
    </property>
    <property> 
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
 
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.log.server.url</name>
        <value>http://bigdata1:19888/jobhistory/logs</value>
    </property>
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
</configuration>

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

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>bigdata1:10020</value>
    </property>

    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>bigdata1:19888</value>
    </property>
</configuration>

配置 workers/slaves 文件

bigdata1
bigdata2
bigdata3

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

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

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

分发

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

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

#!/bin/bash
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
for host in bigdata1 bigdata2 bigdata3
do
  echo ====================  $host  ====================
  for file in $@
  do
    if [ -e $file ]
    then
      pdir=$(cd -P $(dirname $file); pwd)
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

给xsync添加可执行的权限

chmod 777 /usr/bin/xsync

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

xsync /opt/module/
xsync /etc/profile

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

hdfs namenode -format

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

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

相关推荐

  1. Hadoop完全分布

    2024-03-15 07:10:03       42 阅读
  2. hadoop完全分布式

    2024-03-15 07:10:03       47 阅读
  3. Hadoop 完全分布式 详细流程

    2024-03-15 07:10:03       62 阅读
  4. Linux环境Hadoop完全分布式集群

    2024-03-15 07:10:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 07:10:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 07:10:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 07:10:03       87 阅读
  4. Python语言-面向对象

    2024-03-15 07:10:03       96 阅读

热门阅读

  1. 区块链技术的应用场景和优势

    2024-03-15 07:10:03       39 阅读
  2. Hive中的CONCAT、CONCAT_WS与COLLECT_SET函数

    2024-03-15 07:10:03       40 阅读
  3. Web框架开发-Django的路由层(URLconf)

    2024-03-15 07:10:03       41 阅读
  4. C语言scandir函数获取文件夹内容

    2024-03-15 07:10:03       39 阅读
  5. 人工智能对社会的影响

    2024-03-15 07:10:03       45 阅读
  6. html5&css&js代码 017样式示例

    2024-03-15 07:10:03       39 阅读
  7. HTML5打开本地app应用的方法

    2024-03-15 07:10:03       43 阅读
  8. ARM 汇编指令:(四) 位运算指令

    2024-03-15 07:10:03       46 阅读
  9. SpringCloudGateway之统一鉴权篇

    2024-03-15 07:10:03       34 阅读
  10. GPT如何做角色扮演,prompt示例大放送

    2024-03-15 07:10:03       43 阅读
  11. clickhouse(配合bytebase)_docker搭建文档

    2024-03-15 07:10:03       45 阅读
  12. 24计算机考研调剂 | 太原科技大学【官方】

    2024-03-15 07:10:03       44 阅读
  13. 速盾cdn:cdn节点缓存内容不一致怎么办?

    2024-03-15 07:10:03       44 阅读