hadoop的安装和配置(三)完全分布式模式
博主会用三篇文章为大家详细说明hadoop的三种模式:
完全分布模式
完全分布式模式:
前面已经说了本地模式和伪分布模式,这两种在hadoop的应用中并不用于实际,因为几乎没人会将整个hadoop集群搭建在一台服务器上(hadoop主要是围绕:分布式计算和分布式存储,如果以一台服务器做,那就完全违背了hadoop的核心方法)。简单说,本地模式是hadoop的安装,伪分布模式是本地搭建hadoop的模拟环境。(当然实际上并不是这个样子的,小博主有机会给大家说!)
那么在hadoop的搭建,其实真正用于生产的就是完全分布式模式:
思路简介
域名解析
ssh免密登陆
java和hadoop环境
配置hadoop文件
复制主节点到其他节点
格式化主节点
hadoop搭建过程+简介
在搭建完全分布式前大家需要了解以下内容,以便于大家更好的了解hadoop环境:
1.hadoop的核心:分布式存储和分布式计算(用官方的说法就是HDFS和MapReduce)
2.集群结构:1+1+n 集群结构(主节点+备用节点+多个从节点)
3.域名解析:这里为了方便,我们选择修改/etc/hosts实现域名解析(hadoop会在.../etc/hadoop/salves下添加从节点,这里需要解析名,当然你也能直接输入ip地址,更简单)
4.hadoop的命令发放,需要从ssh接口登录到其他服务器上,所以需要配置ssh免密登陆
5.本文采取1+1+3 集群方式:域名为:s100(主),s10(备主),s1,s2,s3(从)
一:配置域名解析
主——s100:
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.68 s100
192.168.1.108 s1
192.168.1.104 s2
192.168.1.198 s3
192.168.1.197 s10

将s100上的/etc/hosts拷贝到其他hadoop的集群服务器上。例如:
将s100的/etc/hosts拷贝到s1上
[root@localhost ~]# scp /etc/hosts root@192.168.1.108:/etc/hosts
The authenticity of host '192.168.1.108 (192.168.1.108)' can't be established.
RSA key fingerprint is dd:64:75:5f:96:11:07:39:a3:fb:aa:3c:30:ae:59:82.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.108' (RSA) to the list of known hosts.
root@192.168.1.108's password:
hosts 100% 246 0.2KB/s 00:00

将所有服务器的域名解析配置完成,进行下一步
二:配置ssh免密码登录
备注:考虑到有的小伙伴可能没有openssh-server(ssh服务)【百度一下帮大家搜索了一下,总结如下】——小博主是不是很暖呢?
Ubuntu等——ssh:sudo apt-get install openssh-server
Redhat等——ssh:yum install openssh-server
主——s100:
ssh生成相应密钥对:id_rsa私钥和id_rsa.pub公钥
[root@localhost ~]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a4:6e:8d:31:66:e1:92:04:37:8e:1c:a5:83:5e:39:c5 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| o.=. |
| o BoE |
|. =+o . . |
|. .o.o + |
| . o B S |
| = = |
| + . |
| . |
| |
+-----------------+
[root@localhost ~]# cd /root/.ssh/
[root@localhost .ssh]# ls
id_rsa id_rsa.pub known_hosts
默认是存在/当前user/.ssh(/root/.ssh或者/home/user/.ssh)下的!

