• spark

    • 安装
    • 配置
    • 使用java来操作spark

spark

安装

tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz
rm spark-2.4.0-bin-hadoop2.7.tgz
mv spark-2.4.0-bin-hadoop2.7 sparksudo vim /etc/profileexport SPARK_HOME=/usr/local/stormexport PATH=$PATH:$SPARK_HOME/binsource /etc/profile准备 master worker1 worker2 worker3 这四台机器首先确保你的Hadoop集群能够正常运行worker1 worker2 worker3为DataNode, master为NameNode
具体配置参照我的博客https://www.cnblogs.com/ye-hcj/p/10192857.html

配置

  1. spark-env.sh

    进入spark的conf目录下,cp spark-env.sh.template spark-env.shsudo vim spark-env.sh输入如下配置export JAVA_HOME=/usr/local/jdk/jdk-11.0.1export SCALA_HOME=/usr/local/scala/scalaexport HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1export SPARK_HOME=/usr/local/spark/sparkexport HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-3.1.1/etc/hadoopexport SPARK_MASTER_HOST=masterexport SPARK_WORKER_MEMORY=1gexport SPARK_WORKER_CORES=1
  2. slaves

    进入spark的conf目录下,cp slaves.template slavessudo vim slaves输入如下配置    master worker1 worker2 worker3
  3. 启动

    在master中运行 sbin/start-all.sh 即可访问http://master:8080/即可看到spark的ui

使用java来操作spark

写个小demo,用来分析10万个数据中男女人数

  1. 模拟数据的java代码

    // 模拟数据
    // 10万个人当中,统计青年男性和青年女性的比例,看看男女比例是否均衡
    FileOutputStream f = null;
    ThreadLocalRandom random = ThreadLocalRandom.current();
    String str = "";
    int count = 0;
    try {f = new FileOutputStream("C:\\Users\\26401\\Desktop\\data.txt", true); for(;count<100000;count++) {str = count + " " + random.nextInt(18, 28) + " " + (random.nextBoolean()?'M':'F');f.write((str + "\r\n").getBytes());}} catch (Exception e) {e.printStackTrace();
    } finally {try {if(f != null) f.close();} catch (IOException e) {e.printStackTrace();}
    }
  2. 依赖

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>test</artifactId><version>1.0.0</version><name>test</name><description>Test project for spring boot mybatis</description><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.encoding>UTF-8</maven.compiler.encoding><java.version>1.8</java.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties> <dependencies><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>2.4.0</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><useUniqueVersions>false</useUniqueVersions><classpathPrefix>lib/</classpathPrefix></manifest></archive></configuration></plugin></plugins></build>
    </project>
  3. java代码

    package test;import java.io.Serializable;import org.apache.spark.SparkConf;
    import org.apache.spark.api.java.JavaRDD;
    import org.apache.spark.api.java.JavaSparkContext;
    import org.apache.spark.api.java.function.Function;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;public class App implements Serializable
    {private static final long serialVersionUID = -7114915627898482737L;public static void main(String[] args) throws Exception {Logger logger=LoggerFactory.getLogger(App.class);SparkConf sparkConf = new SparkConf();sparkConf.setMaster("spark://master:7077");sparkConf.set("spark.submit.deployMode", "cluster");sparkConf.setAppName("FirstTest");JavaSparkContext sc = new JavaSparkContext(sparkConf);JavaRDD<String> file = sc.textFile("hdfs://master:9000/data.txt");JavaRDD<String> male = file.filter(new Function<String, Boolean>() {private static final long serialVersionUID = 1L;@Overridepublic Boolean call(String s) throws Exception {logger.info(s);return s.contains("M");}});logger.info("**************************************");logger.info(male.count()+""); // 49991logger.info("**************************************");sc.close();// 其他的api请自行查阅,很简单,不想看,可以自己瞎点}
    }
  4. 运行

    1. 将生成的测试数据data.txt上传至hdfs
    2. 将打包的jar上传到master机器
    3. 运行 bin/spark-submit --master spark://master:7077 --class test.App test-1.0.0.jar
    4. 进入spark的ui界面可以清楚的看到打印的消息

转载于:https://www.cnblogs.com/ye-hcj/p/10280114.html

spark集群配置以及java操作spark小demo相关推荐

  1. spark集群访问mysql_一种Spark并行访问MPP数据库的方法与流程

    本发明涉及数据库 技术领域: :,具体来说,涉及一种Spark并行访问MPP数据库的方法. 背景技术: ::从关系数据库读取数据,Spark可以使用DataFrame和JdbcRDD等方法.这些方法在 ...

  2. linux怎么跨节点访问数据,Apache Cassandra多节点跨数据中心集群配置以及日常操作...

    Cassandra是去中心化的集群架构,没有传统集群的中心节点,各个节点地位都是平等的,通过Gossip协议维持集群中的节点信息.为了使集群中的各节点在启动时能发现其他节点,需要指定种子节点(seed ...

  3. spark集群配置安装

    1.下载spark-3.2.1-bin-hadoop2.7.tgz 2.准备3台服务器,在三台服务器的hosts文件里配置主机名和ip的对应关系,例如: 192.168.100.41  node1 1 ...

  4. 从0到1搭建spark集群---企业集群搭建

    今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群. 一.下载Spark安装包 可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hado ...

  5. Spark集群安装介绍

    (1)初学者对于spark的几个疑问 http://aperise.iteye.com/blog/2302481 (2)spark开发环境搭建 http://aperise.iteye.com/blo ...

  6. Spark基础(1)——搭建Spark开发环境、UI界面查看spark集群

    可直接从2.Spark部署开始操作 目录 1.环境前提 1.1已经搭建好hadoop环境 1.2我的参考配置环境 2.Spark部署 2.1下载spark安装包 2.2解压spark安装包 2.2.1 ...

  7. Spark-----Spark 与 Hadoop 对比,Spark 集群搭建与示例运行,RDD算子简单入门

    目录 一.Spark 概述 1.1. Spark是什么 1.2. Spark的特点(优点) 1.3. Spark组件 1.4. Spark和Hadoop的异同 二.Spark 集群搭建 2.1. Sp ...

  8. 大数据之Spark集群安装及简单使用

    目录 1.Spark集群安装 1.1. 安装 2.启动Spark Shell 2.1.启动spark shell 2.2.在spark shell中编写WordCount程序 目录 1.Spark集群 ...

  9. CentOS7下Spark集群的安装

    从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点,Master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点, ...

最新文章

  1. Python中简化的验证码功能实现
  2. 松下电视机服务器未响应,松下电视遥控器失灵是什么原因?要怎么办?
  3. aliyun 阿里云Maven仓库地址 不管是自建私服还是maven构建 必备 结束了几kb的历史
  4. Cell Reports:CRISPR-Cas12k引导的细菌普适性靶向遗传筛选系统
  5. 编程一小时 code.org [六一关注]
  6. MyBatis自学(1):MyBatis概述
  7. python获取某天的属于第几周等时间问题
  8. 粒子群算法 模拟退火算法
  9. 查看链接文件的最终目标的多种方法
  10. 别扔掉你的登机牌,黑客可以用它获取个人信息
  11. (CCTV2视频)中国动画80年
  12. 宝宝吃饭不乖,怎么办?
  13. [附源码]SSM计算机毕业设计中华美食网站JAVA
  14. outlook邮箱pc/mac客户端下载 含最新版
  15. Oracle core读书笔记
  16. SCI论文论点陈述经验分享
  17. 全卷积神经网络图像分割(U-net)-keras实现
  18. 圆形体癣是什么样子的图片_【 身上起圈圈型的癣图片】_如何治疗_怎么治疗-大众养生网...
  19. 互联网日报 | 辛巴回应燕窝事件;有赞预计年交易额将破千亿;杨惠妍连续4年蝉联中国女首富...
  20. GPS卫星运动及定位matlab仿真

热门文章

  1. 在服务器中开虚拟机,可以在云服务器上开虚拟机
  2. HarmonyOS硬件创新合作伙伴,【HarmonyOS】HarmonyOS智能硬件开发学习指南 - HDC2020
  3. 微型计算机广告牌实验报告,微型计算机实验报告1资料.doc
  4. socket编程常见函数使用方法
  5. C++ 内存分配层次以及memory primitives的基本用法
  6. leetcode 242. 有效的字母异位词 思考分析
  7. 生产消费是什么设计模式_快速消费品的完整形式是什么?
  8. mysql怎么消除冗余,mysql剔除冗余数据
  9. python安全攻防---信息收集---IP查询
  10. input 0.1无法相加_你真的知道0.1+0.2为何不等于0.3吗?