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
- 免密登陆认证
使用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. 上传和解压两个软件包
[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
启动集群
- 启动脚本
– start-dfs.sh :用于启动hdfs集群的脚本
– start-yarn.sh :用于启动yarn守护进程
– start-all.sh :用于启动hdfs和yarn- 关闭脚本
– stop-dfs.sh :用于关闭hdfs集群的脚本
– stop-yarn.sh :用于关闭yarn守护进程
– stop-all.sh :用于关闭hdfs和yarn- 单个守护进程脚本
– 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台虚拟机的信息就是集群搭建成功了