有了密钥对:将id_rsa.pub加到授权中:
[root@localhost .ssh]# cat id_rsa.pub >> authorized_keys(/root/.ssh下)
[root@localhost .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts

备注:
authorized_keys的权限可能会限制免密登陆
试一下是否本地免密登陆设置成功:
[root@localhost .ssh]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is 9e:e0:91:0f:1f:98:af:1a:83:5d:33:06:03:8a:39:93.
Are you sure you want to continue connecting (yes/no)? yes(第一次登陆需要确定)
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Last login: Tue Dec 26 19:09:23 2017 from 192.168.1.156
[root@localhost ~]# exit
logout
Connection to localhost closed.

ok!没有问题,那么配置其他服务器,其实只需要把本机s100的id_rsa.pub复制到其他服务器上就可以了!
这里就选择ssh-copy-id命令传送到其他服务器上(小博主这可不是偷懒!有命令就应该拿过来!)
[root@localhost .ssh]# ssh-copy-id root@s1(s1是主机地址,这里提醒大家一下,因为有人因为这个问题问过我╭(╯^╰)╮)
The authenticity of host 's1 (192.168.1.108)' can't be established.
RSA key fingerprint is dd:64:75:5f:96:11:07:39:a3:fb:aa:3c:30:ae:59:82.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 's1' (RSA) to the list of known hosts.
root@s1's password:
Now try logging into the machine, with "ssh 'root@s1'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.

登录了一下,没有问题
1 [root@localhost .ssh]# ssh s1
Last login: Wed Dec 27 18:50:12 2017 from 192.168.1.156
将剩余的配置完成!
有对于ssh免密登陆不清楚的小伙伴请移步下面的链接:
主节点
三:配置java环境和安装hadoop(hadoop环境)
备注:这里小伙伴必须要知道的是,不管hadoop的主节点还是从节点甚至说备主节点,他们的java环境和hadoop环境都一样,所以我们只需要配置完一台服务器,就完成了所有的配置过程
因为完全分布模式也是在本地模式的基础上配置的,所以我们首先配置本地模式:
完全分布式模式 = 本地模式 + 配置文件
java环境和hadoop的安装等过程就是前面所说的本地模式了,这里就不多说了:
四:配置内容:
备注:对于配置文件以后会有时间会单独写一篇相关的文档
主要修改以下五个文件:
hadoop的配置文件:/usr/local/hadoop/etc/hadoop
[root@localhost hadoop]# cd /usr/local/hadoop/etc/hadoop
[root@localhost hadoop]# ls
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml4
slaves

配置 core-site.xml:
主要:指定主节点
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s100/</value>
</property>
#临时文件
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop</value>
</property>
</configuration>

配置hdfs-site.xml:
主要:指定备份数量
<configuration>
#默认备份数为3,如果采取默认数,那么slaves不能少于备份数
<property>
<name>dfs.replication</name>
<value>2</value>#备份数
</property> #备主
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>s10:50000</value>
</property> <property>
<name>dfs.namenode.name.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/name</value>
</property>
</configuration>

配置mapred-site.xml:
主要:指定资源管理yran方法
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

配置yarn-site.xml:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s100</value>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

配置slaves:
s1
s2
s3

五:scp-java环境和hadoop配置文件(hadoop环境)
做到这里,基本就完成了,现在就把主节点的所以配置都放到从节点上!
[root@localhost ~]# scp -r /usr/local/java root@s1:/usr/local/
复制java
scp -r /usr/local/hadoop root@s1:/usr/local/
复制hadoop
[root@localhost ~]# scp /etc/profile root@s1:/etc/profile
环境变量
登录到s1中执行source
[root@localhost ~]# ssh s1
Last login: Wed Dec 27 23:18:48 2017 from s100
[root@localhost ~]# source /etc/profile
s1配置完成,其他的服务器一样!
六:格式化主节点
[root@localhost ~]# hadoop namenode -format
启动hadoop:
start-all.sh
关闭hadoop:
stop-all.sh
jps查询进程信息
主节点:
[root@localhost ~]# jps
30996 Jps
30645 NameNode
30917 ResourceManager
2主节点:
[root@localhost ~]# jps
33571 Jps
33533 SecondaryNameNode
从节点:
[root@localhost ~]# jps
33720 Jps
33691 NodeManager
33630 DataNode
本文版权声明:
本文作者:魁·帝小仙
博文主页地址:http://www.cnblogs.com/dxxblog/
欢迎对小博主的博客内容批评指点,如果问题,可评论或邮件联系(2335228250@qq.com)
欢迎转载,转载请在文章页面明显位置给出原文链接,谢谢
hadoop的安装和配置(三)完全分布式模式的更多相关文章
- Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)
一.准备 1.1创建hadoop用户 $ sudo useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash作为shell $ sudo pass ...
- Mahout0.9安装与配置(完全分布式模式下运行)
安装Mahout之前,一定要把hadoop装好,hadoop的安装方法可以参考我的前一篇随笔,我安装的是hadoop2.7.0,具体方法在此不做介绍. 1.首先下载相应版本的Mahout: axel ...
- cdh版本的zookeeper安装以及配置(伪分布式模式)
需要的软件包:zookeeper-3.4.5-cdh5.3.6.tar.gz 1.将软件包上传到Linux系统指定目录下: /opt/softwares/cdh 2.解压到指定的目录:/opt/mo ...
- Ubuntu下伪分布式模式Hadoop的安装及配置
1.Hadoop运行模式Hadoop有三种运行模式,分别如下:单机(非分布式)模式伪分布式(用不同进程模仿分布式运行中的各类节点)模式完全分布式模式注:前两种可以在单机运行,最后一种用于真实的集群环境 ...
- hadoop的安装和配置(二)伪分布模式
博主会用三篇文章为大家详细的说明hadoop的三种模式: 本地模式 伪分布模式 完全分布模式 伪分布式模式: 这篇为大家带来hadoop的伪分布模式: 从最简单的方面来说,伪分布模式就是在本地模式上修 ...
- Linux中Hadoop的安装与配置
一.准备 1,配通网络 ping www.baidu.com 之前安装虚拟机时配过 2,关闭防火墙 systemctl stop firewalld systemctl disable firewal ...
- ubuntu在虚拟机下的安装 ~~~ Hadoop的安装及配置 ~~~ Hdfs中eclipse的安装
前言 Hadoop是基于Java语言开发的,具有很好跨平台的特性.Hadoop的所要求系统环境适用于Windows,Linux,Mac系统,我们推荐选择使用Linux或Mac系统.而Linux系统则 ...
- Hadoop(2)-CentOS下的jdk和hadoop的安装与配置
准备工作 下载jdk8和hadoop2.7.2 使用sftp的方式传到hadoop100上的/opt/software目录中 配置环境 如果安装虚拟机时选择了open java,请先卸载 rpm -q ...
- VMware网络配置三种网络模式(桥接、NAT、Host-only)
VMware网络配置三种网络模式(桥接.NAT.Host-only) 一.虚拟安装后三种网络模式显示 当安装好后,的“虚拟网络编辑器”中也存在三种模式,分别对应:桥接-VMnet0.Host-only ...
随机推荐
- QQ互联申请及配置
今天要说的只是针对QQ互联的操作,其他的互联请参考相关网站. 第一步:需要申请API接口的两码 自行登录QQ互联https://connect.qq.com/index.html,然后按照要求申请就O ...
- 运行期以索引获取tuple元素-C++17
//运行期以索引获取tuple元素-C++17 //需支持C++17及以上标准的编译器,VS2017 15.5.x.CodeBlocks 16.01 gcc 7.2 //参见:http://purec ...
- replace深入
var b = 0; var arr = []; str = str.replace(/J/g,function(){ var args = arguments; b++; arr.push(args ...
- Android开发之漫漫长途 Ⅷ——Android Binder(也许是最容易理解的)
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- opencv批处理提取图像的特征
____________________________________________________________________________________________________ ...
- Swift开发教程--使用Storyboard进行界面跳转
使用storyboard结合代码来做确实能够给开发带来非常多的便利. 在实践的过程中,我们常常会遇到界面的跳转问题. 通过控件和界面的建立的"连接"就能够了. 假设是navigat ...
- android apk 的root 权限和USB adb 权限的差别
USB adb 权限是指,当adb 连接手机时,手机中的守护进程adbd 的权限为root 权限,从而它的子进程也具有root 权限.通常假设adb shell 看到是: Android 4.0 以后 ...
- 通过Graph 浏览器体验Microsoft Graph
作者:陈希章 发表于 2017年3月18日 上一篇介绍了Microsoft Graph的基本概念,接下来我们快速体验一下Microsoft Graph到底能做什么? 为了帮助开发人员直观和快速体验Mi ...
- python decorator 进阶
上一篇文章开始的时候提到 “一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者参数)” 有一般情况,就有特殊情况.第一种特殊情况:装饰器可能也是一个类:第二种特殊 ...
- Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)
我们经常使用github上的开源项目,使用步骤也很简单 比如: compile 'acffo.xqx.xwaveviewlib:maven:1.0.0' 这里就学习一下如何将自己的类库做出这种可以供他 ...