文档章节

超详细从零记录Hadoop2.7.3完全分布式集群部署过程

jiejie2050
 jiejie2050
发布于 2017/06/05 09:31
字数 2020
阅读 23
收藏 1
点赞 0
评论 0

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

超详细从零记录Hadoop2.7.3完全分布式集群部署过程

主机名/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 登录密码**

这里写图片描述

建立好的虚拟机如下

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

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

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

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

这里写图片描述

sshd
sudo apt install openssh-server

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

这里写图片描述

同样三个虚拟机建立连接

这里写图片描述

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

在Hadoop1、Hadoop2、Hadoop3中

xiaolei@ubuntu:~$ sudo vi /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

更新源

xiaolei@ubuntu:~$ sudo apt update

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

sudo apt install vim

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

sudo apt-get upgrade

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

#在192.168.193.131
xiaolei@ubuntu:~$ sudo hostname hadoop1

#在192.168.193.131
xiaolei@ubuntu:~$ sudo hostname hadoop2

#在192.168.193.131
xiaolei@ubuntu:~$ sudo hostname hadoop3

#断开远程连接,重新连接即可看到已经改变了主机名。

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

在Hadoop1,2,3中

xiaolei@hadoop1:~$ sudo vim /etc/hosts
192.168.193.131 hadoop1
192.168.193.132 hadoop2
192.168.193.133 hadoop3

这里写图片描述

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

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

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

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

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

  • JDK配置
  • Hadoop集群部署

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

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

这里写图片描述

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

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

4.1.3.配置环境变量

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

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

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

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

4.1.4.验证jdk成功安装

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

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

也可通过scp命令

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

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

4.2.集群ssh无密匙登录

4.2.1.在hadoop1,hadoop2,hadoop3中执行

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

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

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3

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

#不需要输入密码
ssh hadoop2

这里写图片描述

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

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

这里写图片描述

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

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

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

输入

#!/bin/sh
# Author:wangxiaolei 王小雷
# Blog:http://blog.csdn.net/dream_an
# Github:https://github.com/wxiaolei
# Date:20161027
# Path:/etc/profile.d/hadoop2.7.3.sh

export HADOOP_HOME="/opt/hadoop-2.7.3"
export PATH="$HADOOP_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

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

export JAVA_HOME=/opt/jdk1.8.0_111

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

hadoop2
hadoop3

5.1.4.配置 core-site.xml

<configuration>
        <!-- 指定hdfs的nameservice为ns1 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Hadoop1:9000</value>
        </property>
        <!-- Size of read/write buffer used in SequenceFiles. -->
        <property>
         <name>io.file.buffer.size</name>
         <value>131072</value>
       </property>
        <!-- 指定hadoop临时目录,自行创建 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/xiaolei/hadoop/tmp</value>
        </property>
</configuration>

5.1.5.配置 hdfs-site.xml

<configuration>
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop1:50090</value>
    </property>
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/home/xiaolei/hadoop/hdfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/home/xiaolei/hadoop/hdfs/data</value>
    </property>
</configuration>

5.1.6.配置yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
<!-- Configurations for ResourceManager -->
     <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
     </property>
     <property>
           <name>yarn.resourcemanager.address</name>
           <value>hadoop1:8032</value>
     </property>
     <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>hadoop1:8030</value>
      </property>
     <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>hadoop1:8031</value>
     </property>
     <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>hadoop1:8033</value>
     </property>
     <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>hadoop1:8088</value>
     </property>
</configuration>

5.1.7.配置mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>hadoop1:10020</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>hadoop1:19888</value>
  </property>
</configuration>

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

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

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

xiaolei@hadoop1:sudo mv hadoop-2.7.3 /opt/

5.2.格式化节点

在hadoop1上执行

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

这里写图片描述

5.3.hadoop集群全部启动

### 5.3.1. 在Hadoop1上执行

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

Hadoop2.7.3完全分布式集群部署过程

5.3.2.其他主机上jps

这里写图片描述

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

http://192.168.193.131:8088/

超详细从零记录Hadoop2.7.3完全分布式集群部署过程

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

ssd
或者
ps -e|grep ssh

安装 openssh-server

sudo apt install openssh-server

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

Network error: Connection refused

这里写图片描述

本文转载自:https://yq.aliyun.com/articles/70601

共有 人打赏支持
jiejie2050
粉丝 2
博文 51
码字总数 9570
作品 0
广州
Hadoop3.1.0完全分布式集群部署超详细记录

Hadoop3.1.0完全分布式集群部署,三台服务器部署结构如下github配置文件源码地址 如上图,一共三台机器作为集群,servera作为master,其他两台作为worker。 2.开始部署-前期准备(三台机器都需...

dream_an ⋅ 05/09 ⋅ 0

oVirt+SSAN超融合架构

1. oVirt+SSAN超融合概述 虚拟化技术在不断发展中日趋成熟,随之而来各种云技术方兴未艾,对存储性能提出了更高的要求。传统网络存储不仅因为性能无法满足不断变化的虚拟化需求,而且是虚拟化...

独笔孤行 ⋅ 2017/06/12 ⋅ 0

用 Apache Spark 和 TensorFlow 进行深度学习

本文由 Tim Hunter 发表于a href="https://databricks.com/blog/category/engineering"> ENGINEERING BLOG 本文链接:https://databricks.com/blog/2016/01/25/deep-learning-with-apache-sp......

Datartisan ⋅ 2017/07/28 ⋅ 0

分布式机器学习框架-TensorFlow on Spark(中)

深度学习与 Spark 和 TensorFlow 在过去几年中,神经网络已经看到壮观进展,并且他们现在是图像识别和自动翻译领域中最强者。TensorFlow是数值计算和神经网络发布的谷歌的新框架。在这个博客...

openthings ⋅ 2016/03/10 ⋅ 0

Hadoop安装(Hadoop2.7.3)

在Ubantu14.04上部署Hadoop2.7.3 伪分布式集群 01.安装Ubantu14.04(过程略) 02.安装JDK1.8 01)下载JDK1.8,将jdk-8u131-linux-x64.tar.gz上传至ubantu中 02)在根目录下创建soft文件夹,并改变...

