最码农 最码农
  • 首页
  • 动态广场
  • 精选栏目
  • 闲言碎语
  • 左邻右里
  • 笔记屋
  • 注册
  • 登录
首页 › 大数据 › Hadoop 完全分布式搭建

Hadoop 完全分布式搭建

Cosy
2年前大数据阅读 1,593

CentOS 安装

  1. 下载并安装 VMware® Workstation 15 Pro
  2. 安装 CentOS-7-x86_64-Minimal-1908.iso
  3. IP:192.168.xxx.xxx 、……
  4. host:NameNode、SecNameNode、DataNode1、DataNode2、DataNode3

Hadoop 环境搭建

下载 hadoop 2.9.2

Hadoop 完全分布式搭建-最码农

安装 Hadoop

(各节点)

  • 上传 hadoop-2.9.2.tar.gz 到 home 目录
  • 解压 tar -zxvf /home/hadoop-2.9.2.tar.gz -C /opt/
  • 配置环境变量
Hadoop 完全分布式搭建-最码农
[root@hadoop ~]# vi /etc/profile
# set hadoop environment
export HADOOP_HOME=/opt/hadoop-2.9.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
[root@hadoop ~]# source /etc/profile
[root@hadoop ~]# hadoop version

安装 JDK

(各节点)

  • 上传 jdk-8u112-linux-x64.tar.gz 到 home 目录
  • 解压 tar -zxvf /home/jdk-8u112-linux-x64.tar.gz -C /opt/
  • 配置环境变量
Hadoop 完全分布式搭建-最码农
[root@hadoop ~]# vi /etc/profile
# set jdk environment
export JAVA_HOME=/opt/jdk1.8.0_112
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
[root@hadoop ~]# source /etc/profile
[root@hadoop ~]# java -version

关闭防火墙

各个节点都需要关闭防火墙

[root@hadoop ~]# systemctl stop firewalld.service
[root@hadoop ~]# systemctl disable firewalld.service

修改安全策略

各个节点都需要修改安全策略

[root@hadoop ~]# vi /etc/selinux/config
SELINUX=disabled

修改 hosts 文件

  • 编辑 NameNode 节点的 /etc/hosts 文件
