微云(可快速扩充)
====================
大数据-介绍
---------------------
Hadoop由 Apache Software Foundation 公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发。
Hadoop这个名字不是一个缩写,而是一个虚构的名字。该项目的创建者,Doug Cutting解释Hadoop的得名 :“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。”
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
* 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
* 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
* 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
* 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
* 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
![alt 架构图](resource/hadoop-flow.jpg "架构图")
HDFS 对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。
![alt 数据读取](resource/hadoop-read.jpg "数据读取")
![alt 数据写入](resource/hadoop-write.jpg "数据写入")
NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。注意,这里需要您了解集群架构。
实际的 I/O事务并没有经过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode。当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应。这个 NameNode 还会通知其他将要接收该块的副本的 DataNode。
NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失。
NameNode本身不可避免地具有SPOF(Single Point Of Failure)单点失效的风险,主备模式并不能解决这个问题,通过Hadoop Non-stop namenode才能实现100% uptime可用时间。
DataNode
DataNode 也是一个通常在 HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。
DataNode 响应来自 HDFS 客户机的读写请求。它们还响应来自 NameNode 的创建、删除和复制块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。
![alt 资源调度与管理](resource/hadoop-yarn.jpg "资源调度与管理")
YARN 新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。
事实上,每一个应用的 ApplicationMaster 是一个详细的框架库,它结合从 ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控任务。
上图中 ResourceManager 支持分层级的应用队列,这些队列享有集群一定比例的资源。从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不对应用进行监控和状态跟踪。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务。
ResourceManager 是基于应用程序对资源的需求进行调度的 ; 每一个应用程序需要不同类型的资源因此就需要不同的容器。资源包括:内存,CPU,磁盘,网络等等。可以看出,这同现 Mapreduce 固定类型的资源使用模型有显著区别,它给集群的使用带来负面的影响。资源管理器提供一个调度策略的插件,它负责将集群资源分配给多个队列和应用程序。调度插件可以基于现有的能力调度和公平调度模型。
上图中 NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向调度器汇报。
每一个应用的 ApplicationMaster 的职责有:向调度器索要适当的资源容器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。
### 常用场景1 集群
> 进入到当前目录
> 进入到当前目录
> ## fig up -d && fig ps
### 观察日志(非Mac访问地址为本机的IP地址)
>
* [可以访问 namenode 的管理页面](http://192.168.59.103:50070/) 通过http://192.168.59.103:50070/。
* [可以访问 Yarn 的管理页面](http://192.168.59.103:8088/) 通过 http://192.168.59.103:8088/。
* [可以访问 JobHistory 的管理页面](http://192.168.59.103:19888/) 通过 http://192.168.59.103:19888/。
* [查看在线的节点](http://192.168.59.163:8088/cluster/nodes) 通过 http://192.168.59.163:8088/cluster/nodes。
>
>
* 建立进入容器快捷指令:docker run -v /usr/local/bin:/target jpetazzo/nsenter:latest
* 进入容器:docker-enter cid
* 准备资源
*docker exec -u hdfs hdfs_yarn_1 bash -c "hdfs dfs -mkdir -p input"
*docker exec -u hdfs hdfs_yarn_1 bash -c "hdfs dfs -put /usr/lib/hadoop-hdfs/webapps/hdfs/WEB-INF/web.xml input"
*docker exec -u hdfs hdfs_yarn_1 bash -c "hdfs dfs -ls input"
*docker exec -u hdfs hdfs_yarn_1 bash -c "hdfs dfs -ls hdfs://mynn:8020/user/hdfs/input"
*docker exec -u hdfs hdfs_yarn_1 bash -c "hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep input output 'dfs[a-z.]+'"
* 监测端口是否可用
* nc -v -z -w2 mynn 8020
> ## hadoop示例
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
docker安装 docker安装方法有多种,下面列举在Windows和Linux系统中的安装步骤:12 Windows系统中的安装方法: 对于Windows Server系统,可以使用Microsoft发布的PowerShell模块DockerMicrosoftProvider来安装。以管理员身份打开Windows PowerShell,运行相关命令安装包并重启计算机即可。 对于Windows 10系统,需要通过创建Docker账户来下载和安装Docker Desktop(Windows版)。在安装过程中,可以将默认容器类型设置为Windows容器,也可以在安装后更改类型。 Linux系统中的安装方法(以CentOS7为例): 更新系统软件包并安装必要的软件包,如yum-utils、device-mapper-persistent-data和lvm2等。 添加Docker的yum仓库,以便下载并安装Docker。可以通过访问Docker官网的CentOS下载地址获取帮助文档,按步骤进行安装。 安装Docker CE(Community Edition)
资源推荐
资源详情
资源评论
收起资源包目录
使用 docker 完成hadoop hbase hive集群部署,hbase+hive 数据同步.zip (132个子文件)
random_function.awk 2KB
random_test.awk 297B
zoo.cfg 1KB
Dockerfile-snappy-spark.conf 2KB
supervisord.conf 221B
supervisord.conf 193B
supervisord.conf 107B
supervisord.conf 107B
supervisord.conf 106B
supervisord.conf 103B
supervisord.conf 103B
supervisord.conf 99B
supervisord.conf 91B
Dockerfile 2KB
Dockerfile 2KB
Dockerfile 1KB
Dockerfile 1KB
Dockerfile 1KB
Dockerfile 977B
Dockerfile 906B
Dockerfile 800B
Dockerfile 683B
Dockerfile 666B
Dockerfile 576B
Dockerfile-snappy-spark 1KB
Dockerfile-snappy-spark 1KB
Dockerfile-snappy-spark 1017B
Dockerfile-snappy-spark 854B
Dockerfile-snappy-spark 800B
Dockerfile-snappy-spark 683B
Dockerfile-snappy-spark 238B
hadoop-docker-nn-my.iml 336B
hadoop-write.jpg 26KB
hadoop-read.jpg 26KB
hadoop-yarn.jpg 24KB
hadoop-flow.jpg 20KB
LICENSE 70KB
README.md 8KB
README.md 3KB
CHANGELOG.md 3KB
README.md 2KB
.name 19B
hbase-init.rb 165B
hbase-init.rb 162B
regionservers 11B
regionservers 11B
regionservers 11B
sync-docker.sh 3KB
pre-start-hadoop.sh 3KB
pre-start-hbase.sh 2KB
pre-start-hbase.sh 2KB
pre-start-hadoop.sh 2KB
build-snappy-spark.sh 2KB
pre-start-hive.sh 1KB
pre-start-hive.sh 1KB
pre-start-hbase.sh 1KB
build-common.sh 1010B
pre-start-hadoop.sh 913B
pre-start-hadoop.sh 854B
bootstrap.sh 671B
pre-start-hadoop.sh 612B
pre-start-zookeeper.sh 445B
start-hive.sh 338B
start-hive.sh 318B
hbase-env.sh 250B
hbase-env.sh 250B
hbase-env.sh 250B
hadoop-env.sh 147B
hadoop-env.sh 147B
hadoop-env.sh 147B
hadoop-env.sh 147B
hadoop-env.sh 135B
hadoop-env.sh 135B
hadoop-env.sh 135B
zookeeper-env.sh 100B
run-snappy-spark.sh 99B
hadoop-env.sh 93B
gendata.sh 73B
run-common.sh 45B
run-common.sh 45B
run-snappy.sh 45B
hive-init.sql 2KB
hive-init.sql 1017B
hive-pref.sql 727B
ssh_config 94B
hbase-site.xml.template 1KB
hbase-site.xml.template 1KB
hbase-site.xml.template 1KB
core-site.xml.template 887B
core-site.xml.template 887B
core-site.xml.template 763B
core-site.xml.template 763B
core-site.xml.template 762B
core-site.xml.template 584B
core-site.xml.template 154B
core-site.xml.template 154B
新建文本文档.txt 1KB
uiDesigner.xml 9KB
hive-site.xml 2KB
yarn-site.xml 2KB
共 132 条
- 1
- 2
资源评论
野生的狒狒
- 粉丝: 3393
- 资源: 2436
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功