零基础搭建hadoop完全分布式集群搭建

本文详细介绍如何从零开始在三台虚拟机上搭建Hadoop完全分布式集群,包括环境配置、JDK与Hadoop安装、集群配置、SSH无密登录配置及集群启动等关键步骤。

零基础搭建hadoop完全分布式集群搭建

此文章使用的是jdk1.8,hadoop2.7,分为三台机器hadoop132,hadoop133,hadoop134

1.环境搭建

1.配置虚拟机

(1)将所有虚拟的防火墙关闭

 service iptables stop //服务关闭
 chkconfig iptables off //关闭开机自启

(2)修改虚拟机的ip,改为静态ip

vim /etc/sysconfig/network-scripts/ifcfg-eth0

# 将文件修改为,其中IPADDR设置为你想要设置的ip,GATEWAY与DNS1也要与你自己的虚拟机的网关一致
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.25.132
PREFIX=24
GATEWAY=192.168.25.2
DNS1=192.168.25.2
NAME=eth0

(3)设置每台机器的主机名

 vim /etc/sysconfig/network
 
 #修改HOSTNAME字段为
 HOSTNAME=hadoop132

2.安装JDK

(1)将jdk安装包传到linux上去

(2)先查看一下本地是否装有jdk

rpm -qa | grep java

#卸载
sudo rpm -e 软件包

(3)解压jdk到指定的目录

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

(4)配置环境变量,打开/etc/profile文件,在后面添加java环境变量,其中JAVA_HOME是你解压java的路径

sudo vim /etc/profile

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

(5)让修改后的文件生效

source /etc/profile

(6)测试是否安装成功

java -version

#出现这样子即为成功
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

3.安装hadoop

(1)解压hadoop到指定的目录

tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/

(2)配置环境变量,打开/etc/profile文件,在后面添加hadoop的环境变量,其中HADOOP_HOME是你解压java的路径

sudo vim /etc/profile


##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

(3)让修改后的文件生效

source /etc/profile

(4)测试是否安装成功

hadoop version

#出现这样子即为成功
Hadoop 2.7.2
Subversion Unknown -r Unknown
Compiled by root on 2017-05-22T10:49Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar

4.安装其他机器的jdk与hadoop

当然我们可以按照上面的步骤,一台一台机器的安装,但是这个过于麻烦,我们可以写一个脚本,将第一台机器的jdk和hadoop同步到其他两台机器上去

我们在/bin目录下创建一个xsync的文件

sudo vim xsync

文件内容为

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=133; host<135; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -av $pdir/$fname $user@hadoop$host:$pdir
done

修改这个文件的权限

sudo chmod 777 xsync

在/opt目录下执行

xsync software/
xsync module/

其中输入yes和其他机器的密码即可

在这里插入图片描述

同步/etc/profile这个文件

sudo xsync /etc/profile
source /etc/profile

检查是否都安装成功

java -version
hadoop version

2.集群配置

现在集群的配置如下表

hadoop132hadoop133hadoop134
HDFSNameNode
DataNode
DataNodeSecondaryNameNode
DataNode
YARNNodeManagerResourceManager
NodeManager
NodeManager

配置一些核心文件,进入etc/hadoop目录下

vim core-site.xml

# 添加
<!-- 指定HDFS中NameNode的地址 -->
<property>
		<name>fs.defaultFS</name>
      <value>hdfs://hadoop132:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

vim hdfs-site.xml

# 添加
<!-- 指定备份机器的个数 -->
<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop134:50090</value>
</property>

vim yarn-site.xml


# 添加
<!-- Reducer获取数据的方式 -->
<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop133</value>
</property>

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

# 添加
<!-- 指定MR运行在Yarn上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>

然后将所有的修改的配置文件,同步到其他的机器上去

xsync /opt/module/hadoop-2.7.2/

3.配置ssh无密登陆配置

在132这台机器上生成公钥和私钥,并将公钥分发都其他机器上

ssh-keygen -t rsa

ssh-copy-id hadoop132
ssh-copy-id hadoop133
ssh-copy-id hadoop134

这个还需要在133这台机器上运行一遍,因为133会启动yarn

7.配置slaves

vim /opt/module/hadoop-2.7.2/etc/hadoop/slaves

#将文件修改为这里就是所有机器的地址
hadoop132
hadoop133
hadoop134

8.启动hadoop集群

这样子基本已经配置完毕了

然后格式化HDFS

hdfs namenode -format

# 启动
start-dfs.sh

oop133
ssh-copy-id hadoop134


这个还需要在133这台机器上运行一遍,因为133会启动yarn

## 7.配置slaves

```shell
vim /opt/module/hadoop-2.7.2/etc/hadoop/slaves

#将文件修改为这里就是所有机器的地址
hadoop132
hadoop133
hadoop134

8.启动hadoop集群

这样子基本已经配置完毕了

然后格式化HDFS

hdfs namenode -format

# 启动
start-dfs.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值