之前学期的大数据内容都是在伪分布式下完成的,若想了解伪分布式,可以找前几天的内容,今天主要是针对与分布式部署。
安装方式
在Linux上手动将配置好的Hadoop分发给其他机器。不使用工具。
Linux环境的配置:
ip(几台虚拟机都在一个网段中)
主机名(主机名最好一样,后面跟个数字)
本地映射,DNS,防火墙,selinux(/etc/selinux/config)
扩展:Hadoop启动的过程方式:
之前的启动都是一个一个启动: sbin/hadoop-daemon.sh start XX
现在分别启动hdfs和yarn: sbin/start-dfs.sh————sbin/start-yarn.sh
一次性启动所有: sbin/start-all.sh
ssh免密钥登入
我们开的几台虚拟机之间互相可以登入,但是登入时需要输入密码,互相操作时也需要密码,所以我们首先 设置一个面密钥登入,使不同虚拟机之间可以直接访问。
如何登入其他虚拟机?
ssh XXX(要登入的虚拟机hostname)
查看ssh命令:/home/huadian/.ssh
设置免密钥登入有两步:
第一步:为每台机器生产自己的公私钥
ssh-keygen -t rsa
第二步:把公私钥分发给每台机器,包括自己
ssh-copy-id XXX(分发的虚拟机hostname)
第三步:测试(使用ssh登入到其他机器,包括自己)
NTP时间同步
同步方式:同步的方式很多,但是我用的是一种比较通俗易懂的方法。
若有A,B,C三台虚拟机同步,这里选择A与外网进行同步,B,C则与A同步。
配置A:sudo vi /etc/ntp.conf
删除:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
添加:可以直接添加,也可从下面的注释中修改
A可以跟谁同步:server 202.112.10.36(北京教育网IP)
允许谁可以跟A同步:restrict 192.168.59.0 mask 255.255.255.0 nomodify notrap
配置本地同步:
server 127.127.1.0
fudge 127.127.1.0 stratnum 10
启动ntp服务:sudo service ntpd start
配置B,C跟A同步:sudo vi /etc/ntp.conf
删除:同A删除
添加:跟A同步:server 192.168.59.162
开启ntp服务:sudo service ntpd start
手动同步:sudo ntpdate 192.168.xx.xx
查看当前主机跟谁同步:ntpq -p
偷懒方式(这种同步时间不是特别精确):sudo date -s "2018-XX-XX XX:XX:XX"
安装部署Hadoop
节点分布情况:
hostname01 datanode nodemanager namenode(工作)
hostname02 datanode nodemanager
hostname03 datanode nodemanager resourceManager(工作)
安装jdk:关于JDK的安装这里不详细说了,6.10还是6.8有详细介绍。这里介绍个命令。
两个虚拟机之间的上传:scp -r jdk_xx_xx/ 用户名@hostname:目录
两个虚拟机之间的下载:scp -r 用户名@hostname:目录 jdk_xx_xx/
Hadoop:
上传解压,修改配置文件:
1 -env.sh 环境变量
2 -site.xml:配置用户自定义需求
core-site:hdfs的入口,临时存储目录
hdfs-site:文件副本
mapred-site:mapreduce程序将运行在Yarn上
yarn-site:resourceManager入口,告知yarn ,mapreduce程序将在你这里运行
分发(一定要分发):
scp -r hadoop-2.7.3/ 用户名@hostname:目录
启动测试:
hostname01格式化(namenode在哪个节点,就格式化哪个节点)
开启节点:可以一个一个去开启,也能一次性开启,建议测试就一个一个开启。