02.大数据技术之Hadoop(01)

1.Hadoop介绍

hadoop的定义:hadoop是一个分布式存储和分布式计算的框架。

分布式存储:是一个数据存储技术,将数据存储在多个服务上的(存储单元)磁盘空间中。目前解决的是大量数据存储的问题。

分布式计算:是一个计算科学技术,将一个大量的计算过程拆分成弱干个小的任务,由多个节点执行,最后做数据汇总。

1.1 hadoop的核心组件

HDFS:分布式存储组件

MapReduce:分布式计算组件

Yarn:资源调度管理器

1.2 hadoop的介绍及发展历史

  1. Hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
  2. 2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。
    ——分布式文件系统(GFS),可用于处理海量网页的存储
    ——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
  3. Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目(同年,cloudera公司成立),迎来了它的快速发展期。
    狭义上来说,hadoop就是单独指代hadoop这个软件,
    广义上来说,hadoop指代大数据的一个生态圈,包括很多其他的软件。

1.3 hadoop的历史版本介绍

0.x系列版本:hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本

1.x版本系列:hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等

2.x版本系列:架构产生重大变化,引入了yarn平台等许多新特性

3.x版本系列:基于2.x的版本进行多层优化(新特性),主要的是改变MapReduce的数据计算方式。
在这里插入图片描述

1.4 hadoop2.x架构模型

在这里插入图片描述

文件系统核心模块

NameNode:集群当中的主节点,主要用于管理集群当中的各种元数据

secondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理

DataNode:集群当中的从节点,主要用于存储集群当中的各种数据

数据计算核心模块:

ResourceManager:接收用户的计算请求任务,并负责集群的资源分配

NodeManager:负责执行主节点APPmaster分配的任务

1.5Hadoop 的安装有三种方式

单机模式:直接解压,只支持MapReduce的测试,不支持HDFS,一般不用。

伪分布式模式:单机通过多进程模拟集群方式安装,支持Hadoop所有功能。

​ 优点:功能完整。

​ 缺点:性能低下。学习测试用。

完全分布式模式:集群方式安装,生产级别。

1.5.1 伪分布式部署

需要环境:

JDK,JAVA_HOME,配置hosts,关闭防火墙,配置免密登录等。

注意:我们只将其安装在hadoop01节点上。

进入目录
cd /opt/softwares
上传安装包并解压
tar -xvzf hadoop-2.7.7.tar.gz -C ../servers/
修改配置文件

位置:/opt/servers/hadoop-2.7.7/etc/hadoop

1.修改hadoop-env.sh
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hadoop-env.sh

修改

export JAVA_HOME=/opt/servers/jdk1.8.0_65
export HADOOP_CONF_DIR=/opt/servers/hadoop-2.7.7/etc/hadoop
2.修改 core-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/core-site.xml

增加namenode配置、文件存储位置配置:粘贴代码部分到标签内

<property>
 
<!--用来指定hdfs的老大,namenode的地址-->
 
<name>fs.defaultFS</name>
 
<value>hdfs://hadoop01:8020</value>
 
</property> 
 
<property>
 
<!--用来指定hadoop运行时产生文件的存放目录-->  
 
<name>hadoop.tmp.dir</name>
 
<value>/opt/servers/hadoop-2.7.7/tmp</value>
 
</property>


3.修改 hdfs-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
  • 配置包括自身在内的备份副本数量到标签内
<property>
 
<!--指定hdfs保存数据副本的数量,包括自己,默认为3-->
 
<!--伪分布式模式,此值必须为1-->
 
<name>dfs.replication</name>
 
<value>1</value>
 
</property>
 
<!--设置hdfs操作权限,false表示任何用户都可以在hdfs上操作文件-->
 
<property>
 
<name>dfs.permissions</name>
 
<value>false</value>
 
</property>


4.修改 mapred-site.xml

说明:在/opt/servers/hadoop-2.7.7/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,复制一个。

cp mapred-site.xml.template mapred-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/mapred-site.xml

配置mapreduce运行在yarn上:粘贴高亮部分到标签内

<property> 
 
<!--指定mapreduce运行在yarn上-->
 
<name>mapreduce.framework.name</name>
 
<value>yarn</value>
 
</property>

5.修改 yarn-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/yarn-site.xml
  • 配置:粘贴高亮部分到标签内
<property>
 
<!--指定yarn的老大resourcemanager的地址-->
 
<name>yarn.resourcemanager.hostname</name>
 
<value>hadoop01</value>
 
</property>
 
<property>
 
<!--NodeManager获取数据的方式-->
 
<name>yarn.nodemanager.aux-services</name>
 
<value>mapreduce_shuffle</value>
 
</property>

6.修改slaves
vim /opt/servers/hadoop-2.7.7/etc/hadoop/slaves

修改

hadoop01
7.配置hadoop的环境变量
vim /etc/profile
export HADOOP_HOME=/opt/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

配置完成之后生效

source /etc/profile

环境变量配置完成,测试环境变量是否生效

echo $HADOOP_HOME
启动
1.初始化
hdfs namenode -format
2.启动
start-all.sh
3.停止
stop-all.sh
4.测试
jps
5.停止服务
stop-all.sh

6.访问浏览器

windows的浏览器中访问hadoop01:50070

安装成功!

7.如果没有安装成功

如果没有成功(进程数不够)

1.stop-all.sh 停掉hadoop所有进程

2.删掉hadoop2.7.7下的tmp文件

