通过Ambari(HDP)或者Cloudera Management (CDH)等集群管理服务安装和部署在此不多介绍,只需要在界面直接操作和配置即可,本文主要通过原生安装,熟悉安装配置流程。

1.选取三台服务器(CentOS系统64位)

  114.55.246.88 主节点

  114.55.246.77 从节点

  114.55.246.93 从节点

之后的操作如果是用普通用户操作的话也必须知道root用户的密码,因为有些操作是得用root用户操作。如果是用root用户操作的话就不存在以上问题。

  我是用root用户操作的。

2.修改hosts文件

  修改三台服务器的hosts文件。

  vi /etc/hosts

  在原文件的基础最后面加上:

114.55.246.88 Master
114.55.246.77 Slave1
114.55.246.93 Slave2

  修改完成后保存执行如下命令。

  source /etc/hosts

3.ssh无密码验证配置

  3.1安装和启动ssh协议

  我们需要两个服务:ssh和rsync。

  可以通过下面命令查看是否已经安装:

  rpm -qa|grep openssh

  rpm -qa|grep rsync

  如果没有安装ssh和rsync,可以通过下面命令进行安装:

  yum install ssh (安装ssh协议)

  yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)

  service sshd restart (启动服务)

  3.2 配置Master无密码登录所有Salve

  配置Master节点,以下是在Master节点的配置操作。

  1)在Master节点上生成密码对,在Master节点上执行以下命令:

  ssh-keygen -t rsa -P ''

  生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/root/.ssh"目录下。

  2)接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  3)修改ssh配置文件"/etc/ssh/sshd_config"的下列内容,将以下内容的注释去掉:

  RSAAuthentication yes # 启用 RSA 认证

  PubkeyAuthentication yes # 启用公钥私钥配对认证方式

  AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

  4)重启ssh服务,才能使刚才设置有效。

  service sshd restart

  5)验证无密码登录本机是否成功。

  ssh localhost

  6)接下来的就是把公钥复制到所有的Slave机器上。使用下面的命令进行复制公钥:

  scp /root/.ssh/id_rsa.pub root@Slave1:/root/

  scp /root/.ssh/id_rsa.pub root@Slave2:/root/

  

  接着配置Slave节点,以下是在Slave1节点的配置操作。

  1)在"/root/"下创建".ssh"文件夹,如果已经存在就不需要创建了。

  mkdir /root/.ssh

  2)将Master的公钥追加到Slave1的授权文件"authorized_keys"中去。

  cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

  3)修改"/etc/ssh/sshd_config",具体步骤参考前面Master设置的第3步和第4步。

  4)用Master使用ssh无密码登录Slave1

  ssh 114.55.246.77

  5)把"/root/"目录下的"id_rsa.pub"文件删除掉。

  rm –r /root/id_rsa.pub

  重复上面的5个步骤把Slave2服务器进行相同的配置。

  3.3 配置所有Slave无密码登录Master

  以下是在Slave1节点的配置操作。

  1)创建"Slave1"自己的公钥和私钥,并把自己的公钥追加到"authorized_keys"文件中,执行下面命令:

  ssh-keygen -t rsa -P ''

  cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

  2)将Slave1节点的公钥"id_rsa.pub"复制到Master节点的"/root/"目录下。

  scp /root/.ssh/id_rsa.pub root@Master:/root/

  

  以下是在Master节点的配置操作。

  1)将Slave1的公钥追加到Master的授权文件"authorized_keys"中去。

  cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

  2)删除Slave1复制过来的"id_rsa.pub"文件。

  rm –r /root/id_rsa.pub

  配置完成后测试从Slave1到Master无密码登录。

  ssh 114.55.246.88

  按照上面的步骤把Slave2和Master之间建立起无密码登录。这样,Master能无密码验证登录每个Slave,每个Slave也能无密码验证登录到Master。

4.安装基础环境(JAVA和SCALA环境)

  4.1 Java1.8环境搭建

  1)下载jdk-8u121-linux-x64.tar.gz解压

  tar -zxvf jdk-8u121-linux-x64.tar.gz

  2)添加Java环境变量,在/etc/profile中添加:

export JAVA_HOME=/usr/local/jdk1.8.0_121
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/rt.jar
export JAVA_HOME PATH CLASSPATH

  3)保存后刷新配置

  source /etc/profile

  4.2 Scala2.11.8环境搭建

  1)下载scala安装包scala-2.11.8.rpm安装

  rpm -ivh scala-2.11.8.rpm

  2)添加Scala环境变量,在/etc/profile中添加:

