搭建VM的虚拟机下hadoop集群环境
来源:互联网 发布:网络适应广电总局 编辑:程序博客网 时间:2024/05/19 10:55
前言
大家都知道,Hadoop的部署方式可分为
- 单机模式
- 伪分布式
- 完全分布式
本篇主要讲解的就是完全分布式。
搭建完全分布式的集群环境,需要多台的硬件设备,作为初学者,为了搭建集群去买多台电脑,多少有点不现实,所以这里我采用的是VM虚拟机,模拟搭建一个由三台机器组成的集群。
要想成功搭建hadoop
的分布式环境,需要具备安装和操作VM虚拟机
,使用Ubuntu
系统的基本命令,Linux
下安装Java
以及Hadoop
等相关技能。不过不会的话,也不用太担心,我会尽量把我的操作过程写得详细一点。
具体的搭建过程可以分为以下几个阶段:
- 安装虚拟机
- 安装和配置Ubuntu
- 安装和配置Java环境
- 安装和配置Hadoop
安装虚拟机
VMware Workstation 下载 http://rj.baidu.com/soft/detail/13808.html?ald
激活码百度一搜一大堆,这里就不写了,安装过程也比较简单,实在不会的,百度上也有图解的教程,请自行搜索。
安装和配置Ubuntu
Ubuntu 下载https://www.ubuntu.com/download
下面介绍如何在虚拟机中安装Ubuntu
操作系统,我们需要安装三台虚拟机,分别命名为Hadoop Master
(以下简称master
),Hadoop Slave1
(以下简称slave1
)和Hadoop Slave2
(以下简称slave2
),以下以安装master
为例
1、首先,打开安装好的虚拟机VMware Workstation 12 Pro
(以下简称VM)
2、依次点击 文件
→ 新建虚拟机
3、选择 自定义(高级)(C)
,点击 下一步
4、硬件的兼容性选择,使用默认的设置,直接点击 下一步
5、点击 浏览
,选择下载好的Ubuntu的iso文件,点击 下一步
6、填写安装信息,点击 下一步
7、命名虚拟机,为了方便我们后续识别,安装第一个系统时,我们命名使用Hadoop Master
(当我们安装第二个和第三个系统时分别使用Hadoop Slave1
和Hadoop Slave2
,用于表示第一个是主服务器,第二个和第三个属于从服务器),点击浏览,选择一个本机的空间稍微大一点的目录用于存放我们安装系统的物理文件,点击 下一步
8、处理器配置,根据自己机器的CPU情况来设置,比如我的是四核的,处理器数量就选择4
,处理器的核心数量使用默认的1
就行,点击 下一步
9、设置内存,注意,必须是4MB的倍数,根据自己机器的内存来设置。比如,我的PC主机内存是8G,我为每台虚拟机设置1.5G(1536MB)的内存,主机剩余3.5G内存,这样主机不卡,虚拟机内存也足够使用。原则上说,给虚拟机设置的内存总和不要超过PC主机的物理内存就行,只不过设置太高,主机就会变慢。
10、网络类型,这里选择使用桥接网络,因为我们需要主机与虚拟机与互联网,这三者都是通的,在安装的过程中,才不会遇到麻烦。
11、I/O控制器和磁盘类型,都使用默认的选项即可,点击 下一步
12、选择磁盘,选择创建新的虚拟磁盘,点击 下一步
13、指定磁盘容量,也就是设置虚拟机系统占用主机的物理空间的大小,使用默认值即可。
14、指定磁盘文件,默认即可,点击 下一步
15、点击 完成
,等待虚拟机系统安装完成,安装过程中,请保持网络畅通。
16、同理,安装另外两台虚拟机Hadoop Slave1
和Hadoop Slave2
,都安装好后,如下图
17、分别设置每台虚拟机的固定IP,保证虚拟机与虚拟机与主机之间都能够相互ping通。具体操作这里就不赘述了,网上资料有很多,如果是公司电脑,让网络管理员帮忙设置下,如果是自己的机器,看下自己的路由器的IP分配情况
18、我们要搭建一个由三台机器组成的集群,先配置虚拟机的hosts
和hostname
,以便虚拟机与虚拟机与主机之间不用使用IP,使用hostname
就可以相互识别,很方便。
- 1
- 2
- 3
- 1
- 2
- 3
以master为例,通过命令:
- 1
- 1
设置为master
,另外两台虚拟机分别设置为slave1
和slave2
- 1
- 1
三台虚拟机都设置成以下的配置
19、配置三台虚拟机之间的SSH
无密码登录
首先通过命令生成公匙:
- 1
- 1
将公匙添加到authorized_keys
文件中:
- 1
- 1
这样,localhost就可以无密码登录了,看下效果:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
同理,将公匙复制到slave1
和slave2
的authorized_keys
文件中,就可以让master
无密码登录slave1
和slave2
了。
通过命令远程复制:
- 1
- 2
- 1
- 2
分别到slave1
和slave2
机器上,添加master
的公匙信息到authorized_keys
文件中:
- 1
- 1
- 1
- 1
到master
上,测试一下效果:
同理:
- 在
slave1
生成公匙,然后复制到master
和slave2
的authorized_keys
文件中,这样slave1
就可以无密码登录master
和slave2
- 在
slave2
生成公匙,然后复制到master
和slave1
的authorized_keys
文件中,这样slave2
就可以无密码登录master
和slave1
以上就是三台虚拟机的SSH无密码登录配置方法,大家可以根据实际的使用情况来设置,并不一定非要三台都支持双向的无密码登录。
安装和配置Java环境
安装JDK: 下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1、以master
为例,下载完,解压,这些最好都在hadoop用户的根目录下执行,可以避免在其他目录没有权限的问题,解压完在移动到/usr/lib/jvm/jdk1.8.0_121
目录下面,这个不是必须的,大家也可以移到其他目录:
- 1
- 2
- 3
- 1
- 2
- 3
2、配置环境变量
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
将上面的内容添加到~/.bashrc
文件中,注意,JAVA_HOME
后面的路径改成自己的安装路径:
- 1
- 2
- 1
- 2
使用Java -version
命令查看版本,如果出现以下信息,说明配置成功了:
同样,也把slave1
和slave2
安装和配置好java
环境
安装和配置Hadoop
hadoop下载 http://hadoop.apache.org/releases.html
hadoop
集群中每台机器的配置都基本相同,我们先配置好master
,然后复制到slave1
和slave2
上
1、下载并解压,并重命名目录为hadoop
,移动到/usr
目录下去
- 1
- 2
- 1
- 2
- 1
- 1
2、创建几个关键目录,以备后用:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
3、修改配置文件:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.1 修改hadoop-env.sh
,将JAVA_HOME
后面填写上自己的JDK路径
3.2 修改yarn-env.sh
,将JAVA_HOME
后面填写上自己的JDK路径
3.3 修改slaves
,填写所有的slave
节点
3.4 修改core-site.xml
,说明:
hdfs://master:8020
中的master
是hostname
,如果你们设置的跟我的不一样请修改file:/home/hadoop/tmp
就是刚才第2步设置的目录,如果你们设置的跟我的不一样请修改hadoop.proxyuser.hadoop.hosts
和hadoop.proxyuser.hadoop.groups
中的第二个hadoop
换成自己的用户名
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
3.5 修改hdfs-site.xml
,说明:
master:9001
中的master
是hostname
,如果你们设置的跟我的不一样请修改file:/home/hadoop/dfs/name
和file:/home/hadoop/dfs/data
就是刚才第2步设置的目录,如果你们设置的跟我的不一样请修改
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
3.6 修改mapred-site.xml
,说明:其中的master
是hostname
,如果你们设置的跟我的不一样请修改
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3.7 修改yarn-site.xml
,说明:其中的master
是hostname
,如果你们设置的跟我的不一样请修改
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
4、master
配置完成,我们把hadoop
整个目录复制到slave1
和slave2
上去
- 1
- 2
- 1
- 2
5、使用ssh分别到slave1
和slave2
机器上将hadoop
目录移动到和master相同的目录中去
- 1
- 2
- 1
- 2
- 1
- 2
- 1
- 2
6、添加hadoop
路径到环境变量中
- 1
- 2
- 1
- 2
添加以下红框的内容,如果你们的hadoop路径和我的不一样,请修改
7、启动hadoop
格式化namenode
- 1
- 1
启动hdfs
- 1
- 1
启动yarn
- 1
- 1
8、查看进程
先看master
的:
- 1
- 1
到slave1
上查看进程:
- 1
- 2
- 1
- 2
也可以到浏览器中输入http://master:8088/
查看:
ps:
1. 安装3个客户机
sudo passwd root密码:123456
2. etc/hostname 修改为master、slavel1、slavel2
3. sudo gedit etc/hosts和 sudo geditetc/hosts~ 修改相应ip和hostname
三个主机各自(1)ssh-keygen -t dsa -P'' -f ~/.ssh/id_dsa
(2)cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
---》即可ssh localhost
4. 三个客户机ssh-keygen -t rsa
----》
cat ~/.ssh/id_rsa.pub | ssh -p 22 hadoop@slavel1 'cat>> ~/.ssh/authorized_keys'
至另外两台
- 搭建VM的虚拟机下hadoop集群环境
- VM下搭建hadoop集群
- VM虚拟机下配Eclipse+JDK+Tomcat+Hadoop环境搭建
- Hadoop集群环境搭建(虚拟机)
- 搭建Hadoop VM集群
- Windows下虚拟机搭建Hadoop集群
- 虚拟机下用CentOS7搭建Hadoop集群
- 虚拟机下ubuntu hadoop集群搭建
- Hadoop集群环境的搭建
- hadoop集群环境的搭建
- hadoop集群环境的搭建
- hadoop集群环境的搭建
- hadoop集群环境的搭建
- hadoop集群环境的搭建
- hadoop集群环境的搭建
- hadoop集群环境的搭建
- hadoop集群环境的搭建
- Hadoop集群环境的搭建
- 项目总结
- android Context
- Webstorm 添加 .vue 文件功能并支持高亮和ES6语法
- centos6安装redis
- Python标准库2 时间包
- 搭建VM的虚拟机下hadoop集群环境
- caioj1063:动态规划入门(一维一边推1:美元和马克)
- srcAdd.jsp用于解决java.lang.NoSuchMethodError
- Excel 设置数字以万为单位显示以更准确地表达数目
- stl-map/set
- Java_Proxy
- 学生信息管理系统的构建3--自定义类模板
- WebStorm ES6 语法支持设置
- Kaldi脚本分析(6)——解码图构建