HDFS完全安装模式集群

HDFS完全安装模式集群

完全分布式模式介绍

完全分布式,指的是在真实环境下,使用多台机器,共同配合,来构建一个完整的分布式系统。
在真实环境中,hdfs中的相关守护进程会分布在不同的机器中。
1、namenode守护进程尽可能的单独部署在一台硬件性能相对来说比较好的机器上
2、其他的每台机器上都会部署一个datanode守护进程,一般的硬件环境即可
3、seconddarynamenode守护进程最好不要 和namenode在同一台机器上

完全分布式环境搭建的前提

1、全部的机器的防火墙必须是关闭的
2、都是安装好hadoop和jdk并且配置好环境变量
3、确保全部机器的网络畅通(静态ip,主机名修改)

关闭防火墙

systemctl stop firewalld   //关闭防火墙
systemctl disable firewalld  //设置开机不自启

systemctl stop networkmanager  //关闭networkmanager服务
systemctl disable networkmanager  //设置开机不自启

//开启和开机自启
systemctl start firewalld  //开启防火墙
systemctl enable firewalld //设置开机自启
networkmanager同上

NetworkManager服务是管理和监控网络设置的守护进程,CentOS7更加注重使用NetworkManager服务来实现网络的配置和管理,CentOS7以前是通过network服务管理网络,以后的版本所有网络管理和设置统一由NetworkManager服务来维护。它是一个动态的,事件驱动的网络管理服务

安装jdk并且配置环境变量

1、检查一下机器中是否安装过或者系统有内置的jdk,如果有内置的,将其卸载

rpm  -qa  | grep jdk   //如果有,将其卸载
rpm  -e  xxxxx -nodeps  //将查询到的内置jdk强制卸载

2、上传jdk(这里用的是jdk1.8)
将jdk-8u221-linux-x64.tar.gz 上传到 /root 目录中 (直接在mobax中把压缩包拖进去)

3、将jdk解压到安装路径下(这里安装到 /usr/local),并且改一个短一点的名字,后面配置文件方便些

tar -zxvf  jdk-8u221-linux-x64.tar.gz  -C /usr/local   //解压到/usr/local

mv /usr/local/jdk1.8.0_221/  /usr/local/jdk   //改名为jdk

4、配置jdk的环境变量

vi /etc/profile  //进入配置文件
//在文件的最后增加配置环境变量的语句
export  JAVA_HOEM=/usr/local/jdk
export  PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

5、刷新环境变量

source /etc/profile 

6、验证jdk环境

javac  
java -version 

安装hadoop并且配置环境变量

hadoop安装和jdk类似

1、上传hadoop(这里用的是hadoop2.7.6)
将hadoop-2.7.6.tar.gz 上传到 /root 目录中 (直接在mobax中把压缩包拖进去)

3、将hadoop解压到安装路径下(这里安装到 /usr/local),并且改一个短一点的名字,后面配置文件方便些

tar -zxvf  hadoop-2.7.6.tar.gz  -C /usr/local   //解压到/usr/local

mv /usr/local/hadoop-2.7.6  /usr/local/hadoop   //改名为hadoop

4、配置hadoop的环境变量

vi /etc/profile  //进入配置文件
//在文件的最后增加配置环境变量的语句
export  HADOOP_HOEM=/usr/local/hadoop
export  PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

5、刷新环境变量

source /etc/profile 

6、验证jdk环境

hadoop version 

静态ip和主机名修改

1、将全部的虚拟机的网络连接方式改为桥接模式(因为是在同一网段使用不同物理机上的虚拟机建立分布式集群,所以虚拟机要和物理机用同一网段才能和其他物理机上的虚拟机连接)
先在CentOS7中网络选项设置为桥接

点击编辑 ——> 虚拟网络编辑器 ——> 更改设置——>选择桥接模式——>确定
在这里插入图片描述
如果在创建虚拟机的时候配置网络选的是NAT模式还需要在虚拟机下修改网络适配器改为桥接模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置完这些后进入虚拟机设置静态ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33  //进入配置文件

//进入之后所做的修改
............ 
BOOTPROTO=static			  #将dhcp改为static
............
ONBOOT=yes 	   				  #将no改为yes
IPADDR=10.20.152.180	 	  #添加IPADDR属性和ip地址 
PREFIX=24 					  #添加NETMASK=255.255.255.0或者PREFIX=24 
GATEWAY=10.20.152.1			  #添加网关GATEWAY 
DNS1=8.8.8.8		 	      #添加DNS1
  

修改完成如下图
在这里插入图片描述

//修改完之后重启网络服务
systemctl restart network

//修改主机名
hostnamectl  set-hostname bd0031   

修改完主机名之后最好 reboot一下

配置hosts

在hosts中把全部机器的ip和hostname写上

代码如下:

