第1章概述
1.1编写目的
暂无
1.2业务背景
暂无
第2章组件介绍
2.1组件介绍与架构说明
Hadoop是一个开源的大数据分布式系统基础架构。充分利用集群的威力进行高速运算和存储,为用户提供了一个分布式文件系统HDFS及海量的数据提供计算引擎MapReduce。Hadoop是整个数据中台环境的底层基础组件。
2.2逻辑部署拓扑
hadoop为用户提供分布式数据存储功能,提供2种逻辑节点,分别是NameNode和DataNode。NameNode负责集群中与存储相关的调度,DataNode负责具体的存储任务。具体来说NameNode维护了整个文件系统的元数据信息, DataNode用来执行具体的存储任务。
2.3物理部署拓扑
nameNode部署在node1上
dataNode部署在node1、node2、node3上均部署
2.4依赖环境
硬件:Phytium ARM CPU,银河麒麟v10 内核版本4.19.90-17 arm64 桌面版
JDK依赖:JDK 1.8
组件依赖:无
2.5界面效果
2.5.1安装完成后的运行效果
2.5.2运行日志
第3章部署步骤
3.1环境准备
3.1.1安装计划
3台服务器安装计划如下:
节点 安装的服务
Node1 NameNode,SecondaryNameNode,DataNode, ResourceManager
Node2 DataNode, NodeManager
Node3 DataNode, NodeManager
3.1.2安装环境准备
集群中的每台服务器需关闭防火墙,配置hosts及免密登录,详细请参考JDK安装部署说明。
3.1.3安装包准备
将hadoop-3.3.1-aarch64.tar.gz文件上传至node1服务器的/opt/abd_env_soft目录,解压并重命名为hadoop
解压
tar -zxvf Hadoop-3.3.1-aarch64.tar.gz
重命名
mv hadoop-3.3.1/ hadoop
3.2安装配置
以下配置均在Node1上进行,配置完成后再拷贝至其他节点。
123.2.1配置环境变量
编辑/etc/profile文件,配置hadoop的环境变量
vi /etc/profile
export HADOOP_HOME=/opt/abd_env_soft/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
source /etc/profile
3.2.2验证环境变量
[root@node1 ~] hadoop version
Hadoop 3.3.1
Source code repository https://github.com/apache/hadoop.git -r a3b9c37a397ad4188041dd80621bdeefc46885f2
Compiled by ubuntu on 2021-06-15T10:51Z
Compiled with protoc 3.7.1
From source with checksum 88a4ddb2299aca054416d6b7f81ca55
This command was run using /opt/abd_env_soft/hadoop/share/hadoop/common/hadoop-common-3.3.1.jar
3.2.3配置hadoop环境脚本文件中的JAVA_HOME参数
进入hadoop安装目录下的etc/hadoop目录,分别在hadoop-env.sh、mapred-env.sh和yarn-env.sh中添加如下参数:
export JAVA_HOME=/opt/abd_env_soft/jdk
3.2.4配置core-site.xml文件(指定NameNode节点)
编辑${HADOOP_CONF_DIR}/core-site.xml文件,加入以下配置,同时在/opt/abd_env_soft/hadoop下创建tmp目录。
<!-- 配置hdfs地址,即指定NameNode的节点为node1 -->
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
<!-- 保存临时文件目录,需先在/opt/abd_env/soft/hadoop下创建tmp目录 -->
<name>hadoop.tmp.dir</name>
<value> /opt/abd_env_soft/hadoop/tmp</value>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property
3.2.5配置hdfs-site.xml文件
编辑${HADOOP_CONF_DIR}/hdfs-site.xml文件,加入以下配置,同时在/opt/abd_env_soft/hadoop下创建/dfs/name和/dfs/data目录。
<!-- NameNode的web管理地址,默认端口50070 -->
<property>
<name>dfs.namenode.http-address</name>
<value>node1:50070</value>
</property>
<!-- NameNode的数据目录,存放hdfs的元数据 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/abd_env_soft/hadoop/dfs/name</value>
</property>
<!-- DataNode的数据目录,存放hdfs的文件数据 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/abd_env_soft/hadoop/dfs/data</value>
</property>
<!-- 设置hdfs的文件备份数据为3 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 设置hdfs的文件存储的分片大小,默认为128M -->
<property>
<name>dfs.blocksize</name>
<value>128m</value>
</property>
3.2.6配置mapred-site.xml文件
编辑${HADOOP_CONF_DIR}/mapred-site.xml文件,加入以下配置:
<!-- 设置MapReduce的运行平台为yarn -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 设置MapReduce的jobhistory服务的管理地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
3.2.7配置yarn-site.xml文件
编辑${HADOOP_CONF_DIR}/yarn-site.xml文件,加入以下配置:
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
<description>配置外网只需要替换外网ip为真实ip,否则默认为 localhost:8088</description>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<description>每个节点可用内存,单位MB,默认8182MB</description>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。</description>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8031</value>
<name>yarn.application.classpath</name>
<value>
/opt/abd_env_soft/hadoop/etc/hadoop,
/opt/abd_env_soft/hadoop/share/hadoop/common/lib/*,
/opt/abd_env_soft/hadoop/share/hadoop/common/*,
/opt/abd_env_soft/hadoop/share/hadoop/hdfs,
/opt/abd_env_soft/hadoop/share/hadoop/hdfs/lib/*,
/opt/abd_env_soft/hadoop/share/hadoop/hdfs/*,
/opt/abd_env_soft/hadoop/share/hadoop/mapreduce/*,
/opt/abd_env_soft/hadoop/share/hadoop/yarn,
/opt/abd_env_soft/hadoop/share/hadoop/yarn/lib/*,
/opt/abd_env_soft/hadoop/share/hadoop/yarn/*
</value>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
3.2.8配置workers文件(指定DataNode节点)
编辑${HADOOP_CONF_DIR}/workers文件,加入以下内容:
node1
node2
node3
配置完后,hdfs会自动在配置的节点上启动DataNode进程。
3.2.9配置启动脚本,添加HDFS和Yarn权限
编辑 /opt/abd_env_soft/hadoop/sbin/start-dfs.sh文件,在第一行增加以下内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
编辑 /opt/abd_env_soft/hadoop/sbin/stop-dfs.sh文件,在第一行增加以下内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
编辑 /opt/abd_env_soft/hadoop/sbin/start-yarn.sh文件,在第一行增加以下内容:
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=root
YARN_NODEMANAGER_USER=root
编辑 /opt/abd_env_soft/hadoop/sbin/stop-yarn.sh文件,在第一行增加以下内容:
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=root
YARN_NODEMANAGER_USER=root
3.2.10将配置好的文件拷贝至其他节点
将Node1上的/opt/abd_env_soft/hadoop整个目录及/etc/profile文件拷贝至其他节点
scp -r /opt/abd_env_soft/Hadoop node2:/opt/abd_env_soft
scp /etc/profile node2:/etc/
scp -r /opt/abd_env_soft/Hadoop node3:/opt/abd_env_soft
scp /etc/profile node3:/etc/
拷贝完成后分别在所有节点上应用环境变量文件
source /etc/profile
3.3初始化
在NameNode(即node1)上初始化文件格式,执行命令:
/opt/abd_env_soft/hadoop/bin/hdfs namenode -format
修改目录权限
hadoop fs -chmod -R 777 /
3.4启动集群
在NameNode(即node1)上执行命令:
/opt/abd_env_soft/hadoop/sbin/start-all.sh
3.5验证是否启动成功
分别在3台节点上执行命令jps,查看启动的进程是否符合咱们的要求
node1上:
node2上:
node3上:
通过web管理查看
3.6新增DataNode时的配置步骤
(1)按照章节1.2的内容配置新增节点的环境
(2)在新节点上安装jdk,将NameNode(node1)上的/opt/abd_env_soft/jdk整个目录及/etc/profile拷贝至新节点。
(3)在NameNode(node1)上的/opt/abd_env_soft/hadoop/etc/Hadoop/worker文件里增加新增节点
(4)在新节点上安装hadoop,将NameNode(node1)上的/opt/abd_env_soft/hadoop整个目录及/etc/profile拷贝至新节点
(5)在NameNode(node1)上重启hadoop,按照第5章内容验收是否启动成功。
第4章常见操作
4.1启动命令
在node1上执行/opt/abd_env_soft/hadoop/sbin/start-all.sh
4.2关闭命令
在node1上执行/opt/abd_env_soft/hadoop/sbin/stop-all.sh
4.3日志查看命令
每台节点的/opt/abd_env_soft/Hadoop/logs目录下会产生相应的服务日志,可使用tail-f进行查看
4.4健康检查方法
node1、node2、node3,三台运行后,可以通过jps查看进程状态,或通过web界面检查运行情况,参考3.5章内容