搭建Hadoop2.7.1的分布式集群
Hadoop 2.7.1 (2015-7-6更新),hadoop的环境配置不是特别的复杂,但是确实有很多细节需要注意,不然会造成许多配置错误的情况。尽量保证一次配置正确防止反复修改。
网上教程有很多关于Hadoop配置的,但是每一个教程都对应了一个版本信息,有一些教程也存在很大的问题,配置环境,系统环境都没说清楚。在此我将记录下来从零搭建Hadoop2.7.1的过程,以及搭建过程中所遇到的一些问题。
一 操作环境说明
1.1 :操作系统: window8.1
1.2 :虚拟机版本:VMware12
二 材料准备
2.1 ubuntu-14.10-desktop-amd64.iso (Ubuntu 光盘映像)
2.2 jdk-8u65-Linux-x64.gz (Java 环境包)
2.3 hadoop-2.7.1.tar.gz (Hadoop 环境包)
三 搭建开始
3.1 Vmware 创建虚拟机
根据Hadoop的调度规则,我们将使用VMware 12 加载 ubuntu….iso来创建三个Ubuntu 虚拟机。创建用典型安装即可,以下是虚拟机的一些信息
虚拟机1:Master Ubuntu 14.10 64bit
虚拟机2:Slave1 Ubuntu 14.10 64bit
虚拟机3:Slave2 Ubuntu 14.10 64bit
以下操作将需要在所有配置机器上进行
3.2 解压文件
将jdk-8u65-linux-x64.gz 和hadoop-2.7.1.tar.gz 拷贝到3台虚拟机的一个文件夹中。我这里拷贝到了Home/Download文件夹中, 然后右键选择 Extract Here. (当然也可以zxvf)
3.3 配置JAVA
把jdk-8u65-linux-x64 重命名为jdk-8u65-linux-x64.tar.gz 并右键Extract Here,生成文件jdk 1.8.0_65
打开终端输入命令:
sudo mkdir /usr/lib/jvm
- 1
sudo cp -r Downloads/jdk1.8.0_65 /usr/lib/jvm/
- 1
添加环境变量
sudo gedit /etc/profile
- 1
在末尾加上四行:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
- 1
输如命令使环境生效
source /etc/profile
输如命令查看环境是否配置成功
java –version
出现如上信息说明配置成功
3.4 SSH 安装以及配置
更新apt (由于是新系统可能会花一些时间)
sudo apt-get update
安装ssh
sudo apt-get install openssh-server
已有ssh或者安装成功了的输入命令
ps -e | grep ssh
如果用的是和我相同的ubuntu版本安装会遇到问题。安装过程中遇到404 Not Find(如果没有则跳过直接验证SSH)
下载sources.list 存入Home目录下输入命令覆盖原文件
sudo cp sources.list /etc/apt/sources.list
更行apt-get
sudo apt-get update
再次安装ssh
sudo apt-get install openssh-server
如遇到版本问题则参考以下命令安装
sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
验证SSH是否成功安装输入
ssh localhost
出现以下提示说明安装成功
生成密钥Pair
ssh-keygen –t rsa
输入后一直回车选择默认即可
mater主机中输入命令复制一份公钥到home中
cp .ssh/id_rsa.pub ~/id_rsa_master.pub
把master的home目录下的id_rsa_master.pub拷到slave1,slave2的home下
slave1和 slave2的home目录下分别输入命令
cat id_rsa_master.pub >> .ssh/authorized_keys
至此实现了mater对slave1, slave2的无密码登陆
以下配置将仅仅在master主机上进行
3.5 配置 Hadoop
(为了配置方便,将解压缩好的hadoop-2.7.1文件夹拷贝到home根目录下面)
在hadoop-2.7.1文件夹下创建文件,输入
mkdir hadoop-2.7.1/tmp
mkdir hadoop-2.7.1/hdfs
mkdir hadoop-2.7.1/hdfs/name
mkdir hadoop-2.7.1/hdfs/data
输入命令查看ip地址
ifconfig -a
eg. 我所使用的IP地址
虚拟机1:Master 192.168.152.128
虚拟机2:Slave1 192.168.152.129
虚拟机3:Slave2 192.168.152.130
修改hosts
sudo gedit /etc/hosts
具体IP地址由上面给出,可根据自己的配置情况自行调整
为了方便修改hostname
sudo gedit /etc/hostname
master 的改为 master
slave1 的改为 slave1
slave2 的改为 slave2
修改环境变量
cd ~/hadoop-2.7.1/
(1)hadoop-env.sh
gedit etc/hadoop/hadoop-env.sh
找到JAVA_HOME=… 一行修改为JavaHOME的路径
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65
(2)core-site.xml
gedit etc/hadoop/core-site.xml
- 1
在configuration标签中添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property> <property>
<name>hadoop.tmp.dir</name>
<value>file:/home/zhaoli/hadoop-2.7.1/tmp</value>
</property>
(3)mapred-site.xml
创建并编辑
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
gedit etc/hadoop/mapred-site.xml
- 2
在configuration标签中添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property> <property>
<name>hadoop.tmp.dir</name>
<value>file:/home/zhaoli/hadoop-2.7.1/tmp</value>
</property>
- 10
(4)hdfs-site.xml
gedit etc/hadoop/hdfs-site.xml
在configuration标签中添加
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/zhaoli/hadoop-2.7.1/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/zhaoli/hadoop-2.7.1/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
- 17
(5)yarn-site.xml
gedit etc/hadoop/yarn-site.xml
- 1
在configuration标签中添加
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
- 29
(6)slaves文件
gedit etc/hadoop/slaves
删除原有内容,根据配置修改,此处为
slave1
slave2
分发配置好的hadoop文件夹到slave1, slave2
前提是设置好ssh
scp -r hadoop-2.7.1 zhaoli@slave1:~/
scp -r hadoop-2.7.1 zhaoli@slave2:~/
格式化hdfs
进入hadoop home目录
bin/hdfs namenode-format
启动集群
sbin/start-all.sh
启动后分别在master, slave下输入jps查看进程
如上则说明启动成功
运行wordcount测试集群
进入hadoop home目录
在hdfs(分布式文件系统)中创建一个名为input的文件夹
bin/hadoop fs –mkdir /input
查看文件是否被创建
bin/hadoop fs –ls /
hadoop home 下创建一个inputfile 文件夹,并在inputfile里创建两个文件
in1.txt
Hello world hello hadoop
in2.txt
Hello Hadoop hello whatever
上传两个文件进input
bin/hadoop fs -put inputfiles/*.txt /input
查看输入文件是否传入
bin/hadoop fs -ls /input
- 1
用hadoop jar命令运行Hadoop自带的wordcount
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output
- 1
程序开始运行,成功后查看输出文件夹
bin/hadoop fs -ls /output
查看结果
bin/hadoop fs -cat /output/part-r-00000
- 1
- 1
至此hadoop分布式集群配置完成!
以上是对Hadoop的配置信息,希望能够尽可能的写得详细,但是终究不能概括所有的bug。之前也看了很多集群搭建的书和博客,还是遇到了很多困难,本次从零开始配置也是为了排除一些干扰,希望能够帮助到和我一样摸索前进的人吧。
转:http://blog.csdn.net/zl007700/article/details/50533675
参考:http://blog.csdn.net/se7en_q/article/details/47258007
搭建Hadoop2.7.1的分布式集群的更多相关文章
- Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群
一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1 准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考 ...
- # 从零開始搭建Hadoop2.7.1的分布式集群
Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...
- CentOS7.5搭建Hadoop2.7.6完全分布式集群
一 完全分布式集群搭建 Hadoop官方地址:http://hadoop.apache.org/ 1 准备3台客户机 1.2 关闭防火墙,设置静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略 ...
- Centos7.5搭建Hadoop2.8.5完全分布式集群部署
一.基础环境设置 1. 准备4台客户机(VMware虚拟机) 系统版本:Centos7.5 节点配置: 192.168.208.128 --Master 192.168.208.129 --Slave ...
- Docker中搭建Hadoop-2.6单机伪分布式集群
1 获取一个简单的Docker系统镜像,并建立一个容器. 1.1 这里我选择下载CentOS镜像 docker pull centos 1.2 通过docker tag命令将下载的CentOS镜像名称 ...
- 基于hadoop2.6.0搭建5个节点的分布式集群
1.前言 我们使用hadoop2.6.0版本配置Hadoop集群,同时配置NameNode+HA.ResourceManager+HA,并使用zookeeper来管理Hadoop集群 2.规划 1.主 ...
- 搭建hbase1.2.5完全分布式集群
简介 有一段时间,没写博客了,因为公司开发分布式调用链追踪系统,用到hbase,在这里记录一下搭建过程 1.集群如下: ip 主机名 角色 192.168.6.130 node1.jacky.com ...
- 超详细从零记录Hadoop2.7.3完全分布式集群部署过程
超详细从零记录Ubuntu16.04.1 3台服务器上Hadoop2.7.3完全分布式集群部署过程.包含,Ubuntu服务器创建.远程工具连接配置.Ubuntu服务器配置.Hadoop文件配置.Had ...
- 摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群
from https://my.oschina.net/ososchina/blog/856678 摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群 前言 最近在服务器上搭建了 ...
随机推荐
- vue 导出excel表格
对于涉及到数据比较多的管理后台导出excel 表格这个需求就非常的常见了 所以? vue 怎么到处excel表格的? 有两种办法 1:请求接口后台直接给你的是excel文件,你需要做的就是怎么接收ex ...
- 第 7 章 多主机管理 - 047 - 管理 Machine
管理 Machine Docker Machine 则很简单 docker-machine env host1 显示访问 host1 需要的所有环境变量: 根据提示,执行 eval $(docker- ...
- 实例对比 hibernate, spring data jpa, mybatis 选型参考
原文: 最近重构以前写的服务,最大的一个变动是将mybatis切换为spring data jpa,切换的原因很简单,有两点:第一.它是spring的子项目能够和spring boot很好的融合,没有 ...
- WPF经典编程模式-MVVM示例讲解
https://www.cnblogs.com/lvdongjie/p/5515962.html
- Android中SharedPerforences的简单使用示例 --Android基础
SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedP ...
- 机器学习基石(台湾大学 林轩田),Lecture 2: Learning to Answer Yes/No
上一节我们跟大家介绍了一个具体的机器学习的问题,以及它的内容的设定,我们今天要继续下去做什么呢?我们今天要教大家说到底我们怎么样可以有一个机器学习的演算法来解决我们上一次提到的,判断银行要不要给顾客信 ...
- Web3.js 0.20.x API 中文版翻译
文档原始链接为:https://web3.learnblockchain.cn/0.2x.x/,欢迎大家前往查阅,本文只是节选开头部分的介绍及API列表索引,以下为翻译正文: 为了开发一个基于以太坊的 ...
- a gcc 4.2.4 bug(被stos指令累加后%edi作为参数的)
a gcc 4.2.4 bug(被stos指令累加后%edi作为参数的) * * Ok, now we can initialize the rest of the tty devices and c ...
- dijkstra优化
1, 桶优化最短路, 时间复杂度$O(m+n)$, 空间$O(C)$, $C$为最短路长度 const int N = 1e6+10; int n, m; struct _ {int to,w;}; ...
- 基于spring的web项目启动时预加载数据到ServletContext
1.要在web启动时预加载数据到ServletContext,实现方法有很多,一种比较简单的方案就是: 1)新建一个bean,定义其初始化方法: <bean id="beanId&qu ...