Hadoop分布式集群搭建

Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/
JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

1.环境准备

Hadoop集群部署规划

ip:主机名作用
192.168.210.100:aNameNode、DataNode、ResourceManager、NodeManager、SecondaryNameNode
192.168.210.101:a1DataNode、NodeManager
192.168.210.102:a2DataNode、NodeManager

准备三台虚拟机。关闭防火墙,设置ip,设置主机名

#不同的Linux版本可能命令不一样
#查看防火墙状态
firewall-cmd --state
#关闭防火墙
service firewall stop
#设置防火墙开机不启动
systemctl disable firewalld.service

修改host文件,使三台虚拟机可以通过主机名的方式进行互相访问

vi /etc/hosts
#配置三台服务器的ip和主机名
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.210.100 a
192.168.210.101 a1
192.168.210.102 a2

将配置发送到其它主机

scp -r /etc/hosts root@a1:/etc/
scp -r /etc/hosts root@a2:/etc/

测试

ping a1
ping a2

分别在三台服务器上安装JDK

#下载jdk-8u121-linux-x64.gz,上传到/home/software/下
#解压安装包到/usr/local下
tar -zxvf jdk-8u121-linux-x64.gz -C /usr/local/
#修改解压后的目录名
mv jdk1.8.0-121 jdk1.8.0
#设置环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
#生效配置文件
source /etc/profile
#测试
java -version

ssh免密登录

ssh-keygen -t rsa
ssh-copy-id a
ssh-copy-id a1
ssh-copy-id a2
#测试
ssh a
ssh a1
ssh a2
#访问服务器内主机都不需要密码

2.Hadoop集群安装配置

安装Hadoop

下载Hadoop安装包hadoop-2.8.5.tar.gz并上传至服务器

#解压安装包至/usr/local
tar -zxvf hadoop-2.8.5.tar.gz -C /usr/local
#配置Hadoop环境变量
vi /etc/profile
#添加
HADOOP_HOME=/usr/local/hadoop-2.8.5/
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#生效配置文件
source /etc/profile
#测试(出现Hadoop的安装目录即为成功)
which hadoop
#在Hadoop中配置java的安装目录
#进入hadoop安装目录
cd /usr/local/hadoop-2.8.5/
vi ./etc/hadoop/hadoop-env.sh
#找到export JAVA_HOME=${JAVA_HOME},修改为java的安装目录
export JAVA_HOME=/usr/local/jdk1.8.0
#测试(出现Hadoop版本)
hadoop version

Hadoop集群配置

配置core-site.xml

vi ./etc/hadoop/core-site.xml
#在configuration中配置
<configuration>
    <!--配置HDFS文件系统的命名空间,总入口-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://a:9000</value>
    </property>
    <!--操作HDFS的缓冲大小-->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
    <!--Hadoop的数据临时存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/bigdata/tmp</value>
    </property>
</configuration>

配置hdfs-site.xml

vi ./etc/hadoop/hdfs-site.xml
#在configuration中配置
<configuration>
	<!--副本数-->
	<property>
	        <name>dfs.replication</name>
	        <value>3</value>
	</property>
	<!--块大小-->
	<property>
	        <name>dfs.block.size</name>
	        <value>134217728</value>
	</property>
	<!--HDFS的元数据存放目录-->
	<property>
	        <name>dfs.namenode.name.dir</name>
	        <value>/home/hadoopdata/dfs/name</value>
	</property>
	<!--HDFS数据存储目录-->
	<property>
	        <name>dfs.datanode.data.dir</name>
	        <value>/home/hadoopdata/dfs/data</value>
	</property>
	<!--HDFS的检测目录-->
	<property>
	        <name>dfs.checkpoint.dir</name>
	        <value>/home/hadoopdata/checkpoint/dfs/cname</value>
	</property>
	<!--HDFS的NameNode的web UI监控-->
	<property>
	        <name>dfs.http.address</name>
	        <value>a:50070</value>
	</property>
	<!--HDFS的snn的web UI地址-->
	<property>
	        <name>dfs.secondary.http.address</name>
	        <value>a:50090</value>
	</property>
	<!--是否开启web操作HDFS-->
	<property>
	        <name>dfs.webdhfs.enabled</name>
	        <value>false</value>
	</property>
	<!--是否启用HDFS的权限(acl)-->
	<property>
	        <name>dfs.permissions</name>
	        <value>false</value>
	</property>
</configuration>

配置mapred-site.xml

#修改mapred-site.xml.template为mapred-site.xml
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
vi ./etc/hadoop/mapred-site.xml
#在configuration中配置
<configuration>
	<!--指定mapreduce的运行框架-->
	<property>
	        <name>mapreduce.framework.name</name>
	        <value>yarn</value>
	        <final>true</final>
	</property>
	<!--历史服务的通信地址-->
	<property>
	        <name>mapreduce.jobhistory.address</name>
	        <value>a:10020</value>
	</property>
	<!--历史服务web UI地址-->
	<property>
	        <name>mapreduce.jobhistory.webapp.address</name>
	        <value>a:19888</value>
	</property>
</configuration>

配置yarn-site.xml

<configuration>
	<!--指定resourcemanager所启动的服务主机名-->
	    <property>
	        <name>yarn.resourcemanager.hostname</name>
	        <value>a</value>
	    </property>
	<!--指定mapreduce的shuffle-->
	        <property>
	        <name>yarn.nodemanager.aux-services</name>
	        <value>mapreduce_shuffle</value>
	    </property>
	<!--指定resourcemanager内部通信地址-->
	    <property>
	        <name>yarn.resourcemanager.address</name>
	        <value>a:8032</value>
	    </property>
	<!--指定resourcemanager的scheduler的内部通信地址-->
	    <property>
	        <name>yarn.resourcemanager.scheduler.address</name>
	        <value>a:8030</value>
	    </property>
	<!--指定resourcemanager的resource-tracker的内部通信地址-->
	    <property>
	        <name>yarn.resourcemanager.resource-tracker.address</name>
	        <value>a:8031</value>
	    </property>
	<!--指定resourcemanager的admin的内部通信地址-->
	    <property>
	        <name>yarn.resourcemanager.admin.address</name>
	        <value>a:8033</value>
	    </property>
	<!--指定resourcemanager的web UI地址-->
	    <property>
	        <name>yarn.resourcemanager.webapp.address</name>
	        <value>a:8088</value>
	    </property>
</configuration>

配置slaves

#输入三台服务器的名字
vi ./etc/hadoop/slaves
a
a1
a2

将Hadoop配置分发到别的服务器中

scp -r /usr/local/hadoop-2.8.5 a1:/usr/local
scp -r /usr/local/hadoop-2.8.5 a2:/usr/local

3.启动Hadoop集群

在NameNode服务器格式化

hadoop namenode -format

启动Haoop集群

start-all.sh

查看进程

jps
#如果按照集群规划在集群服务器上分别启动了规划中的进程即为成功
#1.NameNode、DataNode、ResourceManager、NodeManager、SecondaryNameNode
#2.DataNode、NodeManager
#3.DataNode、NodeManager

查看HDFS web监控

ip:50070

至此,Hadoop集群部署成功

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值