赞
踩
一、准备4台虚拟机
四台主机名分别设置为:master slave1 slave2 slave3(自定义)
1、关闭防火墙、设置静态IP
2、设置host文件,配置主机名
vi /etc/hostname
#将localhost.localdomain改成master.localdomain
#master是你要定义的主机名
vi /etc/hosts
#配置hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.180.88 master
192.168.180.100 slave1
192.168.180.101 slave2
192.168.180.102 slave3
192.168.180.103 dtinone
将配置发送到其他主机
scp -r /etc/hosts root@slave1:/etc/
scp -r /etc/hosts root@slave2:/etc/
scp -r /etc/hosts root@slave3:/etc/
测试
ping slave1
ping slave2
ping slave3
二、安装配置JDK
1、将jdk压缩文件拷贝到/opt/appUtils目录下(可以自己选择)
2、解压jdk压缩文件到要安装目录下/opt/apps/
tar -zxvf jdk-8u241-linux-x64.tar.gz -C /opt/apps
3、配置jdk环境变量
vi /etc/profile
#末尾添加
export JAVA_HOME=/opt/apps/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
#立即生效环境变量
source /etc/profile
4、将jdk复制到其他主机
scp -r /opt/apps/jdk1.8.0_241 root@slave1:/opt/apps
scp -r /opt/apps/jdk1.8.0_241 root@slave2:/opt/apps
scp -r /opt/apps/jdk1.8.0_241 root@slave3:/opt/apps
5、将环境变量配置文件复制到其他主机
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /etc/profile root@slave3:/etc/
分别执行立即生效
source /etc/profile
测试jdk是否正确安装
java -version
显示java版本信息说明jdk安装成功
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
三、安装hadoop集群
1、下载hadoop压缩文件,直接官网就apache可以下载
2、将压缩文件放到虚拟主机中/opt/appUtils目录(可以自己选择)
3、解压安装
tar -zxvf hadoop-2.7.3.tar.gz -C /opt/apps/
4、配置环境变量
vi /etc/profile
#末尾添加
#hadoop //此行为注释
export HADOOP_HOME=/opt/apps/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
立即生效
source /etc/profile
5、配置hadoop集群
5.1、配置core-site.xml文件
cd /opt/apps/hadoop-2.7.3/etc/hadoop
vi core-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/apps/hadoop-2.7.3/data</value>
</property>
注意:在添加配置文件的时候,每行前后不能有空格,作业自己写或者复制网上的配置时要检查一下
5.2、配置hadoop-env.sh
#找到export JAVA_HOME=在后面添加java环境变量
export JAVA_HOME=/opt/apps/jdk1.8.0_241
5.3、配置hdfs-site.xml
vi hdfs-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- 设置dfs副本数,不设置默认是3个 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 设置secondname的端口 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
5.4配置slaves文件,有的hadoop版本是works
vi slaves
master
slave1
slave2
slave3
5.5、配置mapred-env.sh
vi mapred-env.sh
#找到export JAVA_HOME=在后面添加java环境变量
export JAVA_HOME=/opt/apps/jdk1.8.0_241
5.6、配置mapred-site.xml
vi mapred-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- 指定mapreduce运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5.7、配置yarn-env.sh
vi yarn-env.sh
#找到export JAVA_HOME=在后面添加java环境变量
export JAVA_HOME=/opt/apps/jdk1.8.0_241
5.8、配置yarn-site.xml
vi yarn-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
6、将安装好的hadoop分发到其他主机节点
scp -r /opt/apps/hadoop-2.7.3 root@slave1:/opt/apps/
scp -r /opt/apps/hadoop-2.7.3 root@slave2:/opt/apps/
scp -r /opt/apps/hadoop-2.7.3 root@slave3:/opt/apps/
7、将环境变量配置文件拷贝到其他主机
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /etc/profile root@slave3:/etc/
分别执行立即生效
source /etc/profile
8、设置SSH免密访问
要求任意两台主机之间都要设置免密访问
master主机下:
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3
slave1主机下:
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3
slave2主机下:
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3
slave3主机下:
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3
9、启动集群
我们在core-site.xml配置了运行时文件存放位置data
,实际上生成的目录里面没有,需要嗯自己创建,如果不配置这个目录,那么会自动存放在根目录下的tmp目录中
cd /opt/apps/hadoop-2.7.3
mkdir data
9.1、第一次启动集群需要进行格式化namenode
hadf namenode -format
#启动集群
#1、启动HDFS,在master上启动
cd sbin
start-dfs.sh
9.2、启动yarn
#启动yarn在主机slave1上,因为我们在yarn-site.xml中配置了在slave1上启动 所以需要单独启动
start-yarn.sh
9.3、jps查看进程
master主机下:
[root@master sbin]# jps
3474 NameNode
2979 NodeManager
3603 DataNode
3883 Jps
slave1主机下:
[root@slave1 sbin]#jps
10528 DataNode
10624 SecondaryNameNode
10722 ResourceManager
10834 NodeManager
11354 Jps
slave2主机下:
[root@slave2 hadoop]# jps
2114 NodeManager
2214 Jps
1979 DataNode
slave3主机下:
[root@slave3 hadoop]# jps
1796 DataNode
1928 NodeManager
2028 Jps
我们把SecondaryNameNode以及ResourceManage配置在slave1里面,所以slave1里面的进程较多。当不配置时会默认在主节点master里面
9.4、在web端查看
在网页地址栏输入master:50070
这时候说明我们的Hadoop全分布式集群搭建(单点)完成,后面的高可用和联邦根据需求修改几个配置文件即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。