1. 环境准备

 
 

  • 操作系统使用ubuntu-16.04.2 64位
  • JDK使用jdk1.8
  • Hadoop使用Hadoop 2.8版本

 
 

  1. 镜像下载 

  • 操作系统

 
 

操作系统使用ubuntu-16.04.2-desktop-amd64.iso

下载地址:https://www.ubuntu.com/download/desktop

用户名:dblab 密码:welcome1>

  •  Jdk

Jdk使用jdk-8u121-linux-x64.tar.gz

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 
 

  •  Hadoop

Hadoop版本:hadoop-2.8.0.tar.gz

下载地址:http://hadoop.apache.org/releases.html

  •  Spark

Spark版本:spark-2.1.0-bin-hadoop2.7.tgz

下载地址:http://spark.apache.org/downloads.html

 
 

 
 

 
 

  1. 安装Ubuntu

 
 

  1. 选择启动盘

 
 

  1. 选择语言

 
 

  1. 安装更新和第三方软件

    直接点击继续按钮

 
 

  1. 确认安装类型

    选择"其他选项",点击继续

  2. 新建分区表

 
 

点击"新建分区表" 按钮

 
 

  1. 创建分区,添加交换空间和根目录

    一般来说,我们选择512MB到1G大小作为交换空间,剩下空间全部用来作为根目录

    选中空闲,点击"+" 按钮,创建交换空间

 
 

 
 

  1. 创建根目录

 
 

  1. 开始安装

 
 

  1. 选择时区

    默认即可,点击"继续"

 
 

  1. 键盘布局

    左右都选择汉语

 
 

  1. 设置用户名密码,密码b

 
 

  1. 系统自动安装

 
 

 
 

Ctrl+alt+T 打开终端,执行下面的命令

sudo apt-get install virtualbox-guest-dkms

 
 

 
 

 
 

  1. 新增用户

1、增加一个名为hadoop的用户

sudo useradd -m hadoop -s /bin/bash

这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

 
 

2、为hadoop用户设置密码,密码设置为hadoop

sudo passwd hadoop

 
 

3、为hadoop 用户增加管理员权限

sudo adduser hadoop sudo

 
 

4、注销当前用户返回登陆界面,再登陆界面选择刚创建的hadoop用户登陆

5、更新apt

用hadoop用户登陆后,先更新一下apt,

sudo apt-get update

 
 

6、安装vim

使用下面的命令安装vim

sudo apt-get install vim

 
 

  1. 安装SSH、配置SSH无密码登陆

Ubuntu 默认安装了SSH client ,此外还需要安装SSH server:

$ sudo apt-get install openssh-server

安装后,可以使用如下命令登陆本机:

$ ssh localhost

 
 

输入密码可以登陆到本机,我们需要配置称ssh无密码登陆比较方便

 
 

退出刚才的ssh

exit # 退出刚才的 ssh localhost

cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost

ssh-keygen -t rsa # 会有提示,都按回车就可以

cat ./id_rsa.pub >> ./authorized_keys # 加入授权

 
 

此时ssh localhost 命令无需密码可以直接登陆

 
 

备注:

在 Linux 系统中,~ 代表的是用户的主文件夹,即 "/home/用户名" 这个目录,如你的用户名为 hadoop,则 ~ 就代表 "/home/hadoop/"。此外,命令中的 # 后面的文字是注释,只需要输入前面命令即可。

 
 

在保证了三台主机电脑都能连接到本地localhost后,还需要让master主机免密码登录slave01和slave02主机。在master执行如下命令,将master的id_rsa.pub传送给两台slave主机。

  1. scp ~/.ssh/id_rsa.pub hadoop@slave01:/home/hadoop/
  2. scp ~/.ssh/id_rsa.pub hadoop@slave02:/home/hadoop/

 
 

在slave01,slave02 主机上分别运行ls命令

可以看到id_rsa.pub 文件

现在将master的公钥加入各自的节点上

 
 

在master主机上通过ssh slave01 可以直接登陆到slave01上

 
 

如果master和slave01的用户名不同

还需要在master上修改~/.ssh/config文件,如果没有此文件,自己创建一个

Host master

  user Hadoop

Host slave01

  user hadoop01

 
 

  1. 修改hostname

查看当前主机名:

hostname

修改主机名为master

sudo vim /etc/hostname

配置hosts

sudo vim /etc/hosts

重启

  1. 安装JDK

下载jdk压缩包方式安装:

 
 

  1. 解压缩放到指定目录

创建目录:

sudo mkdir /usr/java

 
 

解压缩到该目录:

sudo tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/java

 
 

  1. 修改环境变量

sudo vim ~/.bashrc

文件末尾追加下面内容

