Hadoop 集群搭建 mark
Hadoop 集群搭建
目标
在3台服务器上搭建 Hadoop2.7.3 集群,然后测试验证,要能够向 HDFS 上传文件,并成功运行 mapreduce 示例程序
搭建思路
(1)准备基础设施
准备3台服务器,分别命名为 master、slave1、slave2
互相配置为 SSH 免密码登录,并都安装好 JAVA 环境
(2)安装配置 hadoop
在 master 上下载解压 hadoop,修改相应配置文件,包括:
core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves
配置文件比较多,但也比较好理解
core-site.xml 是核心配置,需要为 hadoop 指定基本配置信息
hdfs 和 mapreduce 是核心构成,自然要配置相应的 hdfs-site.xml 和 mapred-site.xml
mapreduce 用到了 yarn 框架,所以也要设置对应的配置文件 yarn-site.xml
还需要在 slaves 中添加从节点的IP
配置完成后,把 master 上的 hadoop 目录复制到 slave1 slave2
(3)启动 hadoop
在 master 中进行 hdfs 初始化,执行启动命令,打开相应网页查看状态信息
搭建过程
准备基础设施
(1)为3台服务器设置名称
修改每台服务器的 /etc/hosts,添加
192.168.31.164 master
192.168.31.242 slave1
192.168.31.140 slave2
(改为自己服务器的IP)
(2)SSH无密码登陆
在每台服务器上都执行以下命令
$ ssh-keygen
(执行后会有多个输入提示,不用输入任何内容,全部直接回车即可)
$ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@master
$ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@slave1
$ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@slave2
注:JAVA环境的安装配置没做介绍,请自己准备好
安装配置 hadoop
(1)安装
在 master 中执行
$ cd /home
$ wget http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
$ tar -xzf hadoop-2.7.3.tar.gz
$ mv hadoop-2.7.3 hadoop
$ cd hadoop
$ mkdir tmp hdfs
$ mkdir hdfs/data hdfs/name
(2)配置
在 master 中执行
修改 /home/hadoop/etc/hadoop/core-site.xml
在 <configuration> 块儿中添加:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
修改 /home/hadoop/etc/hadoop/hdfs-site.xml
在 <configuration> 块儿中添加:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/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>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
修改 /home/hadoop/etc/hadoop/mapred-site.xml
这个文件默认不存在,需要从 mapred-site.xml.template 复制过来
$ cp mapred-site.xml.template mapred-site.xml
在 <configuration> 块儿中添加:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
修改 /home/hadoop/etc/hadoop/yarn-site.xml
在 <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>
修改 /home/hadoop/etc/hadoop/slaves
删除已有内容,添加:
slave1
slave2
修改 /home/hadoop/etc/hadoop/hadoop-env.sh
找到 export JAVA_HOME=${JAVA_HOME},改为自己JAVA_HOME的绝对路径
(3)复制 hadoop 到 slave1,slave2
在 master 上执行
$ scp -r /home/hadoop slave1:/home
$ scp -r /home/hadoop slave2:/home
注意:如果各台服务器中JAVA_HOME位置不同,记得对 hadoop-env.sh 进行相应修改
(4)设置 hadoop 环境变量
在每台服务器上都执行:
$ vim ~/.bashrc
添加:
export PATH=$PATH:/home/hadoop/bin:/home/hadoop/sbin
保存退出
$ source ~/.bashrc
启动 hadoop
在master启动hadoop,从节点会自动启动
初始化
$ hdfs namenode -format
启动
$ hadoop-daemon.sh start namenode
$ hadoop-daemon.sh start datanode
$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver
检查
查看状态,在3台服务器上分别执行
$ jps
浏览器中访问:
http://master ip:50070/
http://master ip:8088/
可以正常访问的话,可以说明集群启动成功了,但不一定可以正常运行,还需要下面的实际验证
测试验证
(1)hdfs 操作
创建目录
$ hdfs dfs -mkdir -p /user/hadoop/input
上传文件,把现有的一些配置文件上传到刚刚创建的目录中
$ hdfs dfs -put /home/hadoop/etc/hadoop/kms*.xml /user/hadoop/input
如果没有返回错误信息,说明操作成功
访问 http://master ip:50070/,在文件浏览页面查看
(2)mapreduce 操作
hadoop 安装包中提供了一个示例程序,我们可以使用它对刚刚上传的文件进行测试
$ hadoop jar /home/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /user/hadoop/input /user/hadoop/output 'dfs[a-z.]+'
注:在执行过程中,如果长时间处于 running 状态不动,虽然没有报错,但实际上是出错了,后台在不断重试,需要到 logs 目录下查看日志文件中的错误信息
环境搭建完成,内容较长,感谢阅读,希望对想要搭建hadoop环境的朋友有点帮助
点击“阅读原文”查看 文章列表
人赞赏
Hadoop 集群搭建 mark的更多相关文章
- Hadoop 集群搭建
Hadoop 集群搭建 2016-09-24 杜亦舒 目标 在3台服务器上搭建 Hadoop2.7.3 集群,然后测试验证,要能够向 HDFS 上传文件,并成功运行 mapreduce 示例程序 搭建 ...
- Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!)
Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!) 一.JDK的安装 安装位置都在同一位置(/usr/tools/jdk1.8.0_73) jdk的安装在克隆三台机器的时候可以提前安装 ...
- Hadoop集群搭建安装过程(二)(图文详解---尽情点击!!!)
Hadoop集群搭建安装过程(二)(配置SSH免密登录)(图文详解---尽情点击!!!) 一.配置ssh无密码访问 ®生成公钥密钥对 1.在每个节点上分别执行: ssh-keygen -t rsa(一 ...
- Hadoop集群搭建安装过程(一)(图文详解---尽情点击!!!)
Hadoop集群搭建(一)(上篇中讲到了Linux虚拟机的安装) 一.安装所需插件(以hadoop2.6.4为例,如果需要可以到官方网站进行下载:http://hadoop.apache.org) h ...
- 大数据 --> Hadoop集群搭建
Hadoop集群搭建 1.修改/etc/hosts文件 在每台linux机器上,sudo vim /etc/hosts 编写hosts文件.将主机名和ip地址的映射填写进去.编辑完后,结果如下: 2. ...
- Linux环境下Hadoop集群搭建
Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...
- Hadoop(二) HADOOP集群搭建
一.HADOOP集群搭建 1.集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 Na ...
- 1.Hadoop集群搭建之Linux主机环境准备
Hadoop集群搭建之Linux主机环境 创建虚拟机包含1个主节点master,2个从节点slave1,slave2 虚拟机网络连接模式为host-only(非虚拟机环境可跳过) 集群规划如下表: 主 ...
- 三节点Hadoop集群搭建
1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode.slavenode1和slavenode2.该过程参考上一篇博文CentOS6.5安装配置详解 2 ...
随机推荐
- Manthan, Codefest 16 D. Fibonacci-ish 暴力
D. Fibonacci-ish 题目连接: http://www.codeforces.com/contest/633/problem/D Description Yash has recently ...
- MATLAB/Octave warning: mx_el_eq: automatic broadcasting operation applied 错误分析
在进行对一个mXn的矩阵与mX1的矩阵进行==比较时,原意是想让mXn的矩阵的每一行分别与mX1的矩阵每一行进行比较,得到的结果虽然是对的,但会报一个warning: mx_el_eq: automa ...
- HDU 4664 Triangulation(2013多校6 1010题,博弈)
Triangulation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 使用BusyBox制作linux根文件系统(CramFS+mdev)
转:http://www.360doc.com/content/10/0428/11/496343_25245348.shtml 操作系统:Ubuntu9.04 内核版本:linux-2.6.24.7 ...
- 如何在form初始化时自动隐藏FOLDER列
方法1:直接设定PROMPT列和数据列ITEM的VISIBLE属性为No 方法2:在WHEN-NEW-FORM-INSTANCE触发器里: l_old_itm := :system.cursor_it ...
- appium+python自动化50-生成定位对象模板templet(jinja2)
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以 ...
- __argc和__argv变量
微软提供了全局变量__argc 和__argv.这两个变量由Windows在运行时自动赋值.其中__argv有ASCII和Unicode版本,分别为__argv和 __wargv.要使用这两个全局变量 ...
- iOS:CALayer锚点的使用
CALayer层的位置主要和position和anchorPoint有关.其中它们在一起才能决定层在视图中的具体位置. @property CGPoint position; //位置 ...
- 各种语言性能(CPU密集型程序)比较
都进行Fib数列计算,计算到n=40的计算时间: 注意:开始,我以为上图中的第二列就是代表C++的性能.但是现在发现,完全不正确. 如果你使用同样的抽象和同样的逻辑去实现同样的代码,C和C++的性能几 ...
- 【笔记】关于jq $.ajax 函数 success回调函数不能赋正确值或返回正确值的问题
最近在一个项目里面打算实现如下功能: 当我注册账号的时候当输入账号完毕后输入框失焦时执行一个 ajax 请求,验证账号是否被注册,并未这个输入框的 isCorrect属性赋值,如果没有被注册 isCo ...