11

Hadoop集群搭建 - 女友在高考

 2 years ago
source link: https://www.cnblogs.com/javammc/p/16545146.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Apache Hadoop 分布式集群搭建

基础环境准备

三台 linux 节点,操作系统(Centos7)

  1. 关闭防火墙
 systemctl stop firewalld

开机时禁用防火墙

 systemctl disable firewalld
  1. 修改主机名

vi /etc/hosts

192.168.56.103 linux2
192.168.56.102 linux3
192.168.56.104 linux4
  1. 配置免密登录

在~目录下执行

#生成密钥
ssh-keygen -t rsa

cd /root/.ssh/
cp id_rsa.pub authorized_keys
//将每台机器的密钥拷到其他三台上,如在第一台上执行
ssh-copy-id -i linux3
ssh-copy-id -i linux4
  1. 每台机器安装 java 环境

安装 Hadoop

框架 linux2 linux3 linux4
HDFS NameNode、DataNode DataNode SecondaryNameNode、DataNode
MapReduce 无区分 无区分 无区分
YARN NodeManager NodeManager NodeManager、ResourceManager
  1. 下载 hadoop

下载页面:

https://archive.apache.org/dist/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

下载并解压

  1. bin 目录:对 Hadoop 进行操作的相关命令,如 hadoop,hdfs 等
  2. etc 目录:Hadoop 的配置文件目录,入 hdfs-site.xml,core-site.xml 等
  3. lib 目录:Hadoop 本地库(解压缩的依赖)
  4. sbin 目录:存放的是 Hadoop 集群启动停止相关脚本,命令
  5. share 目录:Hadoop 的一些 jar,官方案例 jar,文档等
  1. 配置环境变量

添加 Hadoop 到环境变量 vim /etc/profile

export HADOOP_HOME=/opt/lagou/servers/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

使环境变量生效

source /etc/profile

测试是否配置成功

hadoop version

Hadoop 集群配置 = HDFS 集群配置 + MapReduce 集群配置 + Yarn 集群配置

配置总览:

  1. HDFS 集群配置
  • 将 JDK 路径明确配置给 HDFS(修改 hadoop-env.sh)
  • 指定 NameNode 节点以及数据存储目录(修改 core-site.xml)
  • 指定 SecondaryNameNode 节点(修改 hdfs-site.xml)
  • 指定 DataNode 从节点(修改 etc/hadoop/slaves 文件,每个节点配置信息占一行)
  1. MapReduce 集群配置
  • 将 JDK 路径明确配置给 MapReduce(修改 mapred-env.sh)
  • 指定 MapReduce 计算框架运行 Yarn 资源调度框架(修改 mapred-site.xml)
  1. Yarn 集群配置
  • 将 JDK 路径明确配置给 Yarn(修改 yarn-env.sh)
  • 指定 ResourceManager 老大节点所在计算机节点(修改 yarn-site.xml)
  • 指定 NodeManager 节点(会通过 slaves 文件内容确定)

一、HDFS 集群配置配置

配置文件在:/opt/lagou/servers/hadoop-2.9.2/etc/hadoop目录下

  1. 配置 hadoop-env.sh
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_151
  1. 指定 NameNode 节点以及数据存储目录(修改 core-site.xml)
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
 <value>hdfs://linux2:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/lagou/servers/hadoop-2.9.2/data/tmp</value>
</property>
</configuration>

  1. 指定 secondarynamenode 节点(修改 hdfs-site.xml)
<configuration>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>linux4:50090</value>
</property>
<!--副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>

  1. 指定 datanode 从节点(vi slaves 文件,每个节点配置信息占一行)
linux2
linux3
linux4

注意不要有多余的换行和空格

二、MapReduce 集群配置

  1. 指定 MapReduce 使用的 jdk 路径(修改 mapred-env.sh)
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_151
  1. 指定 MapReduce 计算框架运行 Yarn 资源调度框架(修改 mapred-site.xml)
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

三、Yarn 集群配置

  1. 指定 JDK 路径(vi yarn-env.sh)
export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_151
  1. 指定 ResourceMnager 的 master 节点信息(vi yarn-site.xml)
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux4</value>
</property>
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
  1. 指定 NodeManager 节点(vi slaves 文件,同 HDFS 配置的第四点,上面配置过,这里就不用配置了)
linux2
linux3
linux4

注意:Hadoop 安装目录所属用户和所属用户组信息,默认是 501dialout,而我们操作 Hadoop 集群的用户使用的是虚拟机的 root 用户。

解决方法:

chown -R root:root /opt/lagou/servers/hadoop-2.9.2

备注:我们通过命令 scp 或 rsync 将一台机器上配置好的文件目录复制到其他机器上去。

 scp -r jdk1.8.0_151/ linux3:/opt/lagou/servers/

注意:如果集群是第一次启动,需要在Namenode 所在节点格式化 NameNode,非第一次不用执行格式化 Namenode 操作!!

hadoop namenode -format

格式化成功后有如下标识:

1178991-20220731163848916-2005356483.png

一、单节点启动方式

HDFS 启动

  1. 在 linux2(NameNode 节点)上启动 NameNode
 hadoop-daemon.sh start namenode
  1. 在 linux2、linux3、linux4 上启动 DataNode
hadoop-daemon.sh start datanode
  1. 查看启动情况

    192.168.56.103:50070

