为了将Hadoop和Spark的安装简单化,今日写下此帖。

首先,要看手头有多少机器,要安装伪分布式的Hadoop+Spark还是完全分布式的,这里分别记录。

1. 伪分布式安装

伪分布式的Hadoop是将NameNode,SecondaryNameNode,DataNode等都放在一台机器上执行,Spark同理,一般用于开发环境。

1.1 准备工作

系统准备:一台Ubuntu16.04机器,最好能够联网

准备好四个安装包:jdk-8u111-linux-x64.tar.gz,scala-2.12.0.tgz,hadoop-2.7.3.tar.gz,spark-2.0.2-bin-hadoop2.7.tgz

1.2 配置SSH免密码登录

SSH是集群不同机器间实现自由数据传输通信的根本保障。安装完成后试试ssh到本机是否需要密码即可。

sudo apt-get install ssh openssh-server
# 安装SSH ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 配置秘钥 service ssh start
# 启动SSH服务

1.3 解压四个软件包并配置环境变量

解压四个软件包:

tar -zxvf jdk-8u111-linux-x64.tar.gz
sudo mv jdk1.8.0_111 /usr/lib/
# 解压JDK并移动到/usr/lib/下 tar -zxvf scala-2.12.0.tgz
sudo mv scala-2.12.0 /usr/lib/
# 解压scala并移动到/usr/lib/下 tar -zxvf hadoop-2.7.3.tar.gz
# 解压hadoop包 tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz
# 解压spark包

配置环境变量:

当前用户的环境变量位于~/.profile,root用户的环境变量位于/etc/profile。这里我们将环境变量按当前用户配置。vim ~/.profile

vim ~/.profile
# 打开环境变量 # 添加下面的变量
export JAVA_HOME=/usr/lib/jdk1.8.0_111
export SCALA_HOME=/usr/lib/scala-2.12.0
export HADOOP_HOME=/home/user/hadoop-2.7.3
export SPARK_HOME=/home/user/spark-2.0.2-bin-hadoop2.7
export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 保存后使其立即生效
source ~/.profile

  

1.4 配置Hadoop

需要配置三个文件:core-site.xml,mapred-site.xml,hdfs-site.xml。

在core-site.xml中添加如下信息:

vim hadoop-2.7.3/etc/hadoop/core-site.xml
# 打开文件 <configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/user/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

  

在mapred-site.xml中添加如下信息:

cp hadoop-2.7.3/etc/hadoop/mapred-site.xml.template hadoop-2.7.3/etc/hadoop/mapred-site.xml
# 复制一份 vim hadoop-2.7.3/etc/hadoop/mapred-site.xml
# 打开文件 <configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>

  

在hdfs-site.xml中添加如下信息,其中replication是机器数量,此处为1,user为当前用户名:

vim hadoop-2.7.3/etc/hadoop/hdfs-site.xml
# 打开文件 <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/user/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/user/hadoop/tmp/dfs/data</value>
</property>
</configuration>

如果在启动Hadoop时找不到环境变量,可以在hadoop-2.7.3/etc/hadoop/hadoop-env.sh中明确:export JAVA_HOME=/usr/lib/jdk1.8.0_111

1.5 配置Spark

Spark只需要配置spark-env.sh文件。

vim /home/user/spark-2.0.2-bin-hadoop2.7/conf/spark-env.sh
# 打开文件 export JAVA_HOME=/usr/lib/jdk1.8.0_111
export SCALA_HOME=/usr/lib/scala-2.12.0
export SPARK_MASTER_HOST=localhost #单机下配置为localhost
export HADOOP_CONF_DIR=/home/user/hadoop-2.7.3/etc/hadoop/ #hadoop配置目录
export SPARK_WORKER_MEMORY=8g #给spark分配8G内存
export SPARK_WORKER_CORES=16 #允许spark以16核并行运算
# 配置项很多,请参考文件中的提示

  

1.6 启动Hadoop和Spark