export SCALA_HOME=/usr/share/scala
export PATH=$SCALA_HOME/bin:$PATH

  3)保存后刷新配置

  source /etc/profile

5.Hadoop2.7.3完全分布式搭建

  以下是在Master节点操作:

  1)下载二进制包hadoop-2.7.3.tar.gz

  2)解压并移动到相应目录,我习惯将软件放到/opt目录下,命令如下:

  tar -zxvf hadoop-2.7.3.tar.gz

  mv hadoop-2.7.3 /opt

  3)修改相应的配置文件。

  修改/etc/profile,增加如下内容:

 export HADOOP_HOME=/opt/hadoop-2.7.3/
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

  修改完成后执行:

  source /etc/profile

  修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh,修改JAVA_HOME 如下:

  export JAVA_HOME=/usr/local/jdk1.8.0_121

  

  修改$HADOOP_HOME/etc/hadoop/slaves,将原来的localhost删除,改成如下内容:

Slave1
Slave2

  

  修改$HADOOP_HOME/etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.3/tmp</value>
</property>
</configuration>

  

  修改$HADOOP_HOME/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>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop-2.7.3/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop-2.7.3/hdfs/data</value>
</property>
</configuration>

  复制template,生成xml,命令如下:

  cp mapred-site.xml.template mapred-site.xml

  修改$HADOOP_HOME/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.address</name>
<value>Master:19888</value>
</property>
</configuration>

  修改$HADOOP_HOME/etc/hadoop/yarn-site.xml

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>Master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Master:8088</value>
</property>
</configuration>

  4)复制Master节点的hadoop文件夹到Slave1和Slave2上。

  scp -r /opt/hadoop-2.7.3 root@Slave1:/opt

  scp -r /opt/hadoop-2.7.3 root@Slave2:/opt

  5)在Slave1和Slave2上分别修改/etc/profile,过程同Master一样。

  6)在Master节点启动集群,启动之前格式化一下namenode:

  hadoop namenode -format

  启动:

  /opt/hadoop-2.7.3/sbin/start-all.sh

  至此hadoop的完全分布式环境搭建完毕。

  

  7)查看集群是否启动成功:

  jps

  Master显示:

  SecondaryNameNode

  ResourceManager

  NameNode

  

  Slave显示:

  NodeManager

  DataNode

6.Spark2.1.0完全分布式环境搭建

  以下操作都在Master节点进行。

  1)下载二进制包spark-2.1.0-bin-hadoop2.7.tgz

  2)解压并移动到相应目录,命令如下:

  tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz

  mv park-2.1.0-bin-hadoop2.7 /opt

  3)修改相应的配置文件。

  修改/etc/profie,增加如下内容:

export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7/
export PATH=$PATH:$SPARK_HOME/bin

  

  复制spark-env.sh.template成spark-env.sh

  cp spark-env.sh.template spark-env.sh

  修改$SPARK_HOME/conf/spark-env.sh,添加如下内容:

export JAVA_HOME=/usr/local/jdk1.8.0_121
export SCALA_HOME=/usr/share/scala
export HADOOP_HOME=/opt/hadoop-2.7.3
export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
export SPARK_MASTER_IP=114.55.246.88
export SPARK_MASTER_HOST=114.55.246.88
export SPARK_LOCAL_IP=114.55.246.88
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.7.3/bin/hadoop classpath)

  复制slaves.template成slaves

  cp slaves.template slaves

  修改$SPARK_HOME/conf/slaves,添加如下内容:

Master
Slave1
Slave2

  4)将配置好的spark文件复制到Slave1和Slave2节点。

  scp /opt/spark-2.1.0-bin-hadoop2.7 root@Slave1:/opt

scp /opt/spark-2.1.0-bin-hadoop2.7 root@Slave2:/opt

  5)修改Slave1和Slave2配置。

  在Slave1和Slave2上分别修改/etc/profile,增加Spark的配置,过程同Master一样。

  在Slave1和Slave2修改$SPARK_HOME/conf/spark-env.sh,将export SPARK_LOCAL_IP=xxxxx改成Slave1和Slave2对应节点的IP。

  6)在Master节点启动集群。

  /opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh

  7)查看集群是否启动成功:

  jps

  Master在Hadoop的基础上新增了:

  Master

  Slave在Hadoop的基础上新增了:

  Worker

注意:

1.当要是用yarn资源管理器时,不需要启动/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh,只需要启动/opt/hadoop-2.7.3/sbin/start-yarn.sh即可,运行spark任务是用:

spark-shell/spark-submit --master yarn --deploy-mode client/cluster即可