从 Live Node 可以看出启动成功的节点数量

1178991-20220731165010622-629448119.png

也可以访问 HDFS 网页:

http://192.168.56.103:50070/explorer.html

Yarn 启动

  1. 在 linux4(启动 resourcemanager 节点)上启动 resourcemanager
yarn-daemon.sh start resourcemanager
  1. 在 linux2、linux3、linux4 上启动 nodemanager
yarn-daemon.sh start nodemanager

停止命令

就是将 start 换成 stop

hadoop-daemon.sh  stop namenode/datanode/secondarynamenode

yarn-daemon.sh  stop resourcemanager / nodemanager

二、集群群启方式

  1. 在 linux2(NameNode 节点)上运行
sbin/start-dfs.sh
  1. 在 linux4(resourcemanager)上运行
sbin/start-yarn.sh

停止命令:

stop-dfs.sh
stop-yarn.sh
  1. HDFS 分布式存储初体验

从我们 linux 本地传一个文件到 hdfs 上,并从 hdfs 上下载

#在hdfs上创建文件夹
hdfs dfs -mkdir -p /test/input
#上传linxu文件到Hdfs
hdfs dfs -put /root/test.txt /test/input
#从Hdfs下载文件到linux本地
hdfs dfs -get /test/input/test.txt

上传成功后也可以从管理页面上查看:

1178991-20220731173040307-1234760498.png
  1. MapReduce 分布式计算初体验

1)在 HDFS 文件系统根目录下面创建一个 wcinput 文件夹

hdfs dfs -mkdir -p /wcinput

2)本地编辑一个文件上传到 wcinput 文件夹下

文件内容:

hadoop mapreduce yarn
hdfs hadoop mapreduce
mapreduce yarn lagou
lagou
lagou

hdfs dfs -put word.txt /wcinput

3)运行 hadoop 提供的 mapreduce 示例程序测试

示例程序路径: cd hadoop-2.9.2/share/hadoop/mapreduce

hadoop jar ./hadoop-mapreduce-examples-2.9.2.jar wordcount /wcinput /wcoutput

注意:wordcount 是示例程序提供的功能,wcinput 是我们放置文件的目录,wcoutput 由程序自动创建

4) 查看运行结果

hdfs dfs -cat /wcoutput/part-r-00000

1178991-20220731214927512-1993940101.png

配置历史服务器

在 Yarn 中运行的任务产生的日志数据不能查看,为了查看程序的历史运行情况,需要配置一下历史日志服务器。

  1. 配置 mapred-site.xml
<!-- 历史服务器端地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>linux121:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>linux121:19888</value>
</property>
  1. 配置 yarn-site.xml
<!-- 日志聚集功能使能 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>
  1. 启动历史服务
mr-jobhistory-daemon.sh start historyserver
  1. 查看效果

    http://192.168.56.103:19888/jobhistory

遇到的问题

启动后 liveNode 只有 2 个节点。

原因:因为这两个节点相同的 datanodeUuid 导致的。

datanodeUuid 位置:file://${hadoop.tmp.dir}/dfs/data/current/VERSION

cat /opt/lagou/servers/hadoop-2.9.2/data/tmp/dfs/data/current/VERSION

如果是一致的修改一下,然后重新启动即可。

__EOF__


Recommend

  • 36

    希望文章能帮助更多的人在搭建集群时,节省更多的时间,将时间花在更有意思的地方,帮助大家能尽早开始体验hadoop的各种功能。

  • 58

    hadoop集群搭建3台机器

  • 7
    • blog.xpgreat.com 3 years ago
    • Cache

    搭建真分布式Hadoop集群指南

    搭建一个Hadoop环境是学习大数据技术的第一步,这个环境可以是单机的,也可以是伪集群的,但最贴近实际生产环境的还是真集群的版本。本文提供一个基于AWS搭建Hadoop的简要指南,基于AWS EC2 Ubuntu 20。如果你也用的是AWS的免费套餐,几个注意的地方: ...

  • 6

    Elasticsearch学习系列二(基础操作) 本文将分为3块讲...

  • 4

    1. 准备工作: 前提:需要电脑安装VM,且VM上安装一个Linux系统 注意:本人是在学习完尚学堂视频后,结合自己的理解,在这里做的总结。学习的视频是:

  • 4

    Query文档搜索机制剖析 1. query then fetch(默认搜索方式) 搜索步骤如下: 发送查询到每个shard 找到所有匹配的文档,并使用本地的Term/Document Frequery信息进行打分

  • 5
    • www.cnblogs.com 2 years ago
    • Cache

    MongoDB基础入门 - 女友在高考

    MongoDB简介 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据...

  • 2

    MongoDB慢查询 慢查询分析 开启内置的慢查询分析器 db.setProfilingLevel(n,m),n的取值可选0,1,2 0:表示不记录 1:表示记录慢速操作,如果值为1...

  • 9

    Hadoop集群搭建 三台虚拟机:master01,node1,node2 1.date命令查看三台虚拟机时间是否一致 2.不一致时间同步:ntpdate ntp.aliyun.com cp /usr/share/z...

  • 8
    • www.cnblogs.com 2 years ago
    • Cache

    Flink集群部署 - 女友在高考

    集群 standalone 安装部署 下载安装包 下载页面:https://archive.apache.org/dist/flink/flink-1.7.2/ 我...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK