一、Scala安装

因为spark的版本原因,所以Scala我用的2.11.7。

  下载目录http://www.scala-lang.org/download/

拷贝到要安装的地址,我的地址是/usr/local

解压tar zxvf scala-2.11.7.tgz

修改gedit /etc/profile。

export SCALA_HOME=/usr/local/scala-2.11.7
export PATH=/usr/local/scala-2.11.7/bin:$PATH

然后测试

scala -version
Scala code runner version 2.11.7-- Copyright 2002-2013, LAMP/EPFL

二、安装Spark
官网下载地址:http://spark.apache.org/downloads.html 
需要下载预编译版本

(1)、拷贝到要安装的地址,我的地址是/usr/local

解压tar zxvf spark-2.0.2-bin-hadoop2.4.tgz spark

(2)、spark-env.sh

安装后,需要在 /usr/local/spark/conf,执行如下命令拷贝一个配置文件:

cd  /usr/local/spark/conf

cp ./conf/spark-env.sh.template ./conf/spark-env.sh

这样就有了spark-env.sh,否则只有.template。

编辑 gedit spark-env.sh,在最后面加上如下:

export JAVA_HOME=/usr/local/jdk7
export SCALA_HOME=/usr/local/scala-2.11.7
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_HOST=192.168.1.134          #主节点ip
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=1
export SPARK_HOME=/usr/local/spark
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

(3)slaves

然后修改slaves

cd  /usr/local/spark/conf

cp slaves.template slaves

编辑 gedit slaves,我的hadoop是搭建好了的,主节点名为:master,三个子节点分别为:slave1,slave2,slave3,所以在最后面加上如下:

master
slave1
slave2
slave3

(4)spark-defaults.conf

然后修改spark-defaults.conf

cd  /usr/local/spark/conf

cp spark-defaults.conf.template spark-defaults.conf

编辑 gedit spark-defaults.conf,在最后追加(下面的9000端口是我hadoop配置的hdfs的端口,这样spark才能访问hdfs):

spark.executor.extraJavaOptions -XX:+PrintGCDetails -DKey=value -Dnumbers="one two three"
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master:9000/historyserverforSpark
spark.yarn.historySever.address Master:18080
spark.history.fs.logDirectory hdfs://master:9000/historyserverforSpark

(5)然后将路径/usr/local 下面的spark文件夹拷贝到各个子节点相同的位置上

(6)在hadoop hdfs上创建历史服务器文件夹,否则打不开18080,开启的时候不提示,关闭的时候提示没有historyserver来关闭。hadoop的历史服务器是JHistoryServer,Spark的服务器是HistoryServer。

hdfsdfs -mkdir /historyserverforSpark

配置完成。

三、测试Spark

启动spark前需启动hadoop

启动hadoop

cd $HADOOP_HOME

sbin/start-all.sh

启动spark

cd /usr/local/spark

sbin/start-all.sh

启动spark的服务器

sbin/start-history-server.sh

启动shell客户端

bin/spark-shell

出现scala>时说明成功。

在浏览器中输入192.168.1.134:8080(master ip)时,会看到如下图,有4个worker

在浏览器中输入192.168.10.1:4040(必须先启动spark-shell,否则打不开4040)

出现如图:

说明spark已启动成功!

文件测试,提供思路。

先创建test.txt文件,里面输入内容123123123,然后hadoop上面创建tmp文件,然后将test.txt上传至tmp文件夹。

然后再spark的shell端输入如图:

然后输入y.first()

这里就将test.txt的文件的内容读取出来了,说明能连接hdfs了

四、总结:

1、master内存必须要大点,不然这个配置会卡死,我用的虚拟机开启4个系统搭建的,我的master是2G的内存,其余是1G的内存。

2、指定同一时间最多可打开的文件数一定要大,不然会出现类似

java.io.IOException: All datanodes 127.0.0.1:50010 are bad. Aborting...

这种错误。通过ulimit -n查看当前的数量,一般默认为1024,零时修改可以通过ulimit -n 65535来修改。

参考:http://www.linuxidc.com/Linux/2016-11/137367.htm

