您的位置:首页 > 编程语言 > Java开发

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

2016-12-26 12:03 381 查看
本机环境: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,有些遗漏或者错误的地方请各位大神指正,大家相互学习,谢谢!)

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息