spark集群配置以及java操作spark小demo
- 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
配置
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
slaves
进入spark的conf目录下,cp slaves.template slavessudo vim slaves输入如下配置 master worker1 worker2 worker3
启动
在master中运行 sbin/start-all.sh 即可访问http://master:8080/即可看到spark的ui
使用java来操作spark
写个小demo,用来分析10万个数据中男女人数
模拟数据的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();} }
依赖
<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>
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请自行查阅,很简单,不想看,可以自己瞎点} }
运行
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相关推荐
- spark集群访问mysql_一种Spark并行访问MPP数据库的方法与流程
本发明涉及数据库 技术领域: :,具体来说,涉及一种Spark并行访问MPP数据库的方法. 背景技术: ::从关系数据库读取数据,Spark可以使用DataFrame和JdbcRDD等方法.这些方法在 ...
- linux怎么跨节点访问数据,Apache Cassandra多节点跨数据中心集群配置以及日常操作...
Cassandra是去中心化的集群架构,没有传统集群的中心节点,各个节点地位都是平等的,通过Gossip协议维持集群中的节点信息.为了使集群中的各节点在启动时能发现其他节点,需要指定种子节点(seed ...
- spark集群配置安装
1.下载spark-3.2.1-bin-hadoop2.7.tgz 2.准备3台服务器,在三台服务器的hosts文件里配置主机名和ip的对应关系,例如: 192.168.100.41 node1 1 ...
- 从0到1搭建spark集群---企业集群搭建
今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群. 一.下载Spark安装包 可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hado ...
- Spark集群安装介绍
(1)初学者对于spark的几个疑问 http://aperise.iteye.com/blog/2302481 (2)spark开发环境搭建 http://aperise.iteye.com/blo ...
- Spark基础(1)——搭建Spark开发环境、UI界面查看spark集群
可直接从2.Spark部署开始操作 目录 1.环境前提 1.1已经搭建好hadoop环境 1.2我的参考配置环境 2.Spark部署 2.1下载spark安装包 2.2解压spark安装包 2.2.1 ...
- Spark-----Spark 与 Hadoop 对比,Spark 集群搭建与示例运行,RDD算子简单入门
目录 一.Spark 概述 1.1. Spark是什么 1.2. Spark的特点(优点) 1.3. Spark组件 1.4. Spark和Hadoop的异同 二.Spark 集群搭建 2.1. Sp ...
- 大数据之Spark集群安装及简单使用
目录 1.Spark集群安装 1.1. 安装 2.启动Spark Shell 2.1.启动spark shell 2.2.在spark shell中编写WordCount程序 目录 1.Spark集群 ...
- CentOS7下Spark集群的安装
从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点,Master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点, ...
最新文章
- Python中简化的验证码功能实现
- 松下电视机服务器未响应,松下电视遥控器失灵是什么原因?要怎么办?
- aliyun 阿里云Maven仓库地址 不管是自建私服还是maven构建 必备 结束了几kb的历史
- Cell Reports:CRISPR-Cas12k引导的细菌普适性靶向遗传筛选系统
- 编程一小时 code.org [六一关注]
- MyBatis自学(1):MyBatis概述
- python获取某天的属于第几周等时间问题
- 粒子群算法 模拟退火算法
- 查看链接文件的最终目标的多种方法
- 别扔掉你的登机牌,黑客可以用它获取个人信息
- (CCTV2视频)中国动画80年
- 宝宝吃饭不乖,怎么办?
- [附源码]SSM计算机毕业设计中华美食网站JAVA
- outlook邮箱pc/mac客户端下载 含最新版
- Oracle core读书笔记
- SCI论文论点陈述经验分享
- 全卷积神经网络图像分割(U-net)-keras实现
- 圆形体癣是什么样子的图片_【 身上起圈圈型的癣图片】_如何治疗_怎么治疗-大众养生网...
- 互联网日报 | 辛巴回应燕窝事件;有赞预计年交易额将破千亿;杨惠妍连续4年蝉联中国女首富...
- GPS卫星运动及定位matlab仿真
热门文章
- 在服务器中开虚拟机,可以在云服务器上开虚拟机
- HarmonyOS硬件创新合作伙伴,【HarmonyOS】HarmonyOS智能硬件开发学习指南 - HDC2020
- 微型计算机广告牌实验报告,微型计算机实验报告1资料.doc
- socket编程常见函数使用方法
- C++ 内存分配层次以及memory primitives的基本用法
- leetcode 242. 有效的字母异位词 思考分析
- 生产消费是什么设计模式_快速消费品的完整形式是什么?
- mysql怎么消除冗余,mysql剔除冗余数据
- python安全攻防---信息收集---IP查询
- input 0.1无法相加_你真的知道0.1+0.2为何不等于0.3吗?