spark2.0.2基于hadoop2.4搭建分布式集群的更多相关文章

  1. Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解:zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hadoo ...

  2. 如何基于Jupyter notebook搭建Spark集群开发环境

    摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...

  3. 暑假第二弹:基于docker的hadoop分布式集群系统的搭建和测试

    早在四月份的时候,就已经开了这篇文章.当时是参加数据挖掘的比赛,在计科院大佬的建议下用TensorFlow搞深度学习,而且要在自己的hadoop分布式集群系统下搞. 当时可把我们牛逼坏了,在没有基础的 ...

  4. hadoop2.7全然分布式集群搭建以及任务測试

    要想深入的学习hadoop数据分析技术,首要的任务是必需要将hadoop集群环境搭建起来,本文主要讲述怎样搭建一套hadoop全然分布式集群环境. 环境配置:2台64位的redhat6.5 +  1台 ...

  5. 基于zookeeper+leveldb搭建activemq集群--转载

    原地址:http://www.open-open.com/lib/view/open1410569018211.html 自从activemq5.9.0开始,activemq的集群实现方式取消了传统的 ...

  6. 利用vmware搭建分布式集群

    背景:      我们需要至少3台服务器来实现分布式,鉴于没那么多钱买真机器,从学习和开发的角度看,只有虚拟机一条路了. 软件选择:     虚拟机使用VMware软件,因为主流而且资料比较多,学习成 ...

  7. Docker中自动化搭建Hadoop2.6完全分布式集群

    这一节将在<Dockerfile完成Hadoop2.6的伪分布式搭建>的基础上搭建一个完全分布式的Hadoop集群. 1. 搭建集群中需要用到的文件 [root@centos-docker ...

  8. 基于docker的spark-hadoop分布式集群之一: 环境搭建

    一.软件准备 1.基础docker镜像:ubuntu,目前最新的版本是18 2.需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7. ...

  9. hadoop-2.7.2 分布式集群搭建

    1.机器信息 五台centos 64位机器 2.集群规划 Server Name Hadoop Cluster Zookeeper   Ensemble HBase Cluster Hadoop01 ...

随机推荐

  1. react-native + teaset(Drawer)实现侧边菜单

    1.代码 /** * 购物车 */ import React, {Component} from 'react'; import { View, Image, } from 'react-native ...

  2. iOS开发-简单获取View截图图像(Quartz2D)

    1. 先指定图像的大小 UIGraphicsBeginImageContext(view.frame.size); 2. 在指定的区域绘制图像 [view drawViewHierarchyInRec ...

  3. lucene 查询

    csdn blog - Lucene 3.0 的Query Parser(查询语法)   ibm developerWorks - 使用 Apache Lucene 2.4.1 搜索文本   osch ...

  4. Android开发之用双缓冲技术绘图

    双缓冲技术主要用在画图,动画效果上,其原理就是:将资源先载入到缓冲区,然后再将缓冲区整个载入到View上面去. 双缓冲技术可以有效防止闪烁,提高显示质量. DrawView.java: package ...

  5. 嵌入式实时操作系统Nucleus PLUS综述

    近些年来,随着嵌入式系统飞速的发展.嵌入式实时操作系统广泛地应用在制造工业.过程控制.通讯.仪器仪表.汽车.船舶.航空航天.军事.装备.消费类产 品等方面. Nucleus PLUS 是为实时嵌入式应 ...

  6. Vue 获取验证码倒计时组件

    子组件 <template> <a class="getvalidate":class="{gray: (!stop)}"@click='cl ...

  7. iOS swift中比较模型数组是否相等

    在oc中,如果要比较模型数组中的元素是否相等一般重新isEqual方法即可 -(BOOL)isEqual:(id)object{ if (self == object) { return YES; } ...

  8. UI-9-UITableView

    课程要点: UITableView及其两种风格和三部分 UITableViewController UITableViewCell及其四种风格 通过代理给UITableView设置cell 性能优化 ...

  9. DataUml Design 介绍10 - DataUML 1.4版本功能(增加UML活动图和用例图)

    DataUml Design 1.4版本正式发布 1.解决软件自动关闭的问题 2.增加UML活动图和用例图功能 详细介绍稍后继续...........................

  10. MFC invalidate和RedrawWindow区别

    Invalidate()函数是强制系统进行重画,但是不一定就马上进行重画.因为Invalidate()只是通知系统,此时的窗口已经变为无效.强制系统调用WM_PAINT,而这个消息只是Post就是将该 ...