(002)最近要研发一款数据传输服务的产品需要用到Hadoop集群,之前搭建过后来长时间不用就给忘记了,这次搭好来记录一下搭建方法与经验总结

Hadoop集群的搭建

原料:

  • VM虚拟机
  • JDK1.8
  • hadoop2.7.3

注:将jdk1.8.tar.gz和hadoop-2.7.3.tar.gz放在/opt/bigdata目录下(没有请自行创建)
附件:
链接:https://pan.baidu.com/s/1oII8j97sAEQDokE9kYJTzA
提取码:eau1

设计集群

以一主两从为例搭建集群环境,在VM虚拟机中创建三个
具体设计如下:
192.168.225.100 -- master(主机),namenode, datanode,
jobtracker, tasktracker -- master(主机名)
192.168.225.101 -- slave1(从机),datanode, tasktracker -- slave1(主机名)
192.168.225.102 -- slave2(从机),datanode,tasktracker -- slave2(主机名)

创建用户
命令:
# useradd hadoop
# id hadoop
# passwd hadoop
注:我这里设置的密码是123456,需要打两遍
使hadoop用户成为sudoers,以root用户修改文件/etc/sudoers,
命令:
# vim /etc/sudoers

修改文件夹权限
我未来准备将hadoop安装到/opt/bigdata文件夹下,所以希望修改该文件夹权限,使hadoop用户能够自由操作该文件夹下的所有文件

安装JDK

解压文件

移动文件夹

删除文件夹

注:移动文件夹和删除文件夹这两步可以不做,应该是我拿到这个jdk安装包中间多打了两层目录,如果其他包没有这个问题就不用做这两步,最后做到如下图目录效果就可以了

配置JDK环境变量(以root身份配置)

使profile文件生效

使用java命令查看jdk版本以验证是否安装成功

搭建Hadoop集群

解压文件

查看目录列表

在hadoop目录下建立tmp目录,并将权限设定为777
命令:
$ mkdir tmp
$ chmod 777 tmp
$ mkdir dfs
$ mkdir dfs/name
$ mkdir dfs/data
修改hadoop配置文件
待修改清单:

  1. hadoop-env.sh

  2. mapred-env.sh

  3. yarn-env.sh

  4. core-site.xml

  5. hdfs-site.xml

  6. mapred-stie.xml

  7. yarn-site.xml

  8. masters

  9. slaves
    进入hadoop配置文件目录
    修改 hadoop-env.sh


    修改 mapred-env.sh

    修改 yarn-env.sh

    修改 core-site.xml

    修改 hdfs-site.xml

    修改 mapred-site.xml

    修改 yarn-site.xml

    修改 slaves (master、slave1和slave2均作为datanode)

    配置系统变量
    命令:
    $ sudo su - root
    123456
    #vim /etc/profile

    使配置生效(切换回hadoop用户)
    命令:
    $ source /etc/profile
    将hadoop、jdk、以及配置文件发送到slave1、slave2节点
    命令:(以slave1为例,slave2同理)
    $ scp -r /opt/bigdata/hadoop-2.7.3 hadoop@slave1:/opt/bigdata/
    $ scp -r /opt/bigdata/jdk1.8 hadoop@slave1:/opt/bigdata/
    注:slave1和slave2的/etc/profile文件按照master/etc/profile重新配置一遍(我是利用xftp从master下载并分别上传至slave1和slave2中的)
    修改hosts文件(使用root用户)
    为了使外部应用可以访问到服务(slave1和salve2同理)
    命令:
    #vim /etc/hosts


    授权(hadoop用户,目录定位到home目录即:~(这个符号代表的home 目录,不是表情……)
    master给自己和salve1,slave2发证书
    命令:(初次授权一路回车)
    $ ssh-keygen
    $ ssh-copy-id -i .ssh/id_rsa.pub hadoop@master
    $ ssh-copy-id -i .ssh/id_rsa.pub hadoop@slave1
    $ ssh-copy-id -i .ssh/id_rsa.pub hadoop@slave2

    slave1给master发证书(基础状态和master一致)
    $ ssh-keygen
    $ ssh-copy-id -i .ssh/id_rsa.pub hadoop@master

    slave2给master发证书(基础状态和master一致)
    $ ssh-keygen
    $ ssh-copy-id -i .ssh/id_rsa.pub hadoop@master
    测试
    使用ssh从master登录到slave1,然后再从slave1登录到master,接着从master登录到slave2,最后从salve2登录到master
    命令:(从master主机开始)
    $ ssh slave1
    $ ssh master
    $ ssh slave2
    $ ssh master

启动集群

启动集群有两种方法,一种是全部启动,一种是分步启动
方法一(全部启动):
定位到/opt/bigdata/hadoop-2.7.3/sbin/目录下,输入./start-all.sh命令

方法二(分布启动)
启动HDFS
命令:
$ ./start-hdfs.sh
启动YARN
$ ./start-yarn.sh

验证

web界面
在浏览器中输入 http://192.168.225.100:50070

点击Datanodes页面

在浏览器中输入http://192.168.225.100:8088

测试程序
在集群上运行一个小程序来测试一下我们的集群有没有问题
以wordcount程序为例
使用hadoop命令创建一个测试目录

执行如下命令:

查看结果:
$ hadoop fs -cat /test/part-r-00000

注:部分结果。

1. 修改由于拷贝造成的datanodeid重复
命令:(slave1和slave2同理)
$ vim /opt/bigdata/hadoop-2.7.3/dfs/data/current/VERSION
master:

slave1:

slave2:

注:我这里改动了datanodeUuid的后两位

2. 执行作业报如下异常
18/11/03 16:50:10 INFO input.FileInputFormat: Total input paths to process : 1
18/11/03 16:50:10 WARN hdfs.DFSClient: Caught exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Thread.join(Thread.java:1249)
at java.lang.Thread.join(Thread.java:1323)
at org.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.closeResponder(DFSOutputStream.java:609)atorg.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.closeResponder(DFSOutputStream.java:609) at org.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.closeResponder(DFSOutputStream.java:609)atorg.apache.hadoop.hdfs.DFSOutputStreamDataStreamer.endBlock(DFSOutputStream.java:370)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:546)

