超详细从零记录Ubuntu16.04.1 3台服务器上Hadoop2.7.3完全分布式集群部署过程。包含,Ubuntu服务器创建、远程工具连接配置、Ubuntu服务器配置、Hadoop文件配置、Hadoop格式化、启动。(首更时间2016年10月27日)

主机名/hostname IP 角色
hadoop1 192.168.193.131 ResourceManager/NameNode/SecondaryNameNode
hadoop2 192.168.193.132 NodeManager/DataNode
hadoop3 192.168.193.133 NodeManager/DataNode

1.0.准备

1.1.目录

  • 用VMware创建3个Ubuntu虚拟机
  • 用mobaxterm远程连接创建好的虚拟机
  • 配置Ubuntu虚拟机源、ssh无密匙登录、jdk
  • 配置Hadoop集群文件(Github源码)
  • 启动Hadoop集群、在Windows主机上显示集群状态。

1.2.提前准备安装包

  • Windows10(宿主操作系统)
  • VMware12 workstation(虚拟机)
  • Ubuntu16.04.1 LTS 服务器版
  • Hadoop2.7.3
  • jdk1.8
  • MobaXterm(远程连接工具)
  • Github源码,记得start哦(CSDN博文中全部源码公开至个人github)

2. VMvare安装Ubuntu16.04.1LTS服务器版过程

2.1.注意在安装时username要一致如xiaolei,即主机用户名。而主机名hostname可不同如hadoop1,hadoop2,hadoop3.或者master,slave1,slave2.在本篇博文中用hadoop1,2,3区分hostname主机名。

2.2.VMvare安装Ubuntu16.04.1LTS桌面版过程

2.3.在VMvare中选择 文件 然后 新建虚拟机

2.4选择典型安装

2.5.选择下载好的Ubuntu64位 16.04.1 LTS服务器版镜像

2.6.个性化Linux设置

2.7.虚拟机命名及文件路径 wangxiaolei \ hadoop1等 随意可更换

2.8.磁盘分配,默认即可,磁盘大小可以根据自身硬盘空间调节(不要太小)

2.9.然后就是等待安装完成,输入登录名 xiaolei 登录密码**

建立好的虚拟机如下

  1. 通过ipconfig命令查看服务器ip地址
  2. IP 192.168.193.131 默认主机名ubuntu
  3. IP 192.168.193.132 默认主机名ubuntu
  4. IP 192.168.193.133 默认主机名ubuntu
  5. 下一步会修改主机名hostname
  • 1
  • 2
  • 3
  • 4
  • 5

3. 配置Ubuntu系统(服务器版在VMware中操作不方便,通过远程在putty或者MobaXterm操作比较快捷些)

3.1 安装ssh即可。这里不需要 ssh-keygen

打开终端或者服务器版命令行 
查看是否安装(ssh)openssh-server,否则无法远程连接。

  1. sshd
  2. sudo apt install openssh-server
  • 1
  • 2

3.2.安装ssh后,可以通过工具(putty或者MobaXterm)远程连接已经建立好的服务器(Hadoop1,Hadoop2,Hadoop3)

同样三个虚拟机建立连接

