一、环境准备

1. 机器: 3 台虚拟机

机器 角色
 l-qta3.sp.beta.cn0 NameNode,ResourceManager,spark的master
l-querydiff1.sp.beta.cn0 DataNode,NodeManager,Worker
l-bgautotest2.sp.beta.cn0 DataNode,NodeManager,Worker

2. jdk版本

[xx@l-qta3.sp.beta.cn0 ~]$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

3. 准备工作

  1)ssh 免密登陆: 集群中的机器需要相互免密访问。参考:http://www.cnblogs.com/lijingchn/p/5580263.html

  2)hadoop 2.6.5 binary  下载。地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

4. 解压 hadoop-2.6.5.tar.gz

将hadoop-2.6.5.tar.gz解压缩到 /home/q/

  cmd : tar -xzvf hadoop-2.6.5.tar.gz -C /home/q/

5. 修改配置文件

  配置文件都在 etc/hadoop/下,这些配置文件里面都有样例,有些是必须设置的。官网配置的介绍:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html

  5.1 修改hadoop-env.sh

    export JAVA_HOME=xxx    -- java 的安装目录

  5.2 修改yarn-env.sh

    export JAVA_HOME=xxxx

  5.3 修改slaves      配置slave的机器名 (这些机器需要能按机器名ping通,即要需要/etc/hosts 文件,按 ip 空格 机器名 的格式设置。)

   slave1

   slave2

  5.4 配置core-site.xml (从core-site.xml.example copy 过来一个,重命名即可。) 

<configuration>
   <!-- 文件系统的地址,jdycluster 对应的是namenode 的地址,这里需要将namenode 的hosts 映射到这个名称。 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://jdycluster</value>
</property> <property>
<name>io.file.buffer.size</name>
<value>4194304</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property> <property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org
.apache.hadoop.io.compress.SnappyCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>
</property> <property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property> <property>
<name>ha.failover-controller.cli-check.rpc-timeout.ms</name>
<value>60000</value>
</property> <property>
<name>ipc.client.connect.timeout</name>
<value>60000</value>
</property> <!-- to solve "impersonate" issue -->
<property>
<name>hadoop.proxyuser.jdydev.hosts</name>
<value>*</value>
</property> <property>
<name>hadoop.proxyuser.jdydev.groups</name>
<value>*</value>
</property> </configuration>

  5.5  配置hdfs-site.xml

<configuration>
<property>
<name>dfs.nameservices</name>
<value>jdycluster</value>
</property>
  <!-- 目录需要自己建好 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/q/hadoop-2.6.5/dfs/name</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property> <property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property> <property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
  <!--- 目录需要自己建好 --->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/q/hadoop-2.6.5/dfs/data</value>
</property> <property>
<name>dfs.ha.namenodes.jdycluster</name>
<value>nn1</value>
</property> <property>
<name>dfs.namenode.rpc-address.jdycluster.nn1</name>
<value>l-qta3.sp.beta.cn0:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.jdycluster.nn1</name>
<value>l-qta3.sp.beta.cn0:50070</value>
</property>

<property>
<name>dfs.client.failover.proxy.provider.jdycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
   <property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

  5.6  配置mapred-site.xml, 这里都是map-reduce 的参数

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1536</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
</property> <property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2560M</value>
</property> <property>
<name>mapreduce.task.io.sort.mb</name>
<value>512</value>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
</property>
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>50</value>
</property> <property>
<name>mapreduce.jobhistory.address</name>
<value>l-qta3.sp.beta.cn0:10020</value>
</property> <property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>l-qta3.sp.beta.cn0:19888</value>
</property> <property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/mr-history/tmp</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/mr-history/done</value>
</property>

  5.7 配置yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

    <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>l-qta3.sp.beta.cn0:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>l-qta3.sp.beta.cn0:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>l-qta3.sp.beta.cn0:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>l-qta3.sp.beta.cn0:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>l-qta3.sp.beta.cn0:8088</value>
</property> </configuration>

  5.8 配置slaves, 这里配置的就是DataNode,NodeManager,Worker的机器。

    l-qta3.sp.beta.cn0

    l-bgautotest2.sp.beta.cn0

  5.9  scp到所有salve机器相同目录下

    scp -r /home/q/hadoop-2.6.5  xx@slave[1-2]:/home/q/

 6 启动hadoop 集群

  6.1 格式化NameNode

     在NameNode执行以下操作

cd  /home/q/hadoop-2.6./bin
sudo bin/hadoop namenode –format

  6.2 启动hadoop集群

方式1:
sbin/start-dfs.sh #启动HDFS
sbin/start-yarn.sh #启动资源管理器
方式2:
sbin/start-all.sh                 
注意: 在启动过程中,启动脚本会依次ssh方式登陆各台机器,所以即使是启动本机的服务也会ssh,这时候 本机也要做免密登陆,否则NameNode会起不来。

  6.3 验证集群是否启动

在NameNode上执行 jps
返回如下:
6996 ResourceManager
6611 NameNode
6412 Jps
在DataNode上执行 jps
返回如下:
22285 NodeManager
22151 DataNode

  说明已经启动成功。进入Hadoop的Web管理页面:http://l-qta3.sp.beta.cn0:50070/

7. 安装spark

  首先到spark官网下载和你安装的hadoop 版本匹配的spark 版本。http://spark.apache.org/downloads.html

  7.1 解压缩 spark-2.0.2-bin-hadoop2.6.tgz

sudo tar -zxvf spark-2.0.-bin-hadoop2..tgz -C /home/q/

  7.2 配置spark-env.sh

