Linux虚拟机之从0到集群

Linux集群的规划

三台配置好的虚拟机进行集群规划
hostname ip地址
master 192.168.181.153
slave1 192.168.181.154
slave2 192.168.181.155

基本环境配置

集群的环境配置之前需要如下:
1 创建一台CentOS虚拟机
2 关闭防火墙

[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
#最好也把selinux关闭掉,这是linux系统的一个安全机制,进入
[root@master ~]# vi /etc/selinux/config
#文件中将SELINUX设置为disabled,i键进入编辑模式修改
SELINUX=disabled
#修改好后按Esc退出,输入:wq保存退出

3 检查IP地址和网络

ip addr
ping baidu.com

如果出现下面情况则说明网卡没安装到位
网卡失效
解决办法:重新安装网卡
右键 -设置 -网络适配器在这里插入图片描述
点击移除,再点击添加网络适配器确定退出
再进行命令查看,出现以下情况则说明成功

–1. 配置静态IP(确保NAT模式)
[root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static #将dhcp改为static

ONBOOT=yes #将no改为yes
IPADDR=192.168.181.153 #添加IPADDR属性和ip地址
PREFIX=24 #添加NETMASK=255.255.255.0或者PREFIX=24
GATEWAY=192.168.181.1 #添加网关GATEWAY
DNS1=192.168.181.1 #添加DNS1和备份DNS
DNS2=8.8.8.8
DNS3=114.114.114.114

–2. 重启网络服务
[root@master ~]# systemctl restart network
或者
[root@master ~]# service network restart

–3. 修改主机名(如果修改过,请略过这一步)
[root@localhost ~]# hostnamectl set-hostname master
或者
[root@localhost ~]# vi /etc/hostname
master

  1. 免密登陆认证

使用rsa加密技术,生成公钥和私钥。一路回车即可
[root@master ~]# cd ~
[root@master ~]# ssh-keygen -t rsa
进入~/.ssh目录下,将id_rsa.pub复制一份文件,文件名为authorized_keys。保证此文件的权限是600
[root@master ~]# cd ~/.ssh
[root@master .ssh]# cp id_rsa.pub authorized_keys
或者使用ssh-copy-id命令
[root@master .ssh]# ssh-copy-id -i id_ras.pub root@master
进行验证
[hadoop@master .ssh]# ssh localhost
[hadoop@master .ssh]# ssh master
[hadoop@master .ssh]# ssh 0.0.0.0
#输入yes后,不提示输入密码就对了

  1. 安装JDK和Hadoop,配置相关环境变量
    jdk: link
    hadoop: link

-1. 上传和解压两个软件包
[root@master ~]# cd /opt/software/
[root@master software]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/apps/
[root@master software]# tar -zxvf hadoop-2.7.6.tar.gz -C /opt/apps/
-2. 进入apps里,给两个软件更名
[root@master software]# cd /opt/apps/
[root@master apps]# mv jdk1.8.0_221/ jdk
[root@master apps]# mv hadoop-2.7.6/ hadoop
-3. 配置环境变量
[hadoop@master apps]# vi /etc/profile

java environment
export JAVA_HOME=/opt/apps/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
hadoop environment
export HADOOP_HOME=/opt/apps/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

6.Hadoop的配置文件
复制mapred-site.xml.template

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

完全分布式文件配置

1.配置core-site.xml文件

[root@master ~]# cd /opt/apps/hadoop/etc/hadoop/
[root@master hadoop]# vi core-site.xml

<configuration>
	<property>
   		<name>hadoop.tmp.dir</name>
   		<value>file:/home/hadoop/hadoop-2.7.3/hdfs/tmp</value>
   		<description>A base for other temporary directories.</description>
 	</property>
 	<property>
  		<name>io.file.buffer.size</name>
   		<value>131072</value>
 	</property>
 	<property>
   		<name>fs.defaultFS</name>
   		<value>hdfs://master:9000</value>
 	</property>

2.配置hdfs-site.xml文件

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>
    <!-- 块的大小-->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
    <!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>
</configuration>

3.配置mapred-site.xml文件

[root@master hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@master hadoop]#vi mapred-site.xml

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

4.配置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>master</value>
    </property> 
</configuration>

5.配置hadoop-env.sh脚本文件

vi hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/opt/apps/jdk

6 .配置slaves文件,此文件用于指定datanode守护进程所在的机器节点主机名

[root@master hadoop]# vi slaves
master
slave1
slave2

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

[root@master hadoop]# vi yarn-env.sh

# some Java parameters
export JAVA_HOME=/opt/apps/jdk

克隆master虚拟机

–1. 打开一个新克隆出来的虚拟机,修改主机名
[root@master ~]# hostnamectl set-hostname slave1
–2. 修改ip地址
[root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
…省略…
IPADDR=192.168.10.201 <==修改为slave1对应的ip地址
…省略…
–3. 重启网络服务
[root@master ~]# systemctl restart network
–4. 添加IP映射(三台都需要)
[root@master ~]vi /etc/hosts
192.168.181.153 master
192.168.181.154 slave1
192.168.181.155 slave2
–5. 免密登陆的验证
从master机器上,连接其他的每一个节点,验证免密是否好使,同时去掉第一次的询问步骤在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
–6. 建议:每台机器在重启网络服务后,最好reboot一下。

格式化NameNode

1)在master机器上运行命令

[root@master ~]# hdfs namenode -format

启动集群

  1. 启动脚本
    – start-dfs.sh :用于启动hdfs集群的脚本
    – start-yarn.sh :用于启动yarn守护进程
    – start-all.sh :用于启动hdfs和yarn
  2. 关闭脚本
    – stop-dfs.sh :用于关闭hdfs集群的脚本
    – stop-yarn.sh :用于关闭yarn守护进程
    – stop-all.sh :用于关闭hdfs和yarn
  3. 单个守护进程脚本
    – hadoop-daemons.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
    – hadoop-daemon.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
    reg:
    hadoop-daemon.sh [start|stop] [namenode|datanode|secondarynamenode]
    – yarn-daemons.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
    – yarn-daemon.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
    reg:
    yarn-daemon.sh [start|stop] [resourcemanager|nodemanager]

启动hdfs
1)使用start-dfs.sh,启动 hdfs。
2)jps查看进程

–1. 在master上运行jps指令,会有如下进程
resourcemanager
namenode
datanode
nodemanager
jps
–2. 在slave1上运行jps指令,会有如下进程
secondarynamenode
datanode
nodemanager
jps
–3. 在slave2上运行jps指令,会有如下进程
datanode
nodemanager
datanode
启动集群
1)使用start-yarn.sh脚本
2)jps查看

查看集群

ip地址+:50070
点击旁边的nodes看到3台虚拟机的信息就是集群搭建成功了
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值