3.3.更换为国内源(清华大学帮助文档

在Hadoop1、Hadoop2、Hadoop3中

  1. xiaolei@ubuntu:~$ sudo vi /etc/apt/sources.list
  • 1
  1. # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
  2. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
  3. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main main restricted universe multiverse
  4. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
  5. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
  6. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
  7. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
  8. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
  9. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
  10. # 预发布软件源,不建议启用
  11. # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
  12. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

更新源

  1. xiaolei@ubuntu:~$ sudo apt update
  • 1

3.4.安装vim编辑器,默认自带vi编辑器

  1. sudo apt install vim
  • 1

更新系统(服务器端更新量小,桌面版Ubuntu更新量较大,可以暂时不更新)

  1. sudo apt-get upgrade
  • 1

3.5.修改Ubuntu服务器hostname主机名,主机名和ip是一一对应的。

  1. #在192.168.193.131
  2. xiaolei@ubuntu:~$ sudo hostname hadoop1
  3. #在192.168.193.131
  4. xiaolei@ubuntu:~$ sudo hostname hadoop2
  5. #在192.168.193.131
  6. xiaolei@ubuntu:~$ sudo hostname hadoop3
  7. #断开远程连接,重新连接即可看到已经改变了主机名。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.6.增加hosts文件中ip和主机名对应字段

在Hadoop1,2,3中

  1. xiaolei@hadoop1:~$ sudo vim /etc/hosts
  • 1
  1. 192.168.193.131 hadoop1
  2. 192.168.193.132 hadoop2
  3. 192.168.193.133 hadoop3
  • 1
  • 2
  • 3

3.7.更改系统时区(将时间同步更改为北京时间)

  1. xiaolei@hadoop1:~$ date
  2. Wed Oct 26 02:42:08 PDT 2016
  • 1
  • 2
  1. xiaolei@hadoop1:~$ sudo tzselect
  • 1

根据提示选择Asia China Beijing Time yes 
最后将Asia/Shanghai shell scripts 复制到/etc/localtime

  1. xiaolei@hadoop1:~$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 1
  1. xiaolei@ubuntu:~$ date
  2. Wed Oct 26 17:45:30 CST 2016
  • 1
  • 2

4. Hadoop集群完全分布式部署过程

  • JDK配置
  • Hadoop集群部署

4.1.安装JDK1.8 (配置源码Github,记得start哦)

4.1.1将所需文件(Hadoop2.7.3、JDK1.8)上传至Hadoop1服务器(可以直接复制粘贴)

4.1.2.解压缩并将jdk放置/opt路径下

  1. xiaolei@hadoop1:~$ tar -zxf jdk-8u111-linux-x64.tar.gz
  2. hadoop1@hadoop1:~$ sudo mv jdk1.8.0_111 /opt/
  3. [sudo] password for hadoop1:
  4. xiaolei@hadoop1:~$
  • 1
  • 2
  • 3
  • 4

4.1.3.配置环境变量

编写环境变量脚本并使其生效

  1. xiaolei@hadoop1:~$ sudo vim /etc/profile.d/jdk1.8.sh
  • 1

输入内容(或者在我的github上下载jdk环境配置脚本源码)

  1. #!/bin/sh
  2. # author:wangxiaolei 王小雷
  3. # blog:http://blog.csdn.net/dream_an
  4. # date:20161027
  5. export JAVA_HOME=/opt/jdk1.8.0_111
  6. export JRE_HOME=${JAVA_HOME}/jre
  7. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  8. export PATH=${JAVA_HOME}/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. xiaolei@hadoop1:~$ source /etc/profile
  • 1

4.1.4.验证jdk成功安装

  1. xiaolei@hadoop1:~$ java -version
  2. java version "1.8.0_111"
  3. Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
  • 1
  • 2
  • 3
  • 4

4.1.5.同样方法安装其他集群机器。

也可通过scp命令

  1. #注意后面带 : 默认是/home/xiaolei路径下
  2. xiaolei@hadoop1:~$ scp jdk-8u111-linux-x64.tar.gz hadoop2:
  • 1
  • 2

命令解析:scp 远程复制 -r 递归 本机文件地址 app是文件,里面包含jdk、Hadoop包 远程主机名@远程主机ip:远程文件地址

4.2.集群ssh无密匙登录

4.2.1.在hadoop1,hadoop2,hadoop3中执行

  1. sudo apt install ssh
  2. sudo apt install rsync
  3. xiaolei@ubuntu:~$ ssh-keygen -t rsa //一路回车就好
  • 1
  • 2
  • 3

4.2.2.在 Hadoop1(master角色) 执行,将~/.ssh/下的id_rsa.pub公私作为认证发放到hadoop1,hadoop2,hadoop3的~/.ssh/下

  1. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
  2. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2
  3. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3
  • 1
  • 2
  • 3

4.2.3.然后在 Hadoop1 上登录其他Linux服务器不需要输入密码即成功。

  1. #不需要输入密码
  2. ssh hadoop2
  • 1
  • 2

5.hadoop完全分布式集群文件配置和启动

在hadoop1上配置完成后将Hadoop包直接远程复制scp到其他Linux主机即可。 
Linux主机Hadoop集群完全分布式分配

5.1.Hadoop主要文件配置(Github源码地址

5.1.1.在Hadoop1,2,3中配置Hadoop环境变量

  1. xiaolei@hadoop2:~$ sudo vim /etc/profile.d/hadoop2.7.3.sh
  • 1

输入

  1. #!/bin/sh
  2. # Author:wangxiaolei 王小雷
  3. # Blog:http://blog.csdn.net/dream_an
  4. # Github:https://github.com/wxiaolei
  5. # Date:20161027
  6. # Path:/etc/profile.d/hadoop2.7.3.sh
  7. export HADOOP_HOME="/opt/hadoop-2.7.3"
  8. export PATH="$HADOOP_HOME/bin:$PATH"
  9. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
  10. export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

5.1.2.配置 hadoop-env.sh 增加如下内容

  1. export JAVA_HOME=/opt/jdk1.8.0_111
  • 1

5.1.3.配置slaves文件,增加slave主机名

  1. hadoop2
  2. hadoop3
  • 1
  • 2

5.1.4.配置 core-site.xml

  1. <configuration>
  2. <!-- 指定hdfs的nameservice为ns1 -->
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://Hadoop1:9000</value>
  6. </property>
  7. <!-- Size of read/write buffer used in SequenceFiles. -->
  8. <property>
  9. <name>io.file.buffer.size</name>
  10. <value>131072</value>
  11. </property>
  12. <!-- 指定hadoop临时目录,自行创建 -->
  13. <property>
  14. <name>hadoop.tmp.dir</name>
  15. <value>/home/xiaolei/hadoop/tmp</value>
  16. </property>
  17. </configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

5.1.5.配置 hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.secondary.http-address</name>
  4. <value>hadoop1:50090</value>
  5. </property>
  6. <property>
  7. <name>dfs.replication</name>
  8. <value>2</value>
  9. </property>
  10. <property>
  11. <name>dfs.namenode.name.dir</name>
  12. <value>file:/home/xiaolei/hadoop/hdfs/name</value>
  13. </property>
  14. <property>
  15. <name>dfs.datanode.data.dir</name>
  16. <value>file:/home/xiaolei/hadoop/hdfs/data</value>
  17. </property>
  18. </configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

5.1.6.配置yarn-site.xml

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <!-- Configurations for ResourceManager -->
  4. <property>
  5. <name>yarn.nodemanager.aux-services</name>
  6. <value>mapreduce_shuffle</value>
  7. </property>
  8. <property>
  9. <name>yarn.resourcemanager.address</name>
  10. <value>hadoop1:8032</value>
  11. </property>
  12. <property>
  13. <name>yarn.resourcemanager.scheduler.address</name>
  14. <value>hadoop1:8030</value>
  15. </property>
  16. <property>
  17. <name>yarn.resourcemanager.resource-tracker.address</name>
  18. <value>hadoop1:8031</value>
  19. </property>
  20. <property>
  21. <name>yarn.resourcemanager.admin.address</name>
  22. <value>hadoop1:8033</value>
  23. </property>
  24. <property>
  25. <name>yarn.resourcemanager.webapp.address</name>
  26. <value>hadoop1:8088</value>
  27. </property>
  28. </configuration>
  • 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

5.1.7.配置mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>hadoop1:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.address</name>
  12. <value>hadoop1:19888</value>
  13. </property>
  14. </configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

5.1.8.复制Hadoop配置好的包到其他Linux主机

  1. xiaolei@hadoop1:~$ scp -r hadoop-2.7.3 hadoop3:
  • 1

将每个Hadoop包sudo mv移动到/opt/路径下。不要sudo cp,注意权限。

  1. xiaolei@hadoop1:sudo mv hadoop-2.7.3 /opt/
  • 1

5.2.格式化节点

在hadoop1上执行

  1. xiaolei@hadoop1:/opt/hadoop-2.7.3$ hdfs namenode -format
  • 1

5.3.hadoop集群全部启动

### 5.3.1. 在Hadoop1上执行

  1. xiaolei@hadoop1:/opt/hadoop-2.7.3/sbin$ ./start-all.sh
  • 1

5.3.2.其他主机上jps

5.3.3.在主机上查看,博主是Windows10,直接在浏览器中输入hadoop1 集群地址即可。

  1. http://192.168.193.131:8088/
  • 1

5.3.4. Github源码位置——超详细从零记录Hadoop2.7.3完全分布式集群部署过程

5.4.可能问题:

权限问题: 
chown -R xiaolei:xiaolei hadoop-2.7.3 
解析:将hadoop-2.7.3文件属主、组更换为xiaolei:xiaolei 
chmod 777 hadoop 
解析:将hadoop文件权限变成421 421 421 可写、可读可、执行即 7 7 7 
查看是否安装openssh-server

  1. ssd
  2. 或者
  3. ps -e|grep ssh
  • 1
  • 2
  • 3

安装 openssh-server

  1. sudo apt install openssh-server
  • 1

问题解决: 
问题 
Network error: Connection refused 
解决安装

  1. Network error: Connection refused
  • 1

超详细从零记录Hadoop2.7.3完全分布式集群部署过程的更多相关文章

  1. Centos7.5搭建Hadoop2.8.5完全分布式集群部署

    一.基础环境设置 1. 准备4台客户机(VMware虚拟机) 系统版本:Centos7.5 节点配置: 192.168.208.128 --Master 192.168.208.129 --Slave ...

  2. 超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

    超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数 介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了.本文主 ...

  3. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

  4. 搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),hadoop的环境配置不是特别的复杂,但是确实有很多细节需要注意,不然会造成许多配置错误的情况.尽量保证一次配置正确防止反复修改. 网上教程有很多关 ...

  5. Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群

    一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考 ...

  6. Hadoop2.X分布式集群部署

    本博文集群搭建没有实现Hadoop HA,详细文档在后续给出,本次只是先给出大概逻辑思路. (一)hadoop2.x版本下载及安装 Hadoop 版本选择目前主要基于三个厂商(国外)如下所示: 基于A ...

  7. CentOS7.5搭建Hadoop2.7.6完全分布式集群

    一 完全分布式集群搭建 Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.2 关闭防火墙,设置静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略 ...

  8. Hadoop2.7.3+spark2.1.0+hbase0.98分布式集群部署

    运行环境配置(10.79.115.111-114) 1.关闭防火墙与selinux 关闭防火墙: CentOS 7.x默认使用的是firewall作为防火墙. systemctl stop firew ...

  9. 新闻实时分析系统-Hadoop2.X分布式集群部署

    (一)hadoop2.x版本下载及安装 Hadoop 版本选择目前主要基于三个厂商(国外)如下所示: 1.基于Apache厂商的最原始的hadoop版本, 所有发行版均基于这个版本进行改进. 2.基于 ...

随机推荐

  1. WebAPI实例--第一个API

    今天终于做了第一个任务,学习API之后的第一个实例.销售设置开发API. 第一.层次结构 1.API各层 项目结构主要有五层,分别为API.BizModel.Data.DBModel.Logic. 2 ...

  2. div+css实现圆形div以及带箭头提示框效果

    .img{ width:90px; height:90px; border-radius:45px; margin:0 40%; border:solid rgb(100,100,100) 1px;& ...

  3. 20150401 作业2 结对 四则运算ver 1.0

    Web項目下 Tomcat服務器的路徑 /WebContant/ 目錄下 SE2_2.jsp <%@ page language="java" contentType=&qu ...

  4. 软件工程项目之摄影App(总结)

    软件工程项目之摄影App 心得体会: dyh:这次的项目很难做,本来想在里面添加动画效果的,但是找了很多例子都没看明白,能力还是不足够把,还有一个就是数据库在安卓课程里面刚刚涉及到,所以也还没能做出数 ...

  5. 速读《构建之法》(Build to win)有感

    通过这两天时间,我粗读了<构建之法>这本书.老实说,对于这样四百多页的一本书,刚开始把这样的任务当作是一种负担,然而当我开始真正接触它时却被它幽默有趣的风格所深深吸引,它不同于以往学习的教 ...

  6. 『编程题全队』Scrum 冲刺博客

    1.介绍小组新加入的成员,Ta担任的角色 Answer: 我们小组的倪兢飞同学决定跳槽到团队あ,我们小组开了一个简短而又严肃的会议,满足倪兢飞同学的意愿,并感谢他为团队做出的巨大贡献.虽然我们遗失了一 ...

  7. node的cookie-parser和express-session

    let express = require('express'); let cookieParser = require('cookie-parser'); let expressSession = ...

  8. CentOS7 安装 Jenkins

    1. 安装java环境, 自己的虚拟机里面前期已经安装好了 检查一下: [root@centos74 ~]# java -versionopenjdk version "1.8.0_131& ...

  9. QQ互联登录提示redirect uri is illegal(100010)完美解决方法

    大概2015年3月低,腾讯QQ互联开发平台调整了有关QQ登录应用回调地址填写规则,用来修复QQ登录过程因回调地址的漏洞可能导致存在的安全问题. 博主接触这块较多,但也是四月才了解此事,从4月起,所有新 ...

  10. phpStorm字体大小无法调整, 怎么办?

    最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个“√”,始终无法去掉,这个勾限制了字体系列,就可怜巴巴的那几个 ...