伪分布基础上,搭建完全分布式
-
安装jdk
- 拷贝并解压
- 创建软链接
-
安装hadoop
- 拷贝并解压
- 创建软链接
-
配置环境变量
- 配置jdk环境变量
- 配置hadoop环境变量
-
设置无密登录
主节点设置无密登录,将公钥库保存给其他节点,就可以通过ssh 其他机器名远程登录其他机器节点
- 创建密钥
- 创建公钥库
-
设置hadoop配置文件
- 修改core-site.xml
- 修改hdfs-site.xml
-
克隆三个虚拟机
-
关闭防火墙
- 查看chkconfig iptables --list
- root用户下,关闭chkconfig iptables off
-
修改静态IP
- 查看ifconfig中MAC地址与/etc/udev/rule.d/70-中的MAC地址是否一致
- 修改70中的eth0改为1,拷贝MAC地址到/etc/sysconfig/network-script/ifcfg-eth0中
- 将70中eth0删除,拷贝MAC地址到/etc/sysconfig/network-script/ifcfg-eth0中,修改文件中eth0为1,重命名文件为1
- 重启
- 查看ifconfig中MAC地址与/etc/udev/rule.d/70-中的MAC地址是否一致
-
修改主机名
- 修改/etc/sysconfig/network为slave01
- 修改/etc/hosts文件,追加slave01的IP
- 重启
-
hadoop完全分布配置
-
[core-site.xml]
-
【fs.defaultFS = hdfs://master:9000】
【设置主节点为master,端口号为9000】
-
【hadoop.tem.dir = /home/hadoop/tmp】
【设置hdfs文件存储目录】
-
-
[hdfs-site.xml]
-
【dfs.blocksize = 128m】
【块大小设置,默认128M】
-
【dfs.replication = 3】
【副本数为3个】
-
【dfs.namenode.name.dir = file://${hadoop.tmp.dir}/dfs/name】
【namenode信息存储位置,主要存储fsimage和edit_log文件】
-
【dfs.datanode.data.dir = file://${hadoop.tmp.dir}/dfs/data】
【datanode信息存储位置,主要存储块池,以及序列化的数据】
-
-
[yarn-site.xml]
-
【yarn.nodemanager.aux-services = mapreduce_shuffle】
【设置yarn执行过程默认为MapReduce】
-
-
[mapred-site.xml]
-
【将mapred-site.xml.template拷贝为mapred-site.xml】
-
【mapreduce.framework.name = yarn】
【MapReduce的调度由yarn执行】
-
-
[slaves.xml]
- 【追加所有设置为datanode的主机名:将master也作为数据节点的情况】
- 【删除localhost,追加所有设置为datanode的主机名:不将master也作为数据节点的情况】
-
master中配置完毕,将full-hadoop远程复制到所有slave从节点上
-
$>
scp -r ~/soft/hadoop/etc/full-hadoop/ hadoop@slave01:~/soft/hadoop/etc/
$>
scp -r ~/soft/hadoop/etc/full-hadoop/ hadoop@slave02:~/soft/hadoop/etc/
$>
scp -r ~/soft/hadoop/etc/full-hadoop/ hadoop@slave03:~/soft/hadoop/etc/
-
-
修改所有节点软链接
- 【设置软链接hadoop为full-hadoop】
-
格式化
- 【在master节点上,删除原HDFS文件系统存储路径】
- 【格式化master的HDFS文件系统】
-
测试
-
【在master节点执行】
-
$>
start-dfs.sh
-
$>
start-yarn.sh
-
【所有节点的pid都不一样】
-
【meta数据:每512字节有4字节的校验和】
block块
【hadoop每128M创建一个block块】
【HDFS以block块的形式存储在集群上】
【默认备份3份,存储在${hadoop.tmp.dir}/dfs/data】
-
block块大小设置合理性
- 【磁盘存储设备:机械、固态】
- 网络带宽
- 业务数据
-
根据经验,每个文件、目录大致占用150字节
【P291】
远程拷贝文件
$>scp [-r] 目录/文件 目标用户名@机器名://路径
【$> scp /etc/hosts root@master://etc/】