初识Hadoop的三种安装模式
初识Hadoop的三种安装模式
⽬录
特点:⾼可靠性(不怕丢)、⾼效性(处理速度快)、⾼容错性
ps:使⽤Hadoop版本:
接下来所⽤到的Hadoop2.8.5,虽然⽬前Hadoop已经更新到3.x了;但是我们始终秉持⼀个观点“⽤旧不⽤新”,因为毕竟旧版本较为稳定(⽬前虽然jdk出到版本为16了,但是我们还是会使⽤jdk8和jdk11),包括后期使⽤的各项Hive、Hbase等都需要与hadoop版本相对应,很难去此类资源;当然如果到公司以后,公司也会给你提供好相应版本的,直接⽤就可以。
Hadoop
HDFS:分布式⽂件系统---需要安装
MapReduce:分布式离线计算框架----不需要安装----逻辑概念-----需要编码实现
Yarn:分布式资源调度系统----需要安装
安装⽅式:
本地模式
伪分布式模式---⼀台电脑
完全分布式
1.本地模式配置
(本模式下:hdfs和yarn组件⽆法使⽤,只能使⽤mapreduce-----⼀般只⽤来测试mapreduce)
⼀般会将⽬录设置为(/opt⽬录⼀般存放第三⽅软件)---app下放安装的软件,software下放第三⽅软件的压缩包
解压hadoop压缩包⾄/opt/app⽬录下
vim /etc/profile来更改系统环境变量(配置Hadoop的环境变量:⽬的是为了能够在任何⽬录下都能使⽤hadoop命令)
export HADOOP_HOME=/opt/app/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
hadoop version
2.伪分布式模式
(本模式下:hadoop的组件hdfs和yarn都在⼀台机器上,需要去修改配置⽂件)
前⾔:⼀个巨⼤的⽂件需要进⾏存储,单台计算机肯定是不能存储这个⽂件的,因此我们可以将这个⽂件切割成⼏个部分,分别放到不同计算机上。但是这时出现了⼀个问题:三台机器上存储的⽂件互相没有联系,⼤⽂件怎么能下载呢?此时可以在每个电脑上安装HDFS进⾏ “关系定义”,接下来讨论下这个关键性技术HDFS
主从模式--分布式软件:⼀个主节点,多个从节点
熟悉概念
HDFS{
NameNode:存储元数据{领导,知道数据放到哪⾥}
DataNode:存储数据(员⼯)
SecondaryNameNode:(秘书)
}
Yarn{
ResourceManager (相当于NameNode:领导)
NodeManager (相当于DataNode:员⼯)
}
配置项
(.sh⽂件进⾏与java相连的jdk配置:配置JAVA_HOME=/opt/app/jdk1.8)
(.xml⽂件进⾏相应配置:core(common公共的)、hdfs、mapred、yarn)
<-l
<!--指定HDFS中namenode的地址必须放到core-site中,不能放在l中,否则⽆法使⽤hdfs--> <property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.20:9000</value>
</property>
<!--指定Hadoop运⾏时产⽣临时⽂件的存储⽬录-->
<property>
<name&p.dir</name>
<value>/opt/app/hadoop-2.8.5/temp</value>
</property>
l
<!--指定HDFS中副本的数量-->
<property>
<name&plication</name>
<value>1</value>
</property>
l
<!--通过yarn去运⾏-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
l
<property>
<name&demanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定Yarn的ResourceManager地址-->
<property>
<name&sourcemanager.hostname</name>
<value>192.168.0.20</value>
</property>
格式化NameNode
(相当于创建l中声明的temp⽬录)
{只能格式化1次,如果⾮要格式化的话,那么可以将产⽣的temp⽂件删除}
虚拟机安装vim命令hadoop namenode -format
开启hdfs服务和yarn服务
start-dfs.sh
start-yarn.sh
访问验证
namenode访问⽹址{ip:50070}
yarn的访问⽹址{ip:8088}
补充
通过此种⽅式,你会发现在启动各个节点时需要反复输⼊密码,不想要这样的话,就寻解决⽅式:配置SSH免密钥登录
1.⽣成密钥
cd ~/.ssh
ssh-keygen -t rsa
2.把密码给别⼈
ssh-copy-id 192.168.0.20
3.完全分布式
(最少有3台节点组成的集)----⼀般在⽣产部署时使⽤
1.需要准备3台虚拟机:通过克隆(创建完整克隆)⽅式创建
2.配置3台虚拟机的静态⽹络
192.168.0.20 、192.168.0.21、192.168.0.22
3.配置3台虚拟机的免密登录
---过程与伪分布式中所谈到的免密登录⼀致
(成功界⾯)
4.同步时间
yum install -y ntp
vim /f
此处第⼀个圆圈内,我的⽹段应该为192.168.0.0
(以上两张图⽚为需要在f中修改和添加的)
修改/etc/sysconfig/ntpd
添加代码
SYNC_HWCLOCK=yes
添加成开机启动
systemctl enable ntpd
然后在node2和node3上配置定时任务
crontab -e
*/1 * * * * /usr/sbin/ntpdate 192.168.0.20
每隔1分钟,同步node1主服务器上的时间
5.正式开始集配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<!-- 指定hadoop运⾏时产⽣⽂件的存储⽬录 -->
<property>
<name&p.dir</name>
<value>/opt/app/hadoop/temp</value>
</property>
<configuration>
<!--在3台机器上各备份⼀份-->
<property>
<name&plication</name>
<value>3</value>
</property>
<!--secondary namenode地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node3:50090</value>
</property>
<!--hdfs取消⽤户权限校验-->
<property>
<name>abled</name>
<value>false</value>
</property>
<!--如果为true(默认值),则namenode要求必须将连接datanode的地址解析为主机名
如果datanode配置的是主机名那么此项可以不⽤填写默认值为true 但是必须对主机名在/etc/hosts⽂件中配置主机映射如果datanode配置的是IP  那么需要将这个值改为false  否则IP会当作主机名进⾏主机ip校验
注意:默认情况下配置hadoop使⽤的是host+hostName的配置⽅式 datanode需要配置为主机名      -->
<property>
<name>dfs.istration.ip-hostname-check</name>
<value>true</value>
</property>
</configuration>
slaves
vim /opt/app/hadoop/etc/hadoop/slaves
node1
node2
node3
<!-- Site specific YARN configuration properties -->
<property>
<name&demanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定Yarn的ResourceManager地址-->
<name&sourcemanager.hostname</name>
<value>node2</value>
</property>
<configuration>
<!-- 指定mr运⾏在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.v</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>v</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name&v</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>
在node1上更改玩hadoop配置⽂件后,开始进⾏分发
scp -r /opt/app/hadoop-2.8.5 root@node2:/opt/app
scp -r /opt/app/hadoop-2.8.5 root@node3:/opt/app
记得分发完每个都记得格式化哦!(或者先格式化再分发到node2和node3节点上)
其它细节的基本项的配置在伪分布式中已经很详细了,在此就不多说了,⼤胆尝试、不断试错才能提升!成功后查看namenode成功界⾯,可以看到开启了3个datanode节点

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。