hadoop完全式分布环境搭建

前言

本次hadoop完全是分布集群环境搭建用到了3台centos7的主机(全是真机,不是虚拟机,3台主机全部重装,网段的话是XX.XX.XX.190——XX.XX.XX.192,总共3个ip地址,后续如果有需要可以手动添加)。先配置好master主机,再用ssh连接到其他2个slave主机,分发配置文件,修改各自参数,这样速度比较快。本人在配置的时候没有新建用户,所有配置均在root用户下进行。

环境搭建

主机配置

修改/etc/hosts:将所有主机名以及对应IP记录在里面

// 存放ip以及主机名
XX.XX.XX.190 master
XX.XX.XX.191 slave01
XX.XX.XX.192 slave02

修改/etc/hostname:将自己的主机名记录在里面

// 存放自己的主机名
 master

jdk配置

centos7中是自带jdk环境的,但是我建议直接全部卸载重装,我用的jdk以及hadoop的环境全部是最新的

java -version//查看jdk版本信息
rpm -qa | grep java// 查看已经安装的jdk版本,应该会出现7条信息,删除其中四条,保留剩下的以.noarch为后缀的文件

去官网下载最新的jdk-15.0.1
链接(https://www.oracle.com/java/technologies/javase-jdk15-downloads.html)
下载后我是安装在/opt/java/jdk-15.0.1
然后在/etc/profile配置环境变量,再source /etc/profile使得配置生效

#java environment
export JAVA_HOME=/opt/java/jdk-15.0.1
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

java -version查看配置是否成功
但是如果就这么配置的话重启电脑之后还需执行source /etc/profile才行
解决方法,在bashrc文件中配置环境变量,使它永久生效
vi ~/.bashrc 结束后别忘了使配置生效source ~/.bashrc

export JAVA_HOME=/opt/java/jdk-15.0.1
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

hadoop安装配置

首先下载安装包,我觉得centos7里面下载太慢了,直接自己win10的电脑在官网下了hadoop-3.3.0最新版本的
链接(http://archive.apache.org/dist/hadoop/core/)
下载后随便拖到centos7里面一个文件夹下,然后我的路径是usr/hadoop/hadoop-3.3-0
这是一个目录结构
在hadoop中建立hdfs文件夹,hdfs文件夹中创建data,name,tmp三个文件夹。
在这里插入图片描述

之后就是配置/etc/profile

export PATH=$PATH:${JAVA_HOME}/bin
export HADOOP_HOME=/usr/hadoop/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

检查是否安装成功:hadoop version
接下来就是配置各种文件
首先添加java路径,在hadoop-3.3.0安装目录下的/etc/hadoop/hadoop-env.sh/etc/hadoop/yarn-env.sh中添加一条java路径,不然hadoop环境无法正常启动

export JAVA_HOME=/opt/java/jdk-15.0.1

配置hadoop-3.3.0安装目录下的/etc/hadoop/hdfs-site.xml

<configuration>
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<property>
    <name>dfs.name.dir</name>
    <value>/usr/hadoop/hdfs/name</value>
</property>
<property>
    <name>dfs.data.dir</name>
    <value>/usr/hadoop/hdfs/data</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>false</value>
</property>
</configuration>

配置hadoop-3.3.0安装目录下的/etc/hadoop/core-site.xml

<configuration>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/hadoop/hdfs/tmp</value>
</property>
<property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
</property>
</configuration>

配置hadoop-3.3.0安装目录下的/etc/hadoop/mapred-site.xml

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

配置hadoop-3.3.0安装目录下的/etc/hadoop/yarn-site.xml

<configuration>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
</configuration>

在hadoop-3.3.0安装目录下的/etc/hadoop/slaves文件中写入所有的节点的名字

配置ssh

所有节点jdk安装和环境配置以及hadoop环境自己重新配置
ssh配置:
每台机器执行

ssh-keygen -t rsa

master上:

cat id_rsa.pub >> authorized_keys

公钥发送:

scp authorized_keys root@slave01:~/.ssh/
scp authorized_keys root@slave02:~/.ssh/

确保每一台机器的公钥文件里面有所有机器的公钥

再把整个hadoop文件发送到各个节点上对应的目录

启动所有服务并查看

在hadoop/hadoop-3.3.0/bin目录下执行

./hdfs namenode -format

格式化HDFS文件
然后启动
在这里插入图片描述
在节点上也是同样方法登录

可能在启动时遇到如下问题

ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [master]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.

start-dfs.shstop-dfs.sh中添加代码:

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

start-yarn.shstop-yarn.sh中添加代码:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

这样就能解决问题了

在网页中显示你的hadoop集群环境

首先查看自己的端口号:

netstat -nplt

http://你的ip:端口号
就可以在网页上查看你的hadoop集群环境了(写这篇文章时我就开了master那台主机)
在这里插入图片描述
在这里插入图片描述
有问题也请批评指正!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值