[root@NameNode ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.139.xxx NameNode
192.168.139.xxx SecNameNode
192.168.139.xxx DataNode1
192.168.139.xxx DataNode2
192.168.139.xxx DataNode3
  • 将 NameNode 节点的 /etc/hosts 文件复制到各个数据节点上
[root@NameNode ~]# scp /etc/hosts root@192.168.139.xxx:/etc/hosts
[root@NameNode ~]# scp /etc/hosts root@192.168.139.xxx:/etc/hosts
[root@NameNode ~]# scp /etc/hosts root@192.168.139.xxx:/etc/hosts
[root@NameNode ~]# scp /etc/hosts root@192.168.139.xxx:/etc/hosts

# Test
[root@NameNode ~]# ping SecNameNode | DataNode1 | DataNode2 | DataNode3

配置各节点 SSH 免秘钥登录

  • 在各节点上,以 root 用户身份生成 rsa 密钥对,生成的过程中有程序提示,连续回车即可。
Hadoop 完全分布式搭建-最码农
[root@NameNode]# ssh-keygen -t rsa
  • 将 NameNode 的密钥分发到各个 DataNode 上,实现免秘钥登录。
Hadoop 完全分布式搭建-最码农
[root@NameNode]# ssh-copy-id SecNameNode
[root@NameNode]# ssh-copy-id DataNode1
[root@NameNode]# ssh-copy-id DataNode2
[root@NameNode]# ssh-copy-id DataNode3
  • 在各个 DataNode 节点上,将密钥回传到 NameNode 上,实现 ssh 互通。
[root@SecNameNode ~]# ssh-copy-id NameNode
[root@DataNode1 ~]# ssh-copy-id NameNode
[root@DataNode2 ~]# ssh-copy-id NameNode
[root@DataNode3 ~]# ssh-copy-id NameNode

将 authorized_keys 分发给各节点后,输入以下命令,可以直接使用 ssh 登录,不再需要密码。

[root@NameNode ~]# ssh SecNameNode | DataNode1 | DataNode2 | DataNode3

Hadoop 集群配置

在 /opt/hadoop-2.9.2/etc/hadoop 目录下,找到:hadoop-env.sh、yarn-env.sh、coresite.xml、hdfs-site.xml、mapred-site.xml 、yarn-site.xml、masters 和 slaves 文件,接下来将配置以上相关文件。

如果配置错误将导致 hadoop启动失败,建议在此处创建虚拟机快照。

  • 配置 hadoop-env.sh
[root@NameNode ~]# vi /opt/hadoop-2.9.2/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/opt/jdk1.8.0_112
  • 配置 yarn-env.sh
[root@NameNode ~]# vi /opt/hadoop-2.9.2/etc/hadoop/yarn-env.sh

export JAVA_HOME=/opt/jdk1.8.0_112
  • 配置 core-site.xml
[root@NameNode ~]# vi /opt/hadoop-2.9.2/etc/hadoop/core-site.xml
<!-- 添加以下配置 -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://NameNode:9000</value>
</property>
<!-- 临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/temp</value>
</property>
</configuration>
  • 配置 hdfs-site.xml
[root@NameNode ~]# vi /opt/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
<!-- 添加以下配置 -->
<configuration>
<!-- NameNode 上存储 HDFS 名字空间元数据 -->
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hdfs/name</value>
</property>
<!-- DataNode 上数据块的物理存储位置 -->
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hdfs/data</value>
</property>
<!-- 数据副本分片数,默认是3份 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>SecNameNode:50090</value>
<description>
The secondary namenode http server address and port.
</description>
</property>
</configuration>
  • 配置 mapred-site.xml
#此文件不存在的话拷贝一份
[root@NameNode ~]# cd /opt/hadoop-2.9.2/etc/hadoop
[root@NameNode ~]# cp mapred-site.xml.template mapred-site.xml
[root@NameNode ~]# vi /opt/hadoop-2.9.2/etc/hadoop/mapred-site.xml
<!-- 添加以下配置 -->
<configuration>
<!-- tasktracker 上执行 MapReduce 程序时的本地目录 -->
<property>
<name>mapreduce.cluster.local.dir</name>
<value>/home/hadoop/mapreduce/local</value>
</property>
<!-- HDFS 中的目录,存储执行 M-R 程序时的共享文件 -->
<property>
<name>mapreduce.cluster.system.dir</name>
<value>/home/hadoop/mapreduce/system</value>
</property>
<!-- 将 Mapreduce 业务交由 yarn 管理 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>NameNode:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>NameNode:19888</value>
</property>
</configuration>
  • 配置 yarn-site.xml
[root@NameNode ~]# vi /opt/hadoop-2.9.2/etc/hadoop/yarn-site.xml
<configuration>
<!-- 默认洗牌模式,可省略 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 yarn 的老大 Resourcemanagger 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>NameNode</value>
</property>
</configuration>
  • 配置 masters
# 删除localhost,把localhost修改为 NameNode 的主机名,如果没有则新建一个
masters 文件
[root@NameNode ~]# echo "NameNode" >> /opt/hadoop2.9.2/etc/hadoop/masters
  • 配置 slaves
# 删除localhost,加入所有 DataNode 的主机名
[root@NameNode ~]# vi /opt/hadoop-2.9.2/etc/hadoop/slaves

DataNode1
DataNode2
DataNode3
  • 将整个 /opt/hadoop-2.9.2 的全部文件复制到所有数据节点上
[root@NameNode ~]# scp -r /opt/hadoop-2.9.2 root@SecondaryNameNode:/opt

# 也可以单独将以上8个文件,分别拷贝到其他节点

Hadoop 集群启动

这里使用 root 用户登录后再运行格式化和启动集群的命令。

[root@NameNode ~]# cd /opt/hadoop-2.9.2/bin
[root@NameNode ~]# hadoop namenode -format

执行后的结果中会提示:INFO common.Storage: Storage directory /home/hadoop/hdfs/name has
been successfully formatted. 否则格式化失败。

[root@NameNode ~]# /opt/hadoop-2.9.2/sbin/start-all.sh
Hadoop 完全分布式搭建-最码农
  • 查看HDFS: http://192.168.xxx.xxx:50070
Hadoop 完全分布式搭建-最码农
Hadoop HDFS 配置
赞(4) 收藏(0)
Hadoop 伪分布式搭建
上一篇
Hadoop HDFS(一)
下一篇
再想想
暂无评论
随 机 推 荐
Hive 行转列与列转行
Hive 常用函数整理
Flume 自定义Sink
Flume 入门案例 – 实时监控单个追加文件
从Hadoop框架讨论大数据生态
HDFS 概述
MapReduce框架原理-InputFormat数据输入
Hadoop 序列化
4
  • 4
  • 0
介绍

我们致力于打造一个原创的计算机相关技术的博客网站,旨在为访客提供一个优质的计算机技术教程交流平台。网站开辟了很多于计算机相关的栏目,并且收集了不少实用资源,同时也鼓励欢迎访客一起分享、交流、学习。

灵魂推荐
Veer图库 数码荔枝
栏目标题
首页 动态广场 精选栏目 闲言碎语 左邻右里 笔记屋
Copyright © 2021-2023 最码农. 苏ICP备20033168号
  • 首页
  • 动态广场
  • 精选栏目
  • 闲言碎语
  • 左邻右里
  • 笔记屋
# 教程 # # Hadoop # # Hive # # Flume # # 人工智能 #
Cosy
即使世界毁灭,也总有回光返照的那一刻
117
文章
3
评论
432
喜欢