vi /etc/hosts 

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.20.152.180 bd0031
10.20.152.237 brccq04
10.20.152.238 brccq05
10.20.152.135 host05
10.20.152.136 host06
10.20.152.132 host02
10.20.152.137 host07

设置免密登录认证

cd~
ssh-keygen  -t rsa
//1、使用rsa加密技术。生成公钥和私钥。一直回车就行

cd ~/.ssh
ssh-copy-id root@bd0031    //这里是namenode的hostname
//2、进入~/.ssh目录下,使用ssh-copy-id命令

ssh host05    //连接子节点,第一次执行需要输入yes ,之后再连接不用输yes或者密码即为成功

配置core-site.xml文件

cd $HADOOP_HOME/etc/hadoop/
vi core-site.xml
//在此文件中的两个<configuration>中加入配置文件,下面也一样

<configuration>
<!-- hdfs的地址名称:schame,ip,port-->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://bd0031:8020</value>
</property>
<!-- hdfs的基础路径,被其他属性所依赖的一个基础路径 -->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
</property>
</configuration>

设置完毕 :wq 保存即可

配置hdfs-site.xml文件

//还是在之前的$HADOOP_HOME/etc/hadoop/路径下配置这个文件,下面的配置文件也一样 
vi hdfs-site.xml
// 加入以下代码

<configuration>
<!-- namenode守护进程管理的元数据文件fsimage存储的位置-->
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<!-- 确定DFS数据节点应该将其块存储在本地文件系统的何处-->
<property>
        <name>dfs.datanode.data.dir</name>
        <value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<!-- 块的副本数-->
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
<!-- 块的大小(128M),下面的单位是字节-->
<property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
</property>
<!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>brccq04:50090</value>
</property>
<!-- namenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
<property>
        <name>dfs.namenode.http-address</name>
        <value>bd0031:50070</value>
</property>
</configuration>

配置mapred-site.xml文件

如果只是搭建hdfs,只需要配置core-site.xml和hdfs-site.xml文件就可以了,但是我们过两天要学习的
MapReduce是需要YARN资源管理器的,因此,在这里,我们提前配置一下相关文件。

cp mapred-site.xml.template  mapred-site.xml
vi mapred-site.xml

//加入以下代码


<configuration>

<!-- 指定mapreduce使用yarn资源管理器-->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value> </property>
<!-- 配置作业历史服务器的地址-->
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>bd0031:10020</value>
</property>
<!-- 配置作业历史服务器的http地址-->
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>bd0031:19888</value>
</property>
</configuration>

配置yarn-site.xml文件

vi yarn-site.xml
//加入以下代码

<configuration>
<!-- 指定yarn的shuffle技术-->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager的主机名-->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>bd0031</value>
</property>
<!--下面的可选--> <!--指定shuffle对应的类 -->
<property>
        <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--配置resourcemanager的内部通讯地址-->
<property>
        <name>yarn.resourcemanager.address</name>
        <value>bd0031:8032</value>
</property>
<!--配置resourcemanager的scheduler的内部通讯地址-->
<property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>bd0031:8030</value>
</property>
<!--配置resoucemanager的资源调度的内部通讯地址-->
<property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>bd0031:8031</value>
</property>
<!--配置resourcemanager的管理员的内部通讯地址-->
<property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>bd0031:8033</value>
</property>
<!--配置resourcemanager的web ui 的监控页面-->
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>bd0031:8088</value> </property>

</configuration>

配置slaves文件

此文件用于指定datanode守护进程所在的 机器节点主机名

vi slaves
//在这里加入全部机器(节点)的主机名

brccq04
brccq05
host05
host06
host07
host02


配置hadoop-env.sh脚本文件

vi hadoop-env.sh 
//修改其中一行为jdk的绝对路径

.........
 # The java implementation to use. 
 export JAVA_HOME=/usr/local/jdk 
 .........

配置yarn-env.sh脚本文件

此文件可以不配置,不过,最好还是修改一下yarn的jdk环境比较好

vi yarn-env.sh

............
# some Java parameters
# export JAVA_HOME=/usr/local/jdk    //修改jdk路径
if [ "$JAVA_HOME" != "" ]; then
  #echo "run java in $JAVA_HOME"
  JAVA_HOME=$JAVA_HOME
fi
............

其他机器的配置(子节点(datanode))

在这里插入图片描述

格式化namenode

1、在namenode(老大)上运行的命令

hdfs  namenode -format

在这里插入图片描述

启动集群

start-dfs.sh              //用于启动hdfs集群
start-yra.sh              //用于启动yarn守护进程
start-all.sh              //用于启动hdfs和yarn

stop-dfs.sh				   //用于停止hdfs集群
stop-yarn.sh               //用于停止yarn守护进程
stop-all.sh				   //用于停止hdfs和yarn

在这里插入图片描述

启动hdfs

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

启动yarn

在这里插入图片描述

集群守护进程不能开启的情况

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值