Hadoop运行模式
Hadoop运行模式
(1)本地模式(默认模式):
不需要启用单独进程,直接可以运行,测试和开发时使用。
即在一台机器上进行操作,仅为单机版。
本地运行Hadoop官方MapReduce案例 操作命令:
执行案例: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-example-2.7.2.jar wordcount xxx(文件位置) xxx(输出位置)
(2)伪分布式模式:
等同于完全分布式,只有一个节点。
配置集群:
配置:core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
启动集群
格式化namenode(第一次启动时格式化,不要总格式化) hdfs namenode -format
启动namenode: hadoop-daemon.sh start namenode
启动datanode: hadoop-daemon.sh start datanode
查看集群
jps:查看Java进程
可以在浏览器输入IP:50070进入可视化端查看HDFS文件系统
操作集群
新建文件夹: hadoop fs -mkdir -p /xx/xx (-p为递归创建)
上传文件到文件系统 hadoop fs -put /文件位置 /放置的位置
查看上传的文件 hadoop fs -cat /文件位置
在HDFS上运行MapReduce程序 :
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/mapreduce/wordcount/input/ /user/atguigu/mapreduce/wordcount/output
跟本地模式一样,只是需要修改文件在文件系统中的路径
查看结果 hadoop fs -cat /XX
下载内容到本地 hadoop fs -get /XX /XX
删除结果 hadoop fs -rmr /XX (-rmr即递归删除)
在YARN上运行MapReduce程序:
配置yarn-env.sh :配置一下JAVA_HOME
配置yarn-site.xml
<!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop101</value> </property> |
配置:mapred-env.sh:配置一下JAVA_HOME
配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
<!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> |
启动resourcemanager
sbin/yarn-daemon.sh start resourcemanager
启动nodemanager
sbin/yarn-daemon.sh start nodemanager
yarn的浏览器页面查看
http://192.168.1.101:8088/cluster
(3)完全分布式模式:
多个节点一起运行。
步骤:
1)虚拟机准备 准备3台客户机
2)安装jdk和hadoop并配置环境变量
3)配置客户机之间ssh无密登录
4)配置集群
4)启动集群
配置客户机之间ssh无密登录
首先进入当前用户的家目录,然后进入.ssh文件夹(此文件夹为隐藏 可通过ls -al查看所有文件)
生成一对公钥和私钥 ssh-keygen -t rsa
将会生成id_rsa(私钥)和id_rsa_pub(公钥)
将公钥复制到要免密登录的目标机器上 ssh-copy-id 192.168.1.102
rsync
rsync远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
-r 递归
-v 显示复制过程
-l 拷贝符号连接
编写集群分发脚本xsync
在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行,需要制定路径。
在/usr/local/bin目录下创建xsync文件,文件内容如下:
#!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=103; host<105; host++)); do #echo $pdir/$fname $user@hadoop$host:$pdir echo --------------- hadoop$host ---------------- rsync -rvl $pdir/$fname $user@hadoop$host:$pdir done |
修改脚本 xsync 具有执行权限 chmod 777 xsync
调用脚本形式:xsync 文件名称
编写分发脚本xcall
在所有主机上同时执行相同的命令
在/usr/local/bin目录下创建xcall文件,文件内容如下:
#!/bin/bash pcount=$# if((pcount==0));then echo no args; exit; fi echo -------------localhost---------- $@ for((host=101; host<=108; host++)); do echo ----------hadoop$host--------- ssh hadoop$host $@ done |
修改脚本 xcall 具有执行权限
调用脚本形式: xcall 操作命令
配置集群
集群部署规划
Hadoop102 |
hadoop103 |
hadoop104 |
|
HDFS |
NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
YARN |
NodeManager |
ResourceManager NodeManager |
NodeManager |
因为NameNode和ResourceManager,SecondaryNameNode都需要消耗大量资源,所以分摊配置在不同的服务器。
配置文件
core-site.xml
<!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp</value> </property> |
hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79 |
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop104:50090</value> </property> </configuration> |
slaves
hadoop102 hadoop103 hadoop104 |
yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79 |
yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop103</value> </property> </configuration> |
mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79 |
mapred-site.xml
<configuration> <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
在集群上分发以上所有文件
xsync /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
xsync /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
xsync /opt/module/hadoop-2.7.2/etc/hadoop/slaves
查看文件分发情况
xcall cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves
启动集群
如果集群是第一次启动,需要格式化namenode
bin/hdfs namenode -format
启动HDFS:
sbin/start-dfs.sh
启动yarn
sbin/start-yarn.sh
注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。
Hadoop运行模式的更多相关文章
- 大数据学习之Hadoop运行模式
一.Hadoop运行模式 (1)本地模式(默认模式): 不需要启用单独进程,直接可以运行,测试和开发时使用. (2)伪分布式模式: 等同于完全分布式,只有一个节点. (3)完全分布式模式: 多个节点一 ...
- 啃掉Hadoop系列笔记(03)-Hadoop运行模式之本地模式
Hadoop的本地模式为Hadoop的默认模式,不需要启用单独进程,直接可以运行,测试和开发时使用. 在<啃掉Hadoop系列笔记(02)-Hadoop运行环境搭建>中若环境搭建成功,则直 ...
- 啃掉Hadoop系列笔记(04)-Hadoop运行模式之伪分布式模式
伪分布式模式等同于完全分布式,只是她只有一个节点. 一) HDFS上运行MapReduce 程序 (1)配置集群 (a)配置:hadoop-env.sh Linux系统中获取jdk的安装路径:
- Hadoop运行模式:本地模式、伪分布模式、完全分布模式
1.本地模式:默认模式 - 不对配置文件进行修改. - 使用本地文件系统,而不是分布式文件系统. - Hadoop不会启动NameNode.DataNode.ResourceManager.NodeM ...
- Hadoop系列005-Hadoop运行模式(下)
本人微信公众号,欢迎扫码关注! Hadoop运行模式(下) 2.3.完全分布式部署Hadoop 1)分析: 1)准备3台客户机(关闭防火墙.静态ip.主机名称) 2)安装jdk 3)配置环境变量 4) ...
- Hadoop系列004-Hadoop运行模式(上)
title: Hadoop系列004-Hadoop运行模式(上) date: 2018-11-20 14:27:00 updated: 2018-11-20 14:27:00 categories: ...
- Hadoop之运行模式
Hadoop运行模式包括:本地模式.伪分布式以及完全分布式模式. 一.本地运行模式 1.官方Grep案例 1)在hadoop-2.7.2目录下创建一个 input 文件夹 [hadoop@hadoop ...
- hadoop的运行模式
概述 1)资料查询(官方网址) (1)官方网站: http://hadoop.apache.org/ (2)各个版本归档库地址 https://archive.apache.org/dist/hado ...
- Hadoop运行环境搭建
Hadoop运行环境搭建 更改为阿里的Centos7的yum源 #下载wget yum -y install wget #echo 下载阿里云的yum源配置 Centos-7.repo wget - ...
随机推荐
- CMMS系统中工单派案&调度
系统为客户经理提供一个有效的调度控制台,由客户经理负责将需要外派现场处理的工单进行统一的分配调度,系统显示每个技术人员的时间表,根据专业技能.可用性.距离或其他资格标准筛选技术服务人员,并向调度人员提 ...
- gulp源码分析
一.整体结构分析 整体结构 通过在nodejs环境对源码的打印,我们最终得到的gulp实例行如下图.那么我们gulp实例上的属性和方法是如何生成的呢? Gulp { domain: null, _ev ...
- django-表单之新增字段和设置css属性(四)
要注意是模板元素 和 表单元素的对应.
- fenby C语言 P29
野指针 malloc()分配内存: free()释放内存: p=(char*)malloc(100): #include <stdio.h>#include <stdlib.h> ...
- UE4蓝图与C++交互——射击游戏中多武器系统的实现
回顾 学习UE4已有近2周的时间,跟着数天学院"UE4游戏开发"课程的学习,已经完成了UE4蓝图方面比较基础性的学习.通过UE4蓝图的开发,我实现了类似CS的单人版射击游戏,效 ...
- Codeforces Round #595 (Div. 3)D1D2 贪心 STL
一道用STL的贪心,正好可以用来学习使用STL库 题目大意:给出n条可以内含,相交,分离的线段,如果重叠条数超过k次则为坏点,n,k<2e5 所以我们贪心的想我们从左往右遍历,如果重合部分条数超 ...
- 框架搭建与EF常用基类实现
前两篇简单谈了一些.Net Core的优势以及机构设计的一些思路,这一篇开始,我们将从零开始搭建架构,底层我们将采用EF来访问数据库,所以这篇我们将贴一下EF常用操作的基类. 简单介绍下一些类库将要实 ...
- [考试反思]0926csp-s模拟测试52:审判
也好. 该来的迟早会来. 反思再说吧. 向下跳过直到另一条分界线 %%%cbx也拿到了他的第一个AK了呢. 我的还是遥不可及. 我恨你,DeepinC. 我恨透你了.你亲手埋葬所有希望,令我无比气愤. ...
- Redis持久化--Redis宕机或者出现意外删库导致数据丢失--解决方案
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! Red ...
- Windows Server 搭建企业无线认证(Radius认证方案)
认证协议介绍: 扩展认证协议EAP(Extensible Authentication Protocol) 是一个在无线网络或点对点连线中普遍使用的认证框架.它被定义在RFC 3748中,并且使RFC ...