1.分布式架构简介
- 单机的问题
- 存储能力有限
- 计算能力有限
- 有单点故障
- ...
- 分布式架构解决了单机的问题
- 经典分布式主从架构(Master-Slave)
Master负责管理(相当于老大)Master可以有多个,防止单点故障的发生
Slave负责干活(相当于小弟)Slave有多个,并且可以动态的添加或移除
Hadoop2.0
HDFS :NameNode(老大) DataNode(小弟)
YARN :ResourceManager(老大) NodeManager(小组长)
2.Hadoop架构
五、Hadoop环境搭建(单机为分布式)
1.为分布式架构
NameNode是HDFS的管理节点,负责DataNode的管理和元数据管理
SecondaryNameNode是NameNode的一个助理,帮助NameNode管理元数据,防止元数据丢失
DataNode负责数据存储
ResourceManager是YARN的管理节点,负责NodeManager的管理、任务调度等
NodeManager是YARN的节点管理器,负责向ResourceManager汇报当前节点的状态和启动计算任务进程(YarnChild)并监控YarnChild
2.准备Linux环境
- 修改主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop.edu360.cn
- 修改ip地址(仅主机模式)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.80.128
NETMASK=255.255.255.0
#GATEWAY=192.168.80.1
#DNS1=114.114.114.114
#DNS2=8.8.8.8
- 重启网络服务
service network restart
- 配置主机名和IP地址的映射关系
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.80.128 hadoop.edu360.cn
hostname hadoop.edu360.cn
- 关闭防火墙
service iptables status
service iptables stop
- 设置防火墙开机不启动
chkconfig iptables --list
chkconfig iptables off
3.安装JDK
- 上传JDK
mkdir /usr/java
- 解压JDK
tar -zxvf jdk-8u111-linux-x64.tar.gz -C /usr/java/
- 修改环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_111
export PATH=$PATH:$JAVA_HOME/bin
- 重新加载环境变量脚本
source /etc/profile
- 验证Java是否生效
java -version
4.安装Hadoop
- 上传hadoop安装包
- 解压Hadoopanzb
mkdir /bigdata
tar -zxvf hadoop-2.6.5.tar.gz -C /bigdata/
在Hadoop安装包目录下有几个比较重要的目录
sbin : 启动或停止Hadoop相关服务的脚本
bin :对Hadoop相关服务(HDFS,YARN)进行操作的脚本
etc : Hadoop的配置文件目录
share :Hadoop的依赖jar包和文档,文档可以被删掉
lib :Hadoop的本地库(对数据进行压缩解压缩功能的)
- 配置Hadoop(伪分布式),修改其中的5个配置文件即可
进入到Hadoop的etc目录下
cd /bigdata/hadoop-2.6.5/etc/hadoop
修改第1个配置文
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111
修改第二个配置文件
vi core-site.xml
<configuration> <!-- 配置hdfs的namenode(老大)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop.edu360.cn:9000</value> </property>
<!-- 配置Hadoop运行时产生数据的存储目录,不是临时的数据 --> <property> <name>hadoop.tmp.dir</name> <value>/bigdata/tmp</value> </property> </configuration> |
修改第3个配置文件
vi hdfs-site.xml
<configuration> <!-- 指定HDFS存储数据的副本数据量 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> |
修改第4个配置文件
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration> <!-- 指定mapreduce编程模型运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
修改第5个配置文件
vi yarn-site.xml
<configuration> <!-- 指定yarn的老大(ResourceManager的地址) --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop.edu360.cn</value> </property>
<!-- mapreduce执行shuffle时获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> |
对hdfs进行初始化(格式化HDFS)
cd /bigdata/hadoop-2.6.5/bin/
./hdfs namenode -format
5.启动并测试Hadoop
cd /bigdata/hadoop-2.6.5/
sbin/start-dfs.sh
sbin/start-yarn.sh
使用jps名称检查进程是否存在
4327 DataNode
4920 NodeManager
4218 NameNode
4474 SecondaryNameNode
4651 ResourceManager
5053 Jps
访问hdfs的管理界面
192.168.80.128:50070
访问yarn的管理界面
192.168.80.128:8088
6.配置SSH免密码登录
生成ssh公钥可私钥
ssh-keygen -t rsa
(四个回车)
~/.ssh
id_rsa (私钥)
id_rsa.pub (公钥)
#将公钥拷贝给自己
ssh-copy-id localhost
~/.ssh
authorized_keys (这个文件中包括了公钥的内容)