这个异常据网上说是hadoop的一个bug可以忽略……,不影响集群的正常工作,如果谁知道是什么原因的话可以告诉我,谢谢啦!

总结

一个完美的集群是很需要花时间和心思研究它的每一个细节的……

Hadoop集群搭建与经验总结相关推荐

  1. 大数据Hadoop集群搭建

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

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

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

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

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

  4. Hadoop集群搭建(27)

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

  5. Hadoop 集群搭建

    Hadoop 集群搭建 2016-09-24 杜亦舒 目标 在3台服务器上搭建 Hadoop2.7.3 集群,然后测试验证,要能够向 HDFS 上传文件,并成功运行 mapreduce 示例程序 搭建 ...

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

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

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

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

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

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

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

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

最新文章

  1. AQS.acquireQueued
  2. 九九乘法表-使用转义字符调整格式
  3. Linux基线合规检查中各文件的作用及配置脚本
  4. 原来公司需要这样的你
  5. Vue+Element+Springboot实现图片上传
  6. Fiddler快速入门
  7. SpringCloud学习笔记003---服务提供者和服务消费者补充:反向代理
  8. 拿下最佳论文、世界第一,这个团队过去一年真的牛
  9. 红旗liuxe5.0下vmware tools安装记录
  10. Louvain算法在反作弊上的应用
  11. 【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )
  12. ftdi+usb转串口驱动+android,FTDI usb转串口驱动
  13. 如何用word制作英语答题卡_英语考试答题卡(word 版)
  14. STM32U5,意法半导体新打造的超低功耗MCU旗舰版
  15. 销售使用企业微信SCRM管理系统有什么好处
  16. SpringBoot入门系列(二)如何返回统一的Json数据格式
  17. 移动100m宽带慢的要死_移动宽带不稳定怎么办,移动100m宽带慢解决方法
  18. Xilinx Zynq实现任意波形发生器仿真
  19. 谷粒商城-基础篇-商品服务2-品牌管理(P59-P69)+(P75)
  20. 期刊论文发表见刊是什么意思

热门文章

  1. Ubuntu重启后没有图形界面
  2. 如何写好一份“漏洞报告”
  3. 宇宙的起源--演讲全文(斯蒂芬·霍金)
  4. USB Type-C集线器ODM厂商连接美好生活
  5. windows terminal 微软现代应用终端
  6. LabVIEW前面板上的字体大小取决于操作系统
  7. HashMap的containsKey方法底层详解
  8. html中常用的双标记,HTML常用标签
  9. RabbitMQ之Federation Exchange、Federation Queue、Shovel
  10. 运行JoinQuant的环境