小马Ha ⋅ 2017/07/08 ⋅ 0

学习笔记TF065: TensorFlowOnSpark

Hadoop生态大数据系统分为Yam、 HDFS、MapReduce计算框架。TensorFlow分布式相当于MapReduce计算框架,Kubernetes相当于Yam调度系统。TensorFlowOnSpark,利用远程直接内存访问(Remote Direc...

利炳根 ⋅ 2017/11/13 ⋅ 0

深度学习与 Spark 和 TensorFlow

深度学习与 Spark 和 TensorFlow 在过去几年中,神经网络领域的发展非常迅猛,也是现在图像识别和自动翻译领域中最强者。TensorFlow 是谷歌发布的数值计算和神经网络的新框架。本文中,我们将...

cathyli ⋅ 2016/02/05 ⋅ 0

'近义词'小项目 spark word2vec

需求:spark word2vec计算同义词 要求:搭建spark完全分布式集群(3台以上),给定输入数据,计算同义词,验收标准:输入多个文本(txt) 能正常运算 ,最后输入一个词 可以输出同义词(按相...

小默 ⋅ 05/31 ⋅ 0

Apache Tajo 0.10.1 发布,分布式数据仓库

Apache Tajo 0.10.1 发布,Tajo 是一个分布式数据仓库系统,基于 Hadoop 实现,特点是低延迟、高可伸缩,提供专用查询和 ETL 工具 特点: 可伸缩性和低延迟 完全分布式的 SQL 查询处理,基于...

oschina ⋅ 2015/07/01 ⋅ 3

2017双11技术揭秘—X-DB支撑双11进入分布式数据库时代

作者:章颖强(江疑)、胡炜 X-DB 1.0(X-Cluster)是阿里自主研发的,100%兼容MySQL生态的,全球级分布式强一致的关系型数据库系统。今年双11是X-DB的第一次大考,本次双11X-DB服务于天猫/淘宝...

中间件小哥 ⋅ 2017/12/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

服务网关过滤器

过滤器作用 我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会...

明理萝 ⋅ 22分钟前 ⋅ 1

【2018.06.21学习笔记】【linux高级知识 14.1-14.3】

14.1 NFS介绍 NFS服务全称是NetWork File System:网络文件系统,最早有sun公司开发的,4.0版本由Netapp公司开发,是基于RPC远程过程调用(Remote Procedure Call)协议的服务。 14.2 NFS服务...

lgsxp ⋅ 31分钟前 ⋅ 0

Day18 vim编辑模式、命令模式与练习

编辑模式 命令模式 :nohl 不高亮显示 :x与:wq类似,如果在更改文件之后操作,两者效果一样;如果打开文件,没有任何操作; :wq会更改mtime,但是:x不会。 练习题 扩展 vim的特殊用法 ht...

杉下 ⋅ 34分钟前 ⋅ 0

Enum、EnumMap、EnumSet

1、Enum 不带参数 public enum Car { AUDI { @Override public int getPrice() { return 25000; } }, MERCEDES { ......

职业搬砖20年 ⋅ 35分钟前 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 36分钟前 ⋅ 0

线程组和 ThreadLocal

前言 在上面文章中,我们从源码的角度上解析了一下线程池,并且从其 execute 方法开始把线程池中的相关执行流程过了一遍。那么接下来,我们来看一个新的关于线程的知识点:线程组。 线程组 ...

猴亮屏 ⋅ 38分钟前 ⋅ 0

相对路径和绝对路径

基本概念   文件路径就是文件在电脑中的位置,表示文件路径的方式有两种,相对路径和绝对路径。在网页设计中通过路径可以表示链接,插入图像、Flash、CSS文件的位置。   物理路径:物理路...

临江仙卜算子 ⋅ 42分钟前 ⋅ 0

消息队列属性及常见消息队列介绍

什么是消息队列? 消息队列是在消息的传输过程中保存消息的容器,用于接收消息并以文件的方式存储,一个队列的消息可以同时被多个消息消费者消费。分布式消息服务DMS则是分布式的队列系统,消...

中间件小哥 ⋅ 44分钟前 ⋅ 0

java程序员使用web3j进行以太坊开发详解

如何使用web3j为Java应用或Android App增加以太坊区块链支持,教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤器...

笔阁 ⋅ 44分钟前 ⋅ 0

vim编辑模式、vim命令模式

vim编辑模式 使用vim filename 进入的界面是一般模式,在这个模式下虽然我们能够查看,复制,剪切,粘贴,但是不能编辑新的内容,如何能直接写入东西呢?这就需要进入编辑模式了,从一般模式...

李超小牛子 ⋅ 47分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部