前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hadoop三节点集群完全分布式安装

hadoop三节点集群完全分布式安装

原创
作者头像
斐哥哥
修改2021-01-22 10:59:30
1.5K0
修改2021-01-22 10:59:30
举报

废话不多说

1.环境介绍

1.1 hadoop版本 3.1.4 (hadoop-3.1.4.tar.gz )

1.2 java版本 1.8 (需要卸载机器上自带openjdk) ,jdk安装步骤省略

1.3 三台虚拟机节点 node1,node2,node3

2.步骤准备

2.1 关闭防火墙

代码语言:javascript
复制
systemctl stop firewalld
关闭防火墙自启动  
systemctl disable firewalld

2.2 上传hadoop包到node1节点的 /app/hadoop 目录下 ,并解压hadoop包

代码语言:javascript
复制
tar -zxvf hadoop-3.1.4.tar.gz 

查看hadoop目录结构

2.3集群规划

1个NameNode ,3个DataNode ,1个SecondaryNameNode ,1个ResourceManager 3个NodeManager

因为只有三台机器,考虑到资源占用情况,将NameNode 、SecondaryNameNode 、 ResourceManager占用资源较多的服务分布到不同的节点上。

node1

node2

node3

HDFS

NameNode , DataNode

DataNode

SecondaryNameNode ,DataNode

YARN

NodeManager

ResourceManager,NodeManager

NodeManager

2.4 ssh免密设置

进入 当前用户~ 目录

查看 ~ 目录下的.ssh 文件 ,存在则删除(删除以前生成的密钥)

node1,node2,node3分别执行一下指令,来生成各自密钥

代码语言:javascript
复制
ssh-keygen -t rsa

一直回车即可

执行完毕之后可见每个node节点下 用户 ~ 目录下存在 .ssh 文件。 .ssh下存在公钥 id_rsa.pub和私钥id_rsa

将ndoe1生成的公钥覆盖到authorized_keys

代码语言:javascript
复制
cp id_rsa.pub authorized_keys

分发密钥 将node2 , node3的公钥分别scp到node1 的~ 目录下,改名为 node2.pub 和node3.pub 作为临时文件(事后删除)

在node1节点上 分别将node2.pub 文件和 node.pub文件追加到 刚才生成的authorized_keys 文件中

代码语言:javascript
复制
cat ~/node2.pub >> ~/.ssh/authorized_keys
cat ~/node3.pub >> ~/.ssh/authorized_keys

此时的authorized_keys 文件就分别拥有了 node1,node2,node3的公钥

查看authorized_keys

使用scp 分发 authorized_keys 文件到node2,node3 的~/.ssh/ 目录下

分别为每个节点.ssh目录 和 authorized_keys 授权 (注意很重要) .ssh 授权为700 authorized_keys 授权为600

代码语言:javascript
复制
chmod 600 authorized_keys
chmod 700 .ssh/

(删除node1节点上的 node2.pub 和node3.pub 两个临时文件 )

至此每个节点之间完成相互ssh免密登陆

验证ssh 免密登陆

代码语言:javascript
复制
ssh root@node2
ssh root@node1
ssh root@node3

若无密码输入,则配置完成

3.hadoop安装

前面准备步骤已经将hadoop压缩包上传到了node1节点下 /app/hadoop 目录下

配置hadoop的环境变量 在 /etc/profile下配置

代码语言:javascript
复制
export HADOOP_HOME=/app/hadoop/hadoop-3.1.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

hadoop version 验证版本

修改node1节点hadoop的配置文件 hadoop配置文件位置 在hadoop 解压目录的/etc/hadoop 下

首先在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中指定JDK的路径

代码语言:javascript
复制
export JAVA_HOME=/app/java/jdk1.8    #此处配置你自己的java安装路径即可

配置操作用户 在hadoop-env.sh中配置

代码语言:javascript
复制
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"

配置master节点 修改core-site.xml

代码语言:javascript
复制
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000</value>
    </property>
   <property>
        <name>hadoop.tmp.dir</name>
        <value>/app/hadoop/hadoop-3.1.4/tmp</value>
    </property>
</configuration>

配置hdfs-site.xml

代码语言:javascript
复制
<configuration>
 <property>
    <name>dfs.name.dir</name>
    <value>/usr/hadoop/hdfs/name</value>
    <description>namenode上存储hdfs名字空间元数据 </description>
 </property>
 <property>
    <name>dfs.data.dir</name>
    <value>/app/hadoop/hadoop-3.1.4/data</value>
    <description>datanode上数据块的物理存储位置</description>
 </property>
 <property>
        <name>dfs.replication</name>
        <value>2</value>
  </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node3:50090</value>
    </property>
</configuration>

配置yarn-site.xml

代码语言:javascript
复制
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node2</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

配置 mapred-site.xml

代码语言:javascript
复制
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

配置workers (3.0以前叫slaves)

代码语言:javascript
复制
#指定datanode节点
node1
node2
node3

配置之后将node1的环境配置分发到node2,node3

之后再将node1的hadoop 分发到node2, node3相同位置

4.启动

4.1 启动hadoop集群之前需要格式化集群

格式化hdfs(只在首次启动需要格式化)

代码语言:javascript
复制
hdfs namenode -format 格式化namenode

启动集群

启动 hdfs (node1节点启动)

代码语言:javascript
复制
sbin/start-dfs.sh

启动yarn (node2节点启动,否则找不到ResourceManager)

代码语言:javascript
复制
sbin/start-yarn.sh

jps查看各节点的启动进程

node1下的

代码语言:javascript
复制
 NodeManager
 NameNode
 DataNode

node2下的

代码语言:javascript
复制
 DataNode
 NodeManager
 ResourceManager

node3下的

代码语言:javascript
复制
SecondaryNameNode
NodeManager
DataNode

查看hadoop管理页面 默认端口3.X以后9870

查看yarn管理页面 默认端口8088

出现上述web管理页面。

至此hadoop三节点集群安装成功。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.步骤准备
    • 2.1 关闭防火墙
      • 2.2 上传hadoop包到node1节点的 /app/hadoop 目录下 ,并解压hadoop包
        • 2.3集群规划
          • 2.4 ssh免密设置
          • 3.hadoop安装
          • 4.启动
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档