3.hdfs namenode -format 重新初始化(出现successfully证明成功),如果配置文件报错,安装报错信息修改相应位置后重新执行第二步。

4.start-all.sh 启动hadoop

1.5.2 完全分布式部署

安装环境服务部署规划

服务器IP192.168.64.101192.168.64.102192.168.64.103
NameNode
HDFSSecondary NameNode
DataNodeDataNodeDataNode
YARNResourceManager
NodeManagerNodeManagerNodeManager

先在第一台机器hadoop01进行部署

注意:如果已安装伪分布模式,先删除格式化后生成的数据文件,其他请略过。

rm -rf /opt/servers/hadoop-2.7.7/tmp
进入目录
cd /opt/softwares
上传安装包并解压
tar -xvzf hadoop-2.7.7.tar.gz -C ../servers/
修改配置文件

位置:/opt/servers/hadoop-2.7.7/etc/hadoop

1.修改hadoop-env.sh
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hadoop-env.sh

修改

export JAVA_HOME=/opt/servers/jdk1.8.0_65
export HADOOP_CONF_DIR=/opt/servers/hadoop-2.7.7/etc/hadoop
2.修改 core-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/core-site.xml

增加namenode配置、文件存储位置配置:粘贴代码部分到标签内

<property>
 
<!--用来指定hdfs的老大,namenode的地址-->
 
<name>fs.defaultFS</name>
 
<value>hdfs://hadoop01:8020</value>
 
</property> 
 
<property>
 
<!--用来指定hadoop运行时产生文件的存放目录-->  
 
<name>hadoop.tmp.dir</name>
 
<value>/opt/servers/hadoop-2.7.7/tmp</value>
 
</property>


3.修改 hdfs-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
  • 配置包括自身在内的备份副本数量到标签内
<property>
 
<!--指定hdfs保存数据副本的数量,包括自己,默认为3-->
 
 
<name>dfs.replication</name>
 
<value>2</value>
 
</property>
 
<!--设置hdfs操作权限,false表示任何用户都可以在hdfs上操作文件-->
 
<property>
 
<name>dfs.permissions</name>
 
<value>false</value>
 
</property>


4.修改 mapred-site.xml

说明:在/opt/servers/hadoop-2.7.7/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,复制一个。

cp mapred-site.xml.template mapred-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/mapred-site.xml

配置mapreduce运行在yarn上:粘贴高亮部分到标签内

<property> 
 
<!--指定mapreduce运行在yarn上-->
 
<name>mapreduce.framework.name</name>
 
<value>yarn</value>
 
</property>

5.修改 yarn-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/yarn-site.xml
  • 配置:粘贴高亮部分到标签内
<property>
 
<!--指定yarn的老大resourcemanager的地址-->
 
<name>yarn.resourcemanager.hostname</name>
 
<value>hadoop01</value>
 
</property>
 
<property>
 
<!--NodeManager获取数据的方式-->
 
<name>yarn.nodemanager.aux-services</name>
 
<value>mapreduce_shuffle</value>
 
</property>


6.修改slaves
vim /opt/servers/hadoop-2.7.7/etc/hadoop/slaves

修改

hadoop01
hadoop02
hadoop03
7.配置hadoop的环境变量
vim /etc/profile
export HADOOP_HOME=/opt/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

配置完成之后生效

source /etc/profile

环境变量配置完成,测试环境变量是否生效

echo $HADOOP_HOME
8.分发文件到hadoop02、hadoop03服务器
cd /opt/servers/
scp -r hadoop-2.7.7/ hadoop02:$PWD
scp -r hadoop-2.7.7/ hadoop03:$PWD
9.hadoop02、hadoop03服务器配置hadoop的环境变量
vim /etc/profile
export HADOOP_HOME=/opt/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

配置完成之后生效

source /etc/profile

环境变量配置完成,测试环境变量是否生效

echo $HADOOP_HOME
启动
1.初始化
hdfs namenode -format
2.启动
start-all.sh
3.停止
stop-all.sh
4.测试
jps
5.停止服务
stop-all.sh
6.访问浏览器

windows的浏览器中访问

hdfs集群访问地址

http://hadoop01:50070/

yarn集群访问地址

http://hadoop01:8088/

安装成功!

补充:可以按照组件启动服务
start-dfs.sh
start-yarn.sh

也可以单独启动一个服务

#在主节点上使用以下命令启动 HDFS NameNode:
hadoop-daemon.sh start namenode 
#在每个从节点上使用以下命令启动 HDFS DataNode: 
hadoop-daemon.sh start datanode 
#在主节点上使用以下命令启动 YARN ResourceManager: 
yarn-daemon.sh  start resourcemanager 
#在每个从节点上使用以下命令启动 YARN nodemanager: 
yarn-daemon.sh start nodemanager 

2.hadoop集群初体验

2.1、HDFS 使用初体验

从Linux 本地上传一个文本文件到 hdfs 的/test/input 目录下

hadoop fs -mkdir -p /test/input 

hadoop fs -put /root/install.log  /test/input 	

2.2、mapreduce程序初体验

在 Hadoop 安装包的

hadoop2.7.7/share/hadoop/mapreduce 下有官方自带的mapreduce 程序。我们可以使用如下的命令进行运行测试。

示例程序jar:

 hadoop-mapreduce-examples-2.7.7.jar

计算圆周率:

hadoop jar /opt/servers/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar pi 2 5

关于圆周率的估算,感兴趣的可以查询资料 Monte Carlo 方法来计算 Pi 值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值