先格式化hadoop的HDFS(分布式文件系统),这是必要的步骤,否则NameNode无法启动。但也不需要每次启动Hadoop时都格式化,否则会造成Data和Name不兼容,使得DataNode无法启动,若出现这种情况,删掉tmp/data/current/下的VERSION文件。重新格式化HDFS即可。

启动Hadoop和Spark命令为:

$HADOOP_HOME/bin/hdfs namenode -format
# 格式化HDFS
$HADOOP_HOME/sbin/start-all.sh
# 启动Hadoop
$SPARK_HOME/sbin/start-all.sh
# 启动Spark

启动后,输jps命令,若Hadoop的DataNode,NameNode,SecondaryNameNode,***Manager都启动,Spark的Master和Worker都启动,则集群成功启动,缺一不可。

此时,访问http://localhost:50070可访问Hadoop集群Web任务查看页面,访问http://localhost:8080可访问Spark集群Web任务查看页面。

注意:如果装的是双系统,ubuntu访问ntfs盘符可以使用这条命令激活:ntfsfix /dev/sda5

2. 完全分布式安装

顾名思义,完全分布式安装是真正的集群部署,一般用于生产环境。

2.1 准备工作

系统准备:一台Ubuntu16.04机器作为master(ip:192.168.1.1),最好能够联网;1台及其以上Ubuntu16.04机器作为slave节点(ip:192.168.1.2 ...)

准备好四个安装包:jdk-8u111-linux-x64.tar.gz,scala-2.12.0.tgz,hadoop-2.7.3.tar.gz,spark-2.0.2-bin-hadoop2.7.tgz

2.2 配置SSH免密码登录

SSH是集群不同机器间实现自由数据传输通信的根本保障。安装完成后试试ssh到本机是否需要密码即可。

此处步骤与1.2中相同,但是要将master上的RSA秘钥拷贝到其他机器,实现机器间自由访问。

scp ~/.ssh/id_rsa.pub user@slave01:/home/user/
# 远程拷贝RSA秘钥 ssh slave01;
# 登录slave01
mkdir ~/.ssh;cat ~/id_rsa.pub >> ~/.ssh/authorized_keys;exit;
# 将秘钥生成公钥并退出
ssh slave11;
# 重新连接看是否需要密码,自动登录则成功

依次类推,对所有的slave节点做相同操作,最后实现master到任意slave节点的SSH无密码登录。

此外,我们还需要对每台机器上的hosts文件做配置,以实现SSH到hostname即可访问机器,无需显式IP地址。

sudo vim /etc/hosts
# 打开hosts # 存入下面的IP与hostname映射
192.168.1.1 master
192.168.1.2 slave01
192.168.1.3 slave02
192.168.1.4 slave03
...

依次类推,对所有的slave节点做相同操作。

2.3 解压四个软件包并配置环境变量

在master主节点机器上解压四个软件包和配置环境变量,与1.3相同,不同的是,还需要通过scp命令将配置好的jdk和scala整体拷贝到其他从节点。

2.4 配置Hadoop

需要配置三个文件:core-site.xml,mapred-site.xml,hdfs-site.xml,slaves。

前三个与1.4都相同,只需将localhost改成master(主节点的hostname名),replication改成具体的机器个数。

最后,还需要通过scp命令将配置好的hadoop整体拷贝到其他从节点。

2.5 配置Spark

Spark只需要配置spark-env.sh文件,这一步与1.5相同。最后,通过scp命令将配置好的spark整体拷贝到其他从节点。

2.6 启动Hadoop和Spark

在主节点上启动hadoop和spark,通过jps验证是否成功启动集群。

到此,您就可以在单机上用Eclipse或Intellij做开发,在集群上运行整个集群任务咯!

