Hadoop系列005-Hadoop运行模式(下)
本人微信公众号,欢迎扫码关注!
Hadoop运行模式(下)
2.3、完全分布式部署Hadoop
1)分析:
- 1)准备3台客户机(关闭防火墙、静态ip、主机名称)
- 2)安装jdk
- 3)配置环境变量
- 4)安装hadoop
- 5)配置环境变量
- 6)安装ssh
- 7)配置集群
- 8)启动测试集群
2)操作
(1) 虚拟机准备
- 克隆三台干净的虚拟机
(2) 主机名设置
(3) scp
1)scp可以实现服务器与服务器之间的数据拷贝。
2)案例实操
(1)将hadoop101中/opt/module和/opt/software文件拷贝到hadoop102、hadoop103和hadoop104上。
[root@hadoop101 /]# scp -r /opt/module/ root@hadoop102:/opt
[root@hadoop101 /]# scp -r /opt/software/ root@hadoop102:/opt
[root@hadoop101 /]# scp -r /opt/module/ root@hadoop103:/opt
[root@hadoop101 /]# scp -r /opt/software/ root@hadoop103:/opt
[root@hadoop101 /]# scp -r /opt/module/ root@hadoop104:/opt
[root@hadoop101 /]# scp -r /opt/software/ root@hadoop105:/opt
(2)将192.168.1.102服务器上的文件拷贝到当前用户下。
[root@hadoop101 opt]# scp root@hadoop102:/etc/profile /opt/tmp/
(3)实现两台远程机器之间的文件传输(hadoop103主机文件拷贝到hadoop104主机上)
[atguigu@hadoop102 test]$ scp atguigu@hadoop103:/opt/test/haha atguigu@hadoop104:/opt/test/
(4)SSH无密码登录
1)配置ssh
(1)基本语法
ssh 另一台电脑的ip地址
(2)ssh连接时出现Host key verification failed的解决方法
问题再现
[root@hadoop2 opt]# ssh 192.168.1.103
The authenticity of host '192.168.1.103 (192.168.1.103)' can't be established.
RSA key fingerprint is cf:1e:de:d7:d0:4c:2d:98:60:b4:fd:ae:b1:2d:ad:06.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed. 解决办法
输入yes,然后输入目标机器的密码即可
2)无密钥配置
(1)进入到我的home目录
cd ~/.ssh
(2)生成公钥和私钥:
ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上
ssh-copy-id 目标机器主机名或IP地址
3).ssh文件夹下的文件功能解释
- (1)~/.ssh/known_hosts :记录ssh访问过计算机的公钥(public key)
- (2)id_rsa :生成的私钥
- (3)id_rsa.pub :生成的公钥
- (4)authorized_keys :存放授权过得无秘登录服务器公钥
(5)rsync
rsync远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
1)查看rsync使用说明
man rsync | more
2)基本语法
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
命令 命令参数 要拷贝的文件路径/名称 目的用户@主机:目的路径
3)案例实操
把本机/opt/tmp目录同步到hadoop103服务器的root用户下的/opt/tmp目录
rsync –rvl /opt/tmp/* root@hadoop103:/op t/tmp
(6)编写集群分发脚本xsync
1)需求分析:循环复制文件到所有节点的相同目录下。
(1)原始拷贝:
rsync –rvl /opt/module root@hadoop103:/opt/
(2)期望脚本:
xsync 要同步的文件名称
(3)在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行,需要制定路径。
2)案例实操:
(1)在/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
(2)修改脚本 xsync 具有执行权限
[root@hadoop102 bin]# chmod 777 xsync
(3)调用脚本形式:xsync 文件名称
(7)编写分发脚本xcall
1)需求分析:在所有主机上同时执行相同的命令
xcall +命令
2)具体实现
(1)在/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
(2)修改脚本 xcall 具有执行权限
[root@hadoop102 bin]# chmod 777 xcall
(3)调用脚本形式: xcall 操作命令
[root@hadoop102 ~]# xcall rm -rf /opt/tmp/profile
(8) 基于伪分布式部署集群
1)集群部署规划
规划原则:尽量将耗内存的任务分散开来
Hadoop102 Hadoop103 Hadoop104 HDFS NameNode SecondaryNameNode DataNode DataNode DataNode YARN NodeManager ResourceManager NodeManager 2)配置文件
(1)core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property> <!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
(2)Hdfs
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
(3)yarn
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>
(4)mapreduce
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>
3)在集群上分发以上所有文件
cd /opt/module/hadoop-2.7.2/etc/hadoop
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
4)查看文件分发情况
xcall cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves
(9)集群启动及测试
1)启动集群
(0)如果集群是第一次启动,需要格式化namenode
[root@hadoop2 hadoop-2.7.2]# bin/hdfs namenode –format
(1)启动HDFS
[intflag@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh 启动之后验证
[intflag@hadoop102 hadoop-2.7.2]$ jps
3690 DataNode
9550 Jps
3583 NameNode [intflag@hadoop103 hadoop-2.7.2]$ jps
9095 Jps
3435 DataNode [intflag@hadoop104 hadoop-2.7.2]$ jps
3432 DataNode
9371 Jps
3518 SecondaryNameNode
(2)启动yarn
注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。
sbin/start-yarn.sh
2)集群基本测试
(1)上传文件到集群
上传小文件
bin/hdfs dfs –mkdir –p /user/atguigu/tmp/conf
bin/hdfs dfs –put etc/hadoop/*-site.xml /user/atguigu/tmp/conf上传大文件
[atguigu@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -put /opt/software/hadoop-2.7.2.tar.gz /user/atguigu/input
(2)上传文件后查看文件存放在什么位置
文件存储路径
[atguigu@hadoop103 subdir0]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0查看文件内容
[atguigu@hadoop108 subdir0]$ cat blk_1073741825
hadoop
atguigu
atguigu
(3)拼接
-rw-rw-r--. 1 atguigu atguigu 134217728 5月 23 16:01 blk_1073741836
-rw-rw-r--. 1 atguigu atguigu 1048583 5月 23 16:01 blk_1073741836_1012.meta
-rw-rw-r--. 1 atguigu atguigu 63439959 5月 23 16:01 blk_1073741837
-rw-rw-r--. 1 atguigu atguigu 495635 5月 23 16:01 blk_1073741837_1013.meta
[atguigu@hadoop107 subdir0]$ cat blk_1073741836>>tmp.file
[atguigu@hadoop107 subdir0]$ cat blk_1073741837>>tmp.file
[atguigu@hadoop107 subdir0]$ tar -zxvf tmp.file(4)下载
[atguigu@hadoop107 hadoop-2.7.2]$ bin/hadoop fs -get /user/atguigu/input/hadoop-2.7.2.tar.gz
3)集群性能测试
- 写海量数据
- 读海量数据
(9)Hadoop启动停止方式
1)各个服务组件逐一启动
(1)分别启动hdfs组件
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
(2)启动yarn
yarn-daemon.sh start|stop resourcemanager|nodemanager
2)各个模块分开启动(配置ssh是前提)常用
(1)整体启动/停止hdfs
start-dfs.sh
stop-dfs.sh(2)整体启动/停止yarn
start-yarn.sh
stop-yarn.sh3)全部启动(不建议使用)
start-all.sh
stop-all.sh
(11)配置集群常见问题
1)防火墙没关闭、或者没有启动yarn
INFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:8032
2)主机名称配置错误
3)ip地址配置错误
4)ssh没有配置好
5)root用户和atguigu两个用户启动集群不统一
6)配置文件修改不细心
7)未编译源码
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/05/22 15:38:58 INFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:80328)datanode不被namenode识别问题
Namenode在format初始化的时候会形成两个标识,blockPoolId和clusterId。新的datanode加入时,会获取这两个标识作为自己工作目录中的标识。 一旦namenode重新format后,namenode的身份标识已变,而datanode如果依然持有原来的id,就不会被namenode识别。 解决办法,删除datanode节点中的数据后,再次重新格式化namenode。
Hadoop系列005-Hadoop运行模式(下)的更多相关文章
- Unity非运行模式下实现动画播放/回退工具
实现效果 核心功能 支持选定模型(带Animator)在非运行模式下,播放/暂停/停止动作. 支持动作单帧前进,单帧回退(帧时间默认0.05f,可以代码设置). 支持滚动条拖拽,将动作调整到指定时间. ...
- Hadoop入门 完全分布式运行模式-准备
目录 Hadoop运行环境 完全分布式运行模式(重点) scp secure copy 安全拷贝 1 hadoop102上的JDK文件推给103 2 hadoop103从102上拉取Hadoop文件 ...
- Hadoop入门 完全分布式运行模式-集群配置
目录 集群配置 集群部署规划 配置文件说明 配置集群 群起集群 1 配置workers 2 启动集群 总结 3 集群基本测试 上传文件到集群 查看数据真实存储路径 下载 执行wordcount程序 配 ...
- 安装Hadoop系列 — 安装Hadoop
安装步骤如下: 1)下载hadoop:hadoop-1.0.3 http://archive.apache.org/dist/hadoop/core/hadoop-1.0.3/ 2)解压文 ...
- Tomcat系列(8)——Tomcat运行模式连接数和线程池
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据:然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Reques ...
- 【原】Spark不同运行模式下资源分配源码解读
版权声明:本文为原创文章,未经允许不得转载. 复习内容: Spark中Task的提交源码解读 http://www.cnblogs.com/yourarebest/p/5423906.html Sch ...
- sql server 备份与恢复系列三 简单恢复模式下的备份与还原
一.概述 前面讲了备份的一些理论知识,这篇开始讲在简单恢复模式下的备份与还原.在简单模式下是不能做日志备份的,发生灾难后,数据库最后一次备份之后做的数据修改将是全部丢失的,所以在生产环境下,数据又很重 ...
- 基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建
1. 介绍 在过去几年中,神经网络已经有了很壮观的进展,现在他们几乎已经是图像识别和自动翻译领域中最强者[1].为了从海量数据中获得洞察力,需要部署分布式深度学习.现有的DL框架通常需要为深度学习设置 ...
- Hadoop框架:集群模式下分布式环境搭建
本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境配置 1.三台服务 准备三台Centos7服务,基础环境从伪分布式环境克隆过来. 133 hop01,134 hop02,136 ...
- hadoop系列(一)window10下hadoop安装
风闻win10不需要cygwin就能用hadoop了,赶紧试试. 去官网下载hadoop-2.8.3,然后去 https://github.com/steveloughran/winutils 下载h ...
随机推荐
- web页面测试
一.Web的功能测试 1.超链接测试 a.链接与链接的说明文字要匹配 (注:也可以是图片) b.链接的文字要描述正确 c.链接的文字要精简有效 d.链接 ...
- WinForm时间选择控件(DateTimePicker)如何选择(显示)时分秒
C# Windows窗体应用中,用到时间选择控件DateTimePicker,发现不能选择时分秒,难道要自己写一个控件?! 答案是否定的,通过属性修改是可以选择时间的,DateTimePicker完全 ...
- 解析PHP程序员需要掌握的必备技能
转自:http://www.php100.com/html/php/lei/2013/0904/4199.html 作为PHP的爱好者,如果你想加入PHP程序的世界,一定要做好充分的准备.建议大家阅读 ...
- python一键刷屏
#当按键q的时候,自动输入 "大家好!"并回车键发送! from pynput import keyboard from pynput.keyboard import Key, C ...
- Netty 学习 一、初识Netty【原创】
在过去几年的工作和学习中,比较关注高层次的应用开发,对底层探究较少.实现Web应用的开发,主要依赖Tomcat.Apache等应用服务器,程序员无需了解底层协议,但同样限制了应用的性能和效率.现在开始 ...
- 【HTTP原理】TCP/IP三次握手和四次挥手
HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol),是web联网的基础,也是手机联网常用的协议之一,http协议是建立在TCP协议之上的一种应用. H ...
- 如何解决开机出现Missing operating system的故障
刚刚一哥们火急火燎的来找我,说他的笔记本开机出现一行字,进不了系统,好可怕,里面存了好多资料呢,让我给他看看,看能不能整好.看的出来,把他吓坏了.我开玩笑问他是不是遇到勒索的了,显示的那句话是不是&q ...
- grpc.go
package,,), etcd.WithPrefix(), etcd.WithPrevKV()} gw.wch = gw.c.Watch(gw.ctx, gw.target, opts... ...
- BZOJ_1100_[POI2007]对称轴osi_KMP+计算几何
BZOJ_1100_[POI2007]对称轴osi_KMP+计算几何 Description FGD小朋友——一个闻名遐迩的年轻数学家——有一个小MM,yours.FGD小朋友非常喜欢他的MM,所以他 ...
- BZOJ_2962_序列操作_线段树
Description 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问 ...