Hadoop 集群搭建

2016-09-24 杜亦舒

目标

在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环境的朋友有点帮助

转载于:https://www.cnblogs.com/jun1019/p/6260540.html

Hadoop 集群搭建相关推荐

  1. 好程序员大数据笔记之:Hadoop集群搭建

    好程序员大数据笔记之:Hadoop集群搭建在学习大数据的过程中,我们接触了很多关于Hadoop的理论和操作性的知识点,尤其在近期学习的Hadoop集群的搭建问题上,小细节,小难点拼频频出现,所以,今天 ...

  2. linux hadoop集群搭建,hadoop集群搭建

    hadoop集群搭建步骤 实验介绍 下面将要在三台linux虚拟机上搭建hadoop集群. 知识点 linux基本命令 集群安装 完成实验需要以下相关知识 解压命令 tar -zxvf XX.tar. ...

  3. Hadoop集群搭建(27)

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop集群搭建方式: 1.1    确定部署三个节点,分别是hadoop0,hadoop1,hadoop2. 其中had ...

  4. 大数据 -- Hadoop集群搭建

    Hadoop集群搭建 1.修改/etc/hosts文件 在每台linux机器上,sudo vim /etc/hosts 编写hosts文件.将主机名和ip地址的映射填写进去.编辑完后,结果如下: 2. ...

  5. 不看就亏系列!这里有完整的 Hadoop 集群搭建教程,和最易懂的 Hadoop 概念!| 附代码...

    作者 | chen_01_c 责编 | Carol 来源 | CSDN 博客 封图 | CSDN付费下载于视觉中国 hadoop介绍 Hadoop 是 Lucene 创始人 Doug Cutting, ...

  6. hadoop集群搭建 修改配置文件(三台主机都要配置)

    hadoop集群搭建      修改配置文件(三台主机都要配置) master 主机配置 1)hadoop-env.sh vim hadoop-env.sh 2)core-site.xml vim c ...

  7. Hadoop集群搭建之问题锦集

    **Hadoop集群搭建之问题锦集** 1.Centos7 ifconfig这个命令没找到的解决方法 yum -y install net-tools 2.修改文件的读写权限 chmod 777 /e ...

  8. 大数据Hadoop集群搭建

    大数据Hadoop集群搭建 一.环境 服务器配置: CPU型号:Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz CPU核数:16 内存:64GB 操作系统 版本:CentO ...

  9. Hadoop集群搭建(三台Linux服务器)

    Hadoop集群搭建(三台Linux服务器) 搭建之前注意的几点问题 环境以及版本 基本命令 Linux环境准备 首先安装Hadoop 配置集群分发脚本 克隆配置好的机器 Hadoop集群配置 第一步 ...

最新文章

  1. 2021年大数据HBase(十三):HBase读取和存储数据的流程
  2. Python collections 模块 namedtuple、Counter、defaultdict
  3. 助力5G行业应用扬帆启航,第二届5G毫米波产业高峰论坛圆满召开
  4. eclipse没有日志_IPFS技术最新进展:抵抗eclipse攻击的能力
  5. 浅谈O2O产品信息结构化
  6. C# Httpclient编程
  7. php不用于输出的函数,PHP常用函数和常见疑难问题解答
  8. 苹果AirPods 2预计将于3月25日发布 3月29日正式开卖
  9. 单链表java实现及相关操作(版本1)
  10. 基于大数据平台的毕业设计
  11. 2个74151实现16位数据选择器以及在Multisim的演示
  12. java main 参数解析_Java Main参数解析(Args4j)
  13. 猫与路由器的电源所需电压
  14. 微信登录(微信公众号授权)的开发(详解)
  15. 吐槽下Arcgis的二次开发
  16. 关于颜色HSL(色度、饱和度、亮度)
  17. [转]网易云音乐API分析
  18. 意图的分类及其应用场景
  19. 海海软件发布HHMeet Android安卓测试版- 加密保护Zoom视频会议-手机直播防翻录
  20. 深度学习数据标注_Lableme及标注文件的使用(以YOLO v3为例)

热门文章

  1. windows和linux下的spice客户端使用方法
  2. 数据库备份还原顺序关系(环境:Microsoft SQL Server 2008 R2)
  3. 《大数据,小时代,向移动互联网迁徙-2012上半年移动互联网数据分享》_DCCI
  4. POJ 3133 Manhattan Wiring (插头DP)
  5. GUI编程与CLI编程
  6. 数据库的dml、ddl和dcl的概念
  7. EF三种编程方式详细图文教程(C#+EF)之Database First
  8. 引用dll动态库,动态库中弹出对话框输入,将输入参数,作为变量继续调用。...
  9. 20145214 《Java程序设计》第3周学习总结
  10. PHP递归创建多级目录(一道面试题的解题过程)