2.当要使用spark自带的standlone或者local模式运行,则需要启动/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh

/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh和/opt/hadoop-2.7.3/sbin/start-yarn.sh都启动时,任务到底在通过哪个资源管理器进行管理运行,则要看提交任务的方式,如:

1>spark-shell/spark-submit --master yarn --deploy-mode client/cluster  //spark on yarn 

2>spark-shell/spark-submit  --master spark://node11:7077  //standlone

3>spark-shell/spark-submit  --master local[*]   //本地模式(用于测试)

spark集群安装部署的更多相关文章

  1. Hadoop2.2集群安装配置-Spark集群安装部署

    配置安装Hadoop2.2.0 部署spark 1.0的流程 一.环境描写叙述 本实验在一台Windows7-64下安装Vmware.在Vmware里安装两虚拟机分别例如以下 主机名spark1(19 ...

  2. Spark 集群安装部署

    安装准备 Spark 集群和 Hadoop 类似,也是采用主从架构,Spark 中的主服务器进程就叫 Master(standalone 模式),从服务器进程叫 Worker Spark 集群规划如下 ...

  3. [bigdata] spark集群安装及测试

    在spark安装之前,应该已经安装了hadoop原生版或者cdh,因为spark基本要基于hdfs来进行计算. 1. 下载 spark:  http://mirrors.cnnic.cn/apache ...

  4. CentOS6安装各种大数据软件 第十章:Spark集群安装和部署

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

  5. Spark入门:第2节 Spark集群安装:1 - 3;第3节 Spark HA高可用部署:1 - 2

    三. Spark集群安装 3.1 下载spark安装包 下载地址spark官网:http://spark.apache.org/downloads.html 这里我们使用 spark-2.1.3-bi ...

  6. Spark 个人实战系列(1)--Spark 集群安装

    前言: CDH4不带yarn和spark, 因此需要自己搭建spark集群. 这边简单描述spark集群的安装过程, 并讲述spark的standalone模式, 以及对相关的脚本进行简单的分析. s ...

  7. 大数据技术之_19_Spark学习_01_Spark 基础解析 + Spark 概述 + Spark 集群安装 + 执行 Spark 程序

    第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2 ...

  8. spark集群安装配置

    spark集群安装配置 一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoo ...

  9. HBase集群安装部署

    0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...

随机推荐

  1. [转载]对iOS开发中内存管理的一点总结与理解

    对iOS开发中内存管理的一点总结与理解   做iOS开发也已经有两年的时间,觉得有必要沉下心去整理一些东西了,特别是一些基础的东西,虽然现在有ARC这种东西,但是我一直也没有去用过,个人觉得对内存操作 ...

  2. Gradle Goodness: Set Java Compiler Encoding

    If we want to set an explicit encoding for the Java compiler in Gradle we can use the options.encodi ...

  3. DQL-排序查询

    三:排序查询 语法: select  列名 from    表名 where  筛选条件 order by  需要排序的列名   asc/desc 特点:不写升序还是降序,默认升序 排序列表 可以是 ...

  4. 谨慎修改Oracle数据库字符集(UTF8<->ZHS16GBK)

      Preface       Today,I'm gonna say something what is related with the character set in Oracle datab ...

  5. App 运行后屏幕顶部和底部各留黑边问题 - iOS

    App 启动后屏幕的顶部和底部各产生一条黑边,App 的内容会被压缩在两个黑条内显示,比例失调的情况. 初步判断是启动页资源图片适配问题. 首先,查看工程 project => General ...

  6. c#数据库访问服务(综合数据库操作)

    前面给大家说封装了常用的数据库,并且整理了使用.最近我再次把项目整合了.做成比较完善的服务. 还是重复的说下数据库操作封装. berkeley db数据库,Redis数据库,sqlite数据库. 每个 ...

  7. grid 布局的使用

    grid 布局的使用 css 网格布局,是一种二维布局系统. 浏览器支持情况:老旧浏览器不支持, 概念: 网格容器.元素应用dispalay:grid,它是所有网格项的父元素. <div cla ...

  8. 2018 Wannafly summer camp Day8--连通块计数

    连通块计数 描述 题目描述: 小 A 有一棵长的很奇怪的树,他由 n 条链和 1 个点作为根构成,第 i条链有 ai​ 个点,每一条链的一端都与根结点相连. 现在小 A 想知道,这棵长得奇怪的树有多少 ...

  9. 利用MyFlash闪回丢失数据

          MyFlash is an open source tool released by Meituan-Dianping which can be used to flashback MyS ...

  10. 『Python基础-11』集合 (set)

    # 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...