您现在的位置是:首页 >技术交流 >hadoop 3.x分布式网站首页技术交流

hadoop 3.x分布式

@天道酬勤@ 2024-06-16 18:01:02
简介hadoop 3.x分布式

Hadoop 完全分布式部署

1、组件版本

组件名称版本
jdk1.8
hadoop3.1.3
mysql5.7.25

2、基础环境

  1. firewalld
  2. SSH
  3. NTP
  4. JDK
  5. MySQL

3、hadoop 完全分布式部署

3.1、解压并重命名

[root@master ~]#

tar -xzvf /chinaskills/hadoop-3.1.3.tar.gz -C /usr/local/src/
mv /usr/local/src/hadoop-3.1.3 /usr/local/src/hadoop

3.2、配置环境变量并加载

[root@master ~]#

 vim /root/.bash_profile

配置内容:

export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

加载环境变量

source /root/.bash_profile

3.3、配置hadoop-env.sh

[root@master ~]#

vim /usr/local/src/hadoop/etc/hadoop/hadoop-env.sh

配置内容:

export JAVA_HOME=/usr/local/src/java

3.4、配置core-site.xml

[root@master ~]#

vim /usr/local/src/hadoop/etc/hadoop/core-site.xml

配置内容:

<property>
  <!--namenode的URI-->
  <name>fs.defaultFS</name>
  <value>hdfs://master:8020</value>
</property>
<property>
  <!--hdfs临时文件地址-->
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/src/hadoop/dfs/tmp/hadoop-root</value>
</property>
<property>
  <!--SequenceFiles 中使用的读/写缓冲区的大小-->
  <name>io.file.buffer.size</name>
  <value>131072</value>
</property>
<property>
  <!--配置允许访问的主机-->
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <!--配置允许访问的组-->
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>
<property>
  <!--配置允许访问的用户-->
  <name>hadoop.proxyuser.root.users</name>
  <value>*</value>
</property>

3.5、配置hdfs-site.xml

[root@master ~]#

vim /usr/local/src/hadoop/etc/hadoop/hdfs-site.xml

配置内容:

<property>
  <!--NameNode 持久存储命名空间和事务日志的本地文件系统上的路径。-->
  <name>dfs.namenode.name.dir</name>
  <value>/usr/local/src/hadoop/dfs/name</value>
</property>
<property>
  <!--用于大型文件系统的 HDFS 块大小为 256MB-->
  <name>dfs.blocksize</name>
  <value>268435456</value>
</property>
<property>
  <!--设置NameNode 服务器线程来处理来自大量 DataNode 的 RPC-->
  <name>dfs.namenode.handler.count</name>
  <value>100</value>
</property>
<property>
  <!--DataNode的本地文件系统上应存储其块的路径的逗号分隔列表。-->
  <name>dfs.datanode.data.dir</name>
  <value>/usr/local/src/hadoop/dfs/name</value>
</property>

3.6、配置yarn-site.xml

[root@master ~]#

vim /usr/local/src/hadoop/etc/hadoop/yarn-site.xml

配置内容:

<property>
  <!--配置resourcemanager的主机-->
  <name>yarn.resourcemanager.hostname</name>
  <value>master</value>
</property>
<property>
  <!--逗号分隔的服务列表-->
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <!--在资源管理器中分配给每个容器请求的最小内存限制。以 MB 为单位-->
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>2048</value>
</property>
<property>
  <!--在资源管理器中分配给每个容器请求的最大内存限制。以 MB 为单位-->
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>4096</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>

3.7、配置mapred-site.xml

[root@master ~]#

vim /usr/local/src/hadoop/etc/hadoop/mapred-site.xml

配置内容:

<property>
  <!--执行框架设置为 Hadoop YARN-->
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/src/hadoop</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/src/hadoop</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/src/hadoop</value>
</property>
<property>
  <!--map任务的资源限制-->
  <name>mapreduce.map.memory.mb</name>
  <value>2048</value>
</property>
<property>
  <!--map任务子jvm的堆大小-->
  <mame>mapreduce.map.java.opts</mame>
  <value>-Xmx1536M</value>
</property>
<property>
  <!--reduce任务的资源限制-->
  <name>mapreduce.reduce.memory.mb</name>
  <value>4096</value>
</property>
<property>
  <!--reduce任务子jvm的堆大小-->
  <mame>mapreduce.map.java.opts</mame>
  <value>-Xmx2560M</value>
</property>
<property>
  <!--MapReduce JobHistory 服务器主机:端口-->
  <name>mapreduce.jobhistory.address</name>
  <value>master:10020</value>
</property>
<property>
  <!--MapReduce JobHistory Server Web UI主机:端口-->
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>master:19888</value>
</property>
<property>
  <!--MapReduce 作业写入历史文件的目录-->
  <name>mapreduce.jobhistory.intermediate-done-dir</name>
  <value>/mr-history/tmp</value>
</property>
<property>
  <!--历史文件由 MR JobHistory Server 管理的目录。-->
  <name>mapreduce.jobhistory.done-dir</name>
  <value>/mr-history/done</value>
</property>

3.8、配置works

[root@master ~]#

vim /usr/local/src/hadoop/etc/hadoop/workers

配置内容:

master
slave1
slave2

3.9、修改start-dfs.sh和start-yarn.sh

[root@master ~]#

vim /usr/local/src/hadoop/sbin/start-dfs.sh

配置内容:

  HDFS_DATANODE_USER=root
  HADOOP_SECURE_DN_USER=hdfs
  HDFS_NAMENODE_USER=root
  HDFS_SECONDARYNAMENODE_USER=root 
vim /usr/local/src/hadoop/sbin/start-yarn.sh

配置内容:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

3.10、修改stop-dfs.sh 和stop-yarn.sh

[root@master ~]#

vim /usr/local/src/hadoop/sbin/stop-dfs.sh 

配置内容:

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root 
vim /usr/local/src/hadoop/sbin/stop-yarn.sh

配置内容:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

3.11、分发文件

[root@master ~]#

scp -r /usr/local/src/hadoop root@slave1:/usr/local/src/ &
scp -r /usr/local/src/hadoop root@slave2:/usr/local/src/ &
scp /root/.bash_profile  root@slave1:/root/
scp /root/.bash_profile  root@slave2:/root/

3.12、格式化并启动集群

[root@master ~]#

hdfs namenode -format
start-all.sh 
  mapred --daemon start historyserver
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。