Ubuntu14.04或16.04下安装JDK1.8+Scala+Hadoop2.7.3+Spark2.0.2的更多相关文章

  1. Ubuntu14.04用apt在线/离线安装CDH5.1.2[Apache Hadoop 2.3.0]

    目录 [TOC] 1.CDH介绍 1.1.什么是CDH和CM? CDH一个对Apache Hadoop的集成环境的封装,可以使用Cloudera Manager进行自动化安装. Cloudera-Ma ...

  2. 在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法

    在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法,我刚开始因为不太会用linux命令,所以一直依赖于python 的pip命令,可是怎么都 ...

  3. buntu14.04和16.04官方默认更新源sources.list和第三方源推荐(干货!)转

    配置完成后: sudo apt-get update 安装和删除软件: sudo apt-get install sudo apt-get remove buntu14.04和16.04官方默认更新源 ...

  4. CentOS 6系统下安装 JDK1.6

    CentOS 6系统下安装 JDK1.6 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品.自从Java推出以来,JDK已经成为使用最广泛的 ...

  5. centos 7下安装jdk1.8

    本篇文章主要介绍在centos7 环境下安装jdk1.8并配置环境变量. 安装步骤 1.下载网址   https://www.oracle.com/technetwork/java/javase/do ...

  6. Linux下安装jdk1.7

    Linux下安装jdk1.7 1.进入 /usr/local下创建一个文件夹software,用来存放安装包. [root@192 ~]# cd /usr/local/ 2.创建文件夹 [root@1 ...

  7. Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04

    Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04 By Raj Last updated ...

  8. CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档

    ----------------CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档----------------------- [JDK1.7安 ...

  9. linux: ubuntu 14.04 和16.04 快速下载

    由于官网服务器在国外,下载速度奇慢,所以我们可以利用阿里云镜像下载ubuntuubuntu 14.04:http://mirrors.aliyun.com/ubuntu-releases/14.04/ ...

随机推荐

  1. 经受时间沉淀的15 个 Android 通用流行框架大全

    1. 缓存 名称描述 DiskLruCache: Java实现基于LRU的磁盘缓存 2.图片加载 名称描述 Android    Universal Image Loader 一个强大的加载,缓存,展 ...

  2. Redis基本信息

    1.Windows安装地址 https://github.com/MSOpenTech/redis/releases 2.命令行方式运行 执行redis-cli.exe 3.待续

  3. 海外建VPS并支持VPN

    推荐 DigitalOcean http://www.digitalocean.com/?refcode=7c26aea99ed6

  4. Lua源码编译之CL编译器编译

    通过使用VC下的CL编译器,可方便地编译Lua源码,而无需构造工程并设置各种选项: 以下以源码Lua5.3.1版本为例,将通过CL编译选项直接编译源码,为方便编译将采用批处理脚本,脚本放置在Lua解压 ...

  5. 浅入tomcat

    前言:学习笔记,以供参考 1.什么是服务器 所谓的服务器其实就是一段别人写好的程序,服务器有两个能力. a.可以帮助我们来管理资源. b.可以将资源向外界发布以便于外界来访问这个资源. 2.资源有哪些 ...

  6. Mac下的类似apt-get的包管理工具Homebrew(笔记)

    对于一个习惯了在 Ubuntu 的终端上通过 apt-get 来安装工具软件的我来说,也希望在Mac上找到类似的工具,能很方便的一条命令就能安装所需的软件,而不用手工的去查找下载编译,或者是折腾安装所 ...

  7. DNG格式解析

    Author:Maddock Date:2015.04.22 转载请注明出处:http://www.cnblogs.com/adong7639/p/4446828.html DNG格式基本概念 DNG ...

  8. 设置CentOS不启用图形界面

    由于linux服务器放在机房长时间运行,或者只是在后台运行,一般通过secureCRT连接服务器: 所以在虚拟机上都不需要图形界面,而且图形界面占用内存. 所以,我们可以通过简单的设置,让linux只 ...

  9. ListView中的setOnScrollListener

    ListView是Android中最常用的控件之一,随着时代发展,RecyclerView有取代它的趋势,但是在一些老代码中,ListView依然扮演着重要的作用.项目中遇到一个需求,需要监听List ...

  10. Spring的事务管理

    事务 事务:是逻辑上一组操作,要么全都成功,要么全都失败. 事务特性(ACID) 原子性:事务不可分割 一致性:事务执行的前后,数据完整性保持一致 隔离性:一个事务执行的时候,不应该受到其他事务的打扰 ...