hadoop 伪分布式1g内存_Hadoop1 介绍(伪分布式集群搭建)

Hadoop介绍

1 定义

Hadoop是一个由Apache基金会所开发的分布式系统基础架构

2 解决问题

海量数据的存储和海量数据的分析计算问题。

3 三大发行版本

Apache:最基础,对于入门学习最好

Cloudera:在大型互联网企业中用的较多

Hortonworks:文档较好

4 Hadoop的优势

  1. 高可靠性:Hadoop底层维护了多个副本(默认为3个),所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
  2. 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。(增加服务器时不用把系统停下来)
  3. 高效性:在MapReduce的思想下,Hadoop是并行工作的(多个服务器一起计算),以加快任务处理的速度。
  4. 高容错性:能够自动将失败的任务重新分配。

5 Hadoop的组成

Hadoop1.x和2.x的区别

| Hadoop1.x的组成 | Hadoop2.x的组成 | | -------------------------- | ------------------ | | Common(辅助工具) | Common(辅助工具) | | HDFS(数据存储) | HDFS(数据存储) | | MapReduce(计算+资源调度) | Yarn(资源调度) |

1.x中MapReduce需要同时负责计算和资源调度

2.x中Yarn负责资源调度,MapReduce负责计算

HDFS

  1. NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode。
    (相当于是目录)
  2. DataNoade(dn):在本地文件系统存储块数据,以及块数据的校验和。具体的内容
  3. Secondary NameNode(2nn): 用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
    (用来辅助NameNode工作)

YARN架构概述