#set oracle jdk environment
export JAVA_HOME=/usr/java/jdk1.8.0_131
## 这里要注意目录要换成自己解压的jdk 目录

export CLASSPATH=.:${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib

export PATH=${JAVA_HOME}/bin:$PATH

 
 

使环境变量马上生效

source ~/.bashrc

  1. 设置默认jdk版本
  2. 测试jdk

Java -version

自动安装

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get insall oracle-java8-installer

 
 

  1.  安装配置spark

 

  1. 安装hadoop

  2. 解压缩到指定目录:

sudo tar -zxf ~/下载/hadoop-2.7.3.tar.gz -C /usr/local # 解压到/usr/local中

cd /usr/local/

sudo mv ./hadoop-2.8.0/ ./hadoop # 将文件夹名改为hadoop

sudo chown -R hadoop ./hadoop # 修改文件权限

 
 

  1. 配置环境变量

sudo vim ~/.bashrc

 
 

export HADOOP_HOME=/usr/local/hadoop-2.8.0

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 
 

使配置生效

source ~/.bashrc

 
 

  1. 配置hadoop

修改core-site.xml

sudo vim /usr/local/Hadoop-2.8.0/etc/Hadoop/core-site.xml

 
 

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop/tmp</value>

<description>Abase for other temporary directories.</description>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

</configuration>

修改hdfs-site.xml

sudo vim /usr/local/Hadoop-2.8.0/etc/Hadoop/hdfs-site.xml

<configuration>


<property>


<name>dfs.namenode.secondary.http-address</name>


<value>Master:50090</value>


</property>


<property>


<name>dfs.replication</name>


<value>1</value>


</property>


<property>


<name>dfs.namenode.name.dir</name>


<value>file:/usr/local/hadoop/tmp/dfs/name</value>


</property>


<property>


<name>dfs.datanode.data.dir</name>


<value>file:/usr/local/hadoop/tmp/dfs/data</value>


</property>

</configuration>

 
 

修改mapred-site.xml(复制mapred-site.xml.template,再修改文件名)

cp /usr/local/Hadoop-2.8.0/etc/Hadoop/mapred-site.xml.template /usr/local/Hadoop-2.8.0/etc/Hadoop/mapred-site.xml

 
 

sudo vim /usr/local/Hadoop-2.8.0/etc/Hadoop/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>

</configuration>

 
 

修改yarn-site.xml

sudo vim /usr/local/Hadoop-2.8.0/etc/Hadoop/yarn-site.xml

 
 

<configuration>


<property>


<name>yarn.resourcemanager.hostname</name>


<value>Master</value>


</property>


<property>


<name>yarn.nodemanager.aux-services</name>


<value>mapreduce_shuffle</value>


</property>

</configuration>

 
 

修改slaves

sudo vim /usr/local/hadoop-2.8.0/etc/hadoop/slaves

 
 

配置好后,将 master 上的 /usr/local/Hadoop-2.8.0 文件夹复制到各个节点上。在 master 节点主机上执行:

 
 

  1. cd /usr/local
  2. sudo rm -r ./hadoop/tmp # 删除 Hadoop 临时文件
  3. sudo rm -r ./hadoop/logs/* # 删除日志文件
  4. tar -zcf ~/hadoop.master.tar.gz ./Hadoop-2.8.0 # 先压缩再复制
  5. cd ~
  6. scp ./hadoop.master.tar.gz Slave1:/home/hadoop

在slave01,slave02节点上执行:

  1. sudo rm -rf /usr/local/Hadoop-2.8.0/ #存在的目录删除
  2. sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local # 解压缩到指定目录
  3. sudo chown -R hadoop /usr/local/hadoop # 更改权限

 
 

 
 

 
 

  1. 启动hadoop集群

首次启动需要先在 Master 节点执行 NameNode 的格式化:

  1. hdfs namenode -format # 首次运行需要执行初始化,之后不需要

 
 

 
 

接着可以启动 hadoop 了,启动需要在 Master 节点上进行:

  1. start-dfs.sh
  2. start-yarn.sh
  3. mr-jobhistory-daemon.sh start historyserver

 
 

在集群环境中正确配置JAVA_HOME 后还会报如下错误:

 
 

所以要修改hadoop-env.sh 配置文件:

sudo vim /usr/local/hadoop-2.8.0/etc/hadoop/hadoop-env.sh

添加修改JAVA_HOME 信息

 
 

运行后,在master,slave01,slave02运行jps命令,查看:

Jps

 
 

 
 

启动集群后

 
 

ResourceManager运行在主节点master上,可以Web控制台查看状态, 访问如下地址: 

http://master:8088/

 
 

通过登录Web控制台,查看HDFS集群状态,访问如下地址:

http://master:50070/

 
 

NodeManager运行在从节点上,可以通过Web控制台查看对应节点的资源状态,例如节点slave01:

http://slave1:8042/

 

  1. 安装配置spark

    1. 安装spark

从windows 将spark安装文件发布到master系统上(命令行下使用pscp命令)

 

D:\workspace\study\soft>pscp spark-2.1.0-bin-hadoop2.7.tar hadoop@master:~/下载

Hadoop分布式集群安装的更多相关文章

  1. hadoop 分布式集群安装

    这一套环境搭完,你有可能碰到无数个意想不到的情况. 用了1周的时间,解决各种linux菜鸟级的问题,终于搭建好了.. 沿途的风景,甚是历练. 环境介绍: 系统:win7 内存:16G(最低4G,不然跑 ...

  2. hadoop学习之hadoop完全分布式集群安装

    注:本文的主要目的是为了记录自己的学习过程,也方便与大家做交流.转载请注明来自: http://blog.csdn.net/ab198604/article/details/8250461 要想深入的 ...

  3. Hadoop教程(五)Hadoop分布式集群部署安装

    Hadoop教程(五)Hadoop分布式集群部署安装 1 Hadoop分布式集群部署安装 在hadoop2.0中通常由两个NameNode组成,一个处于active状态,还有一个处于standby状态 ...

  4. CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  5. (转)ZooKeeper伪分布式集群安装及使用

    转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的 ...

  6. 超快速使用docker在本地搭建hadoop分布式集群

    超快速使用docker在本地搭建hadoop分布式集群 超快速使用docker在本地搭建hadoop分布式集群 学习hadoop集群环境搭建是hadoop入门的必经之路.搭建分布式集群通常有两个办法: ...

  7. 大数据系列之Hadoop分布式集群部署

    本节目的:搭建Hadoop分布式集群环境 环境准备 LZ用OS X系统 ,安装两台Linux虚拟机,Linux系统用的是CentOS6.5:Master Ip:10.211.55.3 ,Slave ...

  8. 基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建

    1. 介绍 在过去几年中,神经网络已经有了很壮观的进展,现在他们几乎已经是图像识别和自动翻译领域中最强者[1].为了从海量数据中获得洞察力,需要部署分布式深度学习.现有的DL框架通常需要为深度学习设置 ...

  9. Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...

随机推荐

  1. 并不对劲的bzoj1758:p4292:[WC2010]重建计划

    题目大意 \(n\)(\(n\leq10^5\))个点的一棵树,有边权\(w\),给定\(l,r\),求边数在\([l,r]\)中的路径的平均边权的最大值 题解 二分答案,判断时将边权变成\(w-mi ...

  2. nginx开发_调试日志

    接口列表 核心文件ngx_log.h 主要接口如下: ngx_log_error(level, log, err, fmt, ...) ngx_log_debug(level, log, err, f ...

  3. 【HDU 4819】Mosaic

    [题目链接] 点击打开链接 [算法] 二维线段树(树套树) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 8 ...

  4. Codechef SUMCUBE

    SUMCUBE code 给定无向简单图 G = (V, E)(即不存在自环和重边),以及 k = 1, 2, 或3 .求$$ \sum_{S \subseteq V} f(S)^k, $$其中 $f ...

  5. UVaLive 6591 && Gym 100299L Bus (水题)

    题意:略. 析:不解释,水题. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include < ...

  6. Unity3D将来时:IL2CPP(上)

    http://inpla.net/thread-8197-1-1.html Unity3D将来时:IL2CPP(上) (注:本文详细的讲述了C#,Mono,.Net, IL等Unity使用到的概念,如 ...

  7. python 可迭代对象与迭代器之间的转换

    列表: >>> l = [1, 2, 3, 4] >>> l_iter = iter(l) >>> l_iter <list_iterato ...

  8. .net mvc中一种简单的工作流的设计

    开篇前的废话:工作流是我们在做互联网应用开发时经常需要用到的一种技术,复杂的工作流我们基本是借助一些开源的 工作流项目来做,比如 ccflow等,但是有时候,我们只需要实现一些简单的工作流流程,这时候 ...

  9. Spring 中的 18 个注解,你会几个?

    阅读本文大概需要 4 分钟. 作者:Java的小本家 @Controller 标识一个该类是 Spring MVC controller 处理器,用来创建处理 http 请求的对象. @RestCon ...

  10. ulimit资源配置

    基本理解 linux对每个用户能使用的系统资源有一定限制.如果没有限制,在多用户登录,并且都消耗大量资源时,对系统产生复杂的影响.ulimit内建一套参数,来规定一个用户能使用多少资源. [root@ ...