cd /home/q/spark-2.0.-bin-hadoop2./conf
cp spark-env.sh.template spark-env.sh
sudo vi spark-env.sh
export JAVA_HOME=/home/q/java/default

export HADOOP_HOME=/home/q/hadoop-2.6.5
export HADOOP_CONF_DIR=/home/q/hadoop-2.6.5/etc/hadoop/
export SPARK_LOCAL_DIRS=/home/q/spark-2.0.2-bin-hadoop2.6
export SPARK_CLASSPATH=/home/q/spark-2.0.2-bin-hadoop2.6/bin
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/home/q/hadoop-2.6.5/share/hadoop/mapreduce/lib/hadoop-lzo-0.4.20-SNAPSHOT.jar
export HIVE_CONF_DIR=/home/q/apache-hive-2.1.1-bin/conf

  7.3 配置salves

vi slaves
l-bgautotest2.sp.beta.cn0
l-querydiff1.sp.beta.cn

  7.4 将spark的安装文件scp到slaves的相同目录下

scp -r /home/q/spark-2.0.-bin-hadoop2. xx@slaves[-]:/home/q/

  7.5 启动spark 集群

sbin/start-all.sh

  7.6 验证是否启动spark集群

master 机器上执行  jps
返回中有:
Master
slave 机器上执行 jps:
返回中有:
Worker
说明启动成功。

进入Spark的Web管理页面:http://l-qta3.sp.cn0:8080 .

hadoop - spark on yarn 集群搭建的更多相关文章

  1. Spark on Yarn集群搭建

    软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这五部机, 每部主机的用户名都为centos ...

  2. Spark高可用集群搭建

    Spark高可用集群搭建 node1    node2    node3   1.node1修改spark-env.sh,注释掉hadoop(就不用开启Hadoop集群了),添加如下语句 export ...

  3. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...

  4. Spark on Yarn 集群运行要点

    实验版本:spark-1.6.0-bin-hadoop2.6 本次实验主要是想在已有的Hadoop集群上使用Spark,无需过多配置 1.下载&解压到一台使用spark的机器上即可 2.修改配 ...

  5. Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)

    现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机 ...

  6. 一文读懂spark yarn集群搭建

    文是超简单的spark yarn配置教程: yarn是hadoop的一个子项目,目的是用于管理分布式计算资源,在yarn上面搭建spark集群需要配置好hadoop和spark.我在搭建集群的时候有3 ...

  7. spark高可用集群搭建及运行测试

    文中的所有操作都是在之前的文章spark集群的搭建基础上建立的,重复操作已经简写: 之前的配置中使用了master01.slave01.slave02.slave03: 本篇文章还要添加master0 ...

  8. [spark]-Spark2.x集群搭建与参数详解

    在前面的Spark发展历程和基本概念中介绍了Spark的一些基本概念,熟悉了这些基本概念对于集群的搭建是很有必要的.我们可以了解到每个参数配置的作用是什么.这里将详细介绍Spark集群搭建以及xml参 ...

  9. spark完全分布式集群搭建

    最近学习Spark,因此想把相关内容记录下来,方便他人参考,也方便自己回忆吧 spark开发环境的介绍资料很多,大同小异,很多不能一次配置成功,我以自己的实际操作过程为准,详细记录下来. 1.基本运行 ...

随机推荐

  1. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  2. MCMC,GIBBS SAMPLING简单摘要

    本文后面很多内容都是参考博客:http://www.cnblogs.com/xbinworld/p/4266146.html.本文主要用作学习交流备忘用. 1)简述: 随机模拟也可以叫做蒙特卡洛模拟, ...

  3. C#并发编程实例讲解-概述(01)

    在工作中经常遇到需要并发编程的实例,一直没有时间来整理,现在空了下来,个人整理对并发一下理解. 关于并发编程的几个误解 误解一:并发编程就是多线程 实际上多线只是并发编程的一中形式,在C#中还有很多更 ...

  4. 美团Java团队分享:如何实践支付通道自动化管理

    随着支付业务量激增,支付团队不断壮大.为了满足日益增长的业务需求,大量的支付通道逐渐接入,但由于对接的各银行和第三方系统的稳定性参差不齐,支付通道故障时有发生,作为承接上下游的核心系统,要在一系列不稳 ...

  5. 读了前半本<Thinking in Java>

    读了1-14章.这本书真的不适合初学者,可能比较适合有一两年Java经验的人来读.学习真的是一个螺旋递进的过程.刚开始学Java基本语法,书上看到的很多东西觉得过于细枝末节,没见过,用不上,导致书看不 ...

  6. 【JavaScript for循环实例】

    1.大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配? //驮100石粮食,大马需要50匹 for(var a=0;a<=50;a++){ //驮1 ...

  7. 跨浏览器开发:CSS

    理解CSS盒子模型 如果不需要很多奇巧淫技的跨浏览器兼容的 CSS 代码,透彻地理解 CSS 盒子模型是首要事情,CSS 盒子模型并不难,且基本支持所有浏览器,除了某些特定条件下的 IE 浏览器.CS ...

  8. JSON对象添加删除属性

    假如目前我们有如下一个Json对象 var jsonObj={ 'param1':22, 'param2' :33 }; 增加属性: 我们现在向该对象jsonObj中添加一个新的属性字段:param3 ...

  9. Linux下安装PostgreSQL 转载linux社区

    Linux下安装PostgreSQL [日期:2016-12-25] 来源:Linux社区  作者:xiaojian [字体:大 中 小]   在Linux下安装PostgreSQL有二进制格式安装和 ...

  10. day2 作业

    1.判断下列逻辑语句的True,False. 1),1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6     ...