Resource Manager相当于部门经理,负责整个部门的运行
NodeManager是单节点的负责对象。
App Mstr相当于项目经理,负责某个项目。负责在集群上某一个任务的协调
Container是YARN中的资源抽象,它封装了某个节点的多维度资源,如内存、CPU、磁盘、网络等(虚拟化技术

8bdb9f5971a85b0d301236c027d5f270.png

MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce (1) Map阶段并行处理输入数据 (2) Reduce阶段对Map结果进行汇总

Hadoop运行环境搭建

1 虚拟机环境准备

网络配置

第一步,更改网卡设置

ff2e87c6f12238b86fbee1fbcd1f5be8.png

同时记录下mac地址,为00:0c:29:d2:60:7a

第二步:更改网络设置

9557edec08802300ab873b2c52e086a8.png

第三步:更改主机名

438a14d9f0064fb564d01f048a106190.png

第四步:添加映射

3825ba014b6f2e2b3edbd6e87bb24fbe.png

第五步:更改网络配置

1fcbfb2e181040abbacfce167bc24464.png

9242849926c5102c73d1660067e5c943.png

(注意!!mac是.1不是.2)

总结

2b667a654a263189217d6078a485c08e.png

结果

f1a0792fe1a155c9ac34ff6d0890055e.png

用户配置

修改配置文件/etc/sudoers

a30aa0e76d65311068c3d572524a728c.png

java和hadoop环境安装

  1. 在/opt目录下创建module、software文件夹

​ software用来存储所有程序的jar包(类似安装包)

​ module就是所有的jar包解压之后放置的地方(安装的地方)

  1. 将jdk包和hadoop包传到/opt/software中
  2. 将这两个包解压到/opt/module中

命令

tar -zxvf xxx -C /opt/module

cb2b1adf921b44877f29f82a2fb41e4b.png

7ac00543f076e007b9dfb31ba9335283.png

注意

此时的文件是属于root的,需要将其改为自己的

在文件/etc/profile中添加JAVA_HOME和HADOOP_HOME

eef4a50aade8f07cfacf35907ef7e00d.png

source /etc/profile

就可以了

结果

fe5079fe439cce01ed843f34cae8056e.png

2 官方案例

我自己在/home目录下建立了一个hadoop_learning文件夹,然后在里面的examples进行演示。

① grep案例

a. 首先将hadoop文件夹下的etc目录下的.xml文件复制到grep_input文件中:

cp /opt/module/hadoop-2.7.2/etc/hadoop/*.xml grep_input/

9f7ed9bdea146759bc6fc7b87675980e.png

b. 然后运行hadoop示例的example文件来执行grep

hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep grep_input/ grep_output 'dfs[a-z.]+'

c9f112efa33b792cd5fb504cd7ee1b05.png

c. 最后在grep_output里面看结果

7ba42974a72b1c011271251d79357b92.png

② WordCount案例

a. 首先自己创建一个wc_input文件,里面放入自己写的文件

dac03ffd265e0da62a5ae73a09faf068.png

b. 运行hadoop示例的example文件来执行

hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wc_input/ wc_output

4dfbcba2eb0921db321123892faf33b7.png

c. 就可以得到词频的统计结果

879d4e3846f24f5b084ab25c6c4ad01b.png

伪分布式模式

1 启动HDFS并运行MR文件

伪分布式模式介绍

按照分布式来进行配置,只是只有一台服务器而已。

伪分布式配置

在hadoop目录下的etc/hadoop里面是所有的配置文件

e05f26f7cf4486f8d606ad63cd718b60.png

1. 修改env文件

只要看到env,就改JAVA_HOME

修改前:

44b8f4278490fec5433dd634de33f3a4.png

修改后:

6581eed95821bf9271f13ce052cf606b.png

2. 修改core-site.xml

修改前

a707781f6ed19a0b86acbfca59589508.png

修改后

4d7593ea4a5f182ae3fdaf87efc2e136.png

3. 修改hdfs-site.xml

指定HDFS副本的数量

修改前

cd4adafeff671df02297825e37f45505.png

修改后

505fd6613d9a30a1f39c3a0ba9136c86.png

启动集群

1. 格式化NameNode

第一次启动时格式化即可,以后就不要总格式化了。

bin目录下的hdfs可以做到

0f4593a286dd7d03c28e540aa24bf736.png
bin/hdfs namenode -format

a546f315c7cce65a77175d068b3ea150.png

2. 启动NameNode

所有的启动命令都在sbin目录下面

d11fc012bfc9309d797bf55b4e87f5ce.png

输入

hadoop-daemon.sh start namenode

0fdd2f4d0bd8fafe80e26a179eecaaff.png

3. 检查是否启动成功

用jps检查

jps:java的ps进程

517d1ae6ab88ec8752e1f58f07dc4071.png

4. 启动DataNode

还是用hadoop-daemon.sh来启动

f8cd8134975c96233a244f5ddda5104f.png

5. 检查datanode是否启动成功

还是jps

b7200ccf8a07e8ce12a749fb3843acf6.png

6. 检查集群是否启动

去window主机的谷歌浏览器上输入ip地址:50070查看是否能正常进入

7bde4c486ca70b9924884170b7f566f8.png

注意!!!

必须关闭防火墙!否则不能正常进入

添加目录和文件

最开始的时候只有根目录

456b6d3ff1cc3ad97b858518baf2f3f4.png

若要添加目录,则需要用hadoop的指令

bin/hdfs dfs -mkdir -p /home/hadoop_learning/coachhe

f15ad02e7587c0a91e1178cd3bb672e1.png

ls用法

bin/hdfs dfs -ls /home/hadoop_learning/

3268890b162709d7094aae8628491546.png

上传文件

hdfs dfs -put /home/hadoop_learning/examples/wc_input/wc.input /home/hadoop_learning/examples/wc_input/

0b7a938d519579566c130b9f9e1e57f6.png

重新格式化NameNode

首先

关闭jps查询得到的NameNode和DataNode进程

然后

删除$HADOOP_HOME目录下面的data和logs文件。

注意

一定要先退出进程再删除文件

思考:为么不能一直格式化NameNode?

因为DataNode和NameNode共享同一个集群 ID,两者之间需要相互通信,因此如果格式化之后NameNode会变化集群ID,导致两者不能通信。

具体分析

44162b4f23419b00d0ad9dcd46d7b307.png

2 启动YARN并运行MR文件

分析

  1. 配置集群在YARN上运行MR
  2. 启动、测试集群增、删、查
  3. 在YARN上执行WordCount案例。

配置

1. 修改yarn-env.sh(同样也在etc/hadoop目录下)

0006529c540d670e902b3acf83fd50f2.png

2. 配置yarn-site.xml

596157a7e57f99862ef4714461e909f6.png

修改后格式如下

85dd6ae7a6424a14b5148c05974a73f9.png

3. 配置mapred-env.sh

d280f03df403b3b1e59a26234f73e7e7.png

4. 配置mapreds-site.xml.template,重新命名为mapred-site.xml

076007ea35cbc9d40dbba47cba1a1f4a.png

5. 修改mapred-site.xml

343df2a060fb13420ce08145f1d6eba2.png

修改后如下

fa74c963e388bd7a6614dec37c62fbb3.png

总结

71fe3635c670f6bf02f7afb03683a0e7.png

da497a5bf3d4daea996336d9e8c2c8e2.png

5d3dd0591b5b206b148a179c521dd9f3.png

启动集群

1. 保证NameNode和DataNode已经启动

19b7342340480f5e30e8e0e60800b324.png

2. 启动resourcemanager和nodemanager

使用sbin目录下的yarn-daemon.sh脚本,启动方法和hadoop-daemon.sh一样

ab0be88d70c7007357b05ad91232428b.png

标志

63ee595b81687fac26dd62a59384682c.png

运行MR程序

运行方式和没有YARN完全相同

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /home/hadoop_learning/examples/wc_input/wc.input /home/hadoop_learning/examples/wc_output_yarn

e2e76db5ba289b0ebf67087eefd7fddd.png

注意

运行得到的输出(wc_output_yarn)不能直接在服务器上看见,需要用hdfs指令才能看到

b8aa59d34fc41d2dc91b37376f11f4aa.png

配置文件总结

fabb27f74dfbd280a68cad5cd06666bb.png

自定义配置文件

core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值