3台服务器搭建 hadoop

3 台服务器,都是阿里云的,一台作为master、另外2台的作为slave1、slave2,系统是 centos7.6x64,如果使用服务器搭建 hadoop 最好是在同一个 vpc 里面的,不同的网落之间会有奇奇怪怪的情况,我这里为了省钱,一台是学生服务器,另外两台是共享型的按量收费服务器。
在这里插入图片描述

设置两台机器的 hostname

修改主机器和从机器的 hostname,分别为 master、slave1、slave2,以master为例

# vim ~/.bashrc

在这里插入图片描述
修改完 hostname 之后

# bash
# hostname

在这里插入图片描述

设置DNS

这里要注意的是,对于master机器端的配置,master设置的是内网ip,slave1、slave2设置的是外网ip,slave1、slave2机器的配置同理

master机器:
master的内网ip master
slave1的外网ip slave1
slave2的外网ip slave2

slave1机器:
master的外网ip master
slave1的内网ip slave1
slave2的外网ip slave2

内网的 ip 地址可以通过 ifconfig查看

# vim /etc/hosts

3 台机器都设置好dns之后,互相 ping 一下,看能否 ping 通

在这里插入图片描述在这里插入图片描述

设置ssh免密登录

以 master 机器为例,ssh-keygen一路回车

# ssh-keygen

在这里插入图片描述slave1、slave2同样执行 ssh-keygen

在master执行
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2

在slave1执行
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2

在这里插入图片描述
在 master 上,另外两台同理

# ssh slave1
# ssh slave2

在这里插入图片描述
看两两之间 ssh 能否连接成功

安装 java

我这里的安装路径是 /usr/local/src/,通过 FinalShell 把 jdk 上传

# mkdir java
# cd java
# tar xvzf 包名

在这里插入图片描述

配置 java 系统路径

# vim ~/.bashrc

JAVA_HOME=/usr/local/src/jdk1.8.0_172
export PATH="$JAVA_HOME/bin:$PATH"

在这里插入图片描述
验证 java 安装成功

# bash
# java -version

在这里插入图片描述

安装 hadoop

以 master 机器为例

# tar xvzf hadoop-2.6.5.tar.gz
# vim ~/.bashrc

HADOOP_HOME=/usr/local/src/hadoop-2.6.5
export PATH="$HADOOP_HOME/bin:$PATH"

切换到 /usr/local/src/hadoop-2.6.5/etc/hadoop

修改 hadoop-env.sh

# vim hadoop-env.sh

大概在第25行加上 JAVA_HOME
在这里插入图片描述
验证

# hadoop

在这里插入图片描述出现上述,表明安装成功

修改 yarn-env.sh

# vim yarn-env.sh

在里面添加
export JAVA_HOME=/usr/local/src/jdk1.8.0_172

修改slaves文件,里面添加从节点

# vim slaves

里面的 localhost 记住不能删掉!!!
在这里插入图片描述

修改 core-site.xml

# vim core-site.xml
<configuration>
	<property>
	    <name>fs.defaultFS</name>
	    <value>hdfs://master:9000</value>
	</property>
	<property>
	    <name>hadoop.tmp.dir</name>
	    <value>file:/usr/local/src/hadoop-2.6.5/tmp</value>
	</property>
</configuration>

修改 mapred-site.xml

先复制一份模板
# cp mapred-site.xml.template mapred-site.xml
# vim mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改 yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
	<property>
	    <name>yarn.nodemanager.aux-services</name>
	    <value>mapreduce_shuffle</value>
	</property>
	<property>
	    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
	    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>
	<property>
	    <name>yarn.resourcemanager.address</name>
	    <value>master:8032</value>
	</property>
	<property>
	    <name>yarn.resourcemanager.scheduler.address</name>
	    <value>master:8030</value>
	</property>
	<property>
	    <name>yarn.resourcemanager.resource-tracker.address</name>
	    <value>master:8035</value>
	</property>
	<property>
	    <name>yarn.resourcemanager.admin.address</name>
	    <value>master:8033</value>
	</property>
	<property>
	    <name>yarn.resourcemanager.webapp.address</name>
	    <value>master:8088</value>
	</property>
</configuration>

修改 hdfs-site.xml

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/src/hadoop-2.6.5/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/src/hadoop-2.6.5/dfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
</configuration>

在 HADOOP_HOME 目录,创建 3 个空目录

# mkdir tmp
# mkdir -p dfs/name
# mkdir -p dfs/data

用 scp 将 master 的配置同步到 slave1、slave2

# cd /usr/local/src/hadoop-2.6.5/etc
# scp -rp  hadoop/ slave1:/usr/local/src/hadoop-2.6.5/etc
# scp -rp  hadoop/ slave2:/usr/local/src/hadoop-2.6.5/etc

在这里插入图片描述

验证集群

进入 hadoop 的 bin 目录,初始化 hdfs 集群
注意!这个命令只能执行一次,后面别再执行第二次了,不然从节点的datanode的id会对不上,导致你在从节点用 jps 命令查看进程时发现没有datanode

hdfs namenode -format

在这里插入图片描述
运行 hdfs
在这里插入图片描述
查看 master 上的进程
在这里插入图片描述
查看 slave1、slave2 上的进程
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值