spark windows java 单机搭建环境并且读取文本中字母数量

本机环境:win10,JDK1.8

JDK 下载以及环境变量配置:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


选择自己电脑对应的版本

安装教程可从网上查找

环境变量配置:我的电脑,右键属性



新建JAVA_HOME:C:\Program Files\Java\jdk1.8.0_77     (自己JDK安装的路径)

Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

新建CLASSPATH:  .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面有一点.)

win+R   ,输入cmd

之后输入java -version 可看到安装java版本,JDK配置完成



第一步:下载spark到本地,并解压在本地目录

下载地址:http://spark.apache.org/ 


选择下载版本,本文下载的是spark-2.0.2-bin-hadoop2.7.tgz



解压后:


第二步:配置环境变量

同样新建SPARK_HOME:C:\work\spark(为解压后的目录)

Path:%SPARK_HOME%\bin;%SPARK_HOME%\sbin


第三步:下载hadoop并解压

下载地址:http://hadoop.apache.org/


点击转到下载地方:




选择下载版本:


点击binary下载tar.gz

解压到文件夹


第四步:配置hadoop环境变量:

新建:HADOOP_HOME:C:\work\hadoop-2.7.3(解压目录)

Path:%HADOOP_HOME%\bin


第五步:由于是在windows 下配置spark  需要下载winutils.exe

如果没有winutils.exe 会出现如下bug:“Could not locate executable null\bin\winutils.exe in the Hadoop binaries”

下载地址可从网上查询

下载之后,放入hadoop的bin文件夹下


到目前为止算是全部配置完成,之后就可以打开IDEA进行编码:

idea:

第六步: 新建java 工程 (为java 项目)

新建之后导入jar包:

点击左上角  File--->Project structure 



 选择 java 点击

  

选择解压spark目录 中的jars  (如果没有选择lib) 确定OK





第七步: 写代码


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;

public class WordCount {
    public static void main(String[] args) {
        String logFile = "C://work//zh//work_file//a.txt";

        /**
         * 第1步:创建Spark的配置对象SparkConf,设置Spark程序的运行时的配置信息,
         * 例如说通过setMaster来设置程序要链接的Spark集群的Master的URL,如果设置
         * 为local,则代表Spark程序在本地运行,特别适合于机器配置条件非常差(例如
         * 只有1G的内存)的初学者       *
         */
        SparkConf conf = new SparkConf().setAppName("WordCount").setMaster("local");
        /**
         * 第2步:创建SparkContext对象
         * SparkContext是Spark程序所有功能的唯一入口,无论是采用Scala、
         * Java、Python、R等都必须有一个SparkContext(不同的语言具体的类名称不同,如果是java 的为javaSparkContext)
         * SparkContext核心作用:初始化Spark应用程序运行所需要的核心组件,
         * 包括DAGScheduler、TaskScheduler、SchedulerBackend
         * 同时还会负责Spark程序往Master注册程序等
         * SparkContext是整个Spark应用程序中最为至关重要的一个对象
         */
        JavaSparkContext sc = new JavaSparkContext(conf);
        //使用persist方法或cache方法将RDD缓存到内存
        /**
         * 第3步:根据具体的数据来源(HDFS、HBase、Local FS、DB、S3等)通过SparkContext来创建RDD
         * JavaRDD的创建基本有三种方式:
         * 根据外部的数据来源(例如HDFS)、根据Scala集合、由其它的RDD操作
         * 数据会被JavaRDD划分成为一系列的Partitions,分配到每个Partition的数据属于一个Task的处理范畴
         */
        JavaRDD<String> logData = sc.textFile(logFile).cache();

        Long numAs = logData.filter(new Function<String, Boolean>() {
            @Override
            public Boolean call(String s) throws Exception {
                return s.contains("a");
            }
        }).count();

        Long numBs = logData.filter(new Function<String, Boolean>() {
            @Override
            public Boolean call(String s) throws Exception {
                return s.contains("b");
            }
        }).count();
        System.out.println("Lines with a:" +numAs+"Lines with b:"+numBs);
    }



}

可找出文件中a 和 b 的数量


(由于本人刚刚接触spark,有些遗漏或者错误的地方请各位大神指正,大家相互学习,谢谢!)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值