阿里云服务器kafka无法访问 配置阿里云安全组规则 出端口入端口都要打开配置/etc/hosts 添加内网ip和ipName(可能也要加公网ip)172.18.10.10 HostName配置kafka的server.propertieslisteners=PLAINTEXT://0.0.0.0:9092advertised.listeners=PLAINTEXT://120.78.22.22:9092advertised.host.name=HostName ...
SparkRDD三种数据持久化/数据重用(persist cache checkpoint) 一般情况下,RDD的计算过程是不会保留数据的。所以在重复使用RDD对象时,并不会重用数据,而是又重新计算了一遍,浪费资源、时间。为了实现数据的重用,避免重复计算,需要进行持久化操作当然,对于某些大数据量、计算时间过长的操作来说,因为有可能出现计算错误而导致从源头开始又计算一遍的情况,所以也需要进行数据持久化操作。persist()persist()会把数据临时缓存在内存、磁盘当中(可手动指定)。若涉及到磁盘IO,则性能会受到影响。但保存在磁盘时数据也会较为安全。如果只保存在内存当中(StorageL
为什么把Spark RDD中的方法称之为算子?和Scala中的方法有什么不同? 算子也就是Operator(操作)不同的称呼是为了区分RDD的方法和Scala集合对象的方法Scala集合对象的方法都是在同一个节点的内存中完成的RDD的方法可以将计算逻辑发送到Executor端(分布式节点)执行RDD的方法 外部操作都是在Driver端执行,而方法内部的逻辑代码是在Executor端执行例如:...
spark中coalesce、repartition和partitionBy的异同 目录coalesce为什么要合并缩小分区coalesce使用减小分区这里出现数据倾斜的详细解释扩大分区coalesce和repartitionshufflepartitionBypartitionBy的使用隐式转换默认分区器`HashPartitioner`在Spark中,这三者都是针对分区操作的,功能较为类似我的测试环境如下:win10scala2.12.10spark-3.1.1-bin-hadoop3.2hadoop3.2.2coalescecoalesce既可以实现RDD分区的合
基于Spark实现从服务器日志数据apache.log中获取每个时间段访问量 目录要求日志数据代码部分结果要求在Spark环境中,实现从服务器日志数据apache.log中获取每个时间段访问量这里以一个小时为时间段,不考虑年份日期日志数据资源还在审核中,通过后免费下载,以下是部分数据,供临时测试:83.149.9.216 - - 17/05/2015:10:05:03 +0000 GET /presentations/logstash-monitorama-2013/images/kibana-search.png83.149.9.216 - - 17/05/2015:
spark 运行自带样例SparkPi、spark-examples报错 错误:scala> ./spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ../examples/jars/spark-examples_2.12-3.10.1.jar 10scala> spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ../examples/jars/spark-examples_
不使用ssh-copy-id实现免密ssh登录树莓派 在win10中,是没有ssh-copy-id这一工具的,所以要通过手动复制公钥的方式实现免密登录实现过程第一步 本机生成ssh秘钥文件ssh-keygen这时在
树莓派运行spark-shell出错 在运行spark-shell时出错,检查自己的java版本,一定不要使用openJDK安装的jdk直接从orcale官网下载对应的arm 32/64 的版本:安装过程参考此文
scala使用并行集合暨IDEA无法导入scala依赖 scala使用并行集合导入依赖在scala 2.13.x版本中,使用并行集合需要引用依赖。在这里,你可以查询到需要引入的文件和对应的代码找到合适的版本后,复制代码:网站中给出的xml应当包含在dependencies标签中:<dependencies> <!-- https://mvnrepository.com/artifact/org.scala-lang.modules/scala-parallel-collections --> <depe
Scala:用自定义函数实现while循环功能 目的通过编写函数,借助于闭包、递归、控制抽象、柯里化等实现while循环的全部功能,以加深对于高阶函数的理解。实现最简单的方法:柯里化复杂:闭包+递归+控制抽象复杂:闭包+递归+控制抽象+匿名函数具体程序如下:object mS { //TODO: 用 闭包+递归+控制抽象 实现while循环的功能 //while循环可以看做两部分代码 1.循环条件 2.循环体 //这两部分都是代码块 def main(args: Array[String]): Unit = { var i
Scala高阶函数练习三 要求实现例一:def main(args: Array[String]): Unit = { println(func(0)("")('0')) println(func(1)("")('0')) println(func(2)("")('0')) println(func(0)(" ")('0')) }def func(a: Int): String => Char => Boolean = { def f1(b: String): Char => Boolea
高阶函数练习二:对数组进行处理,将操作抽象出来,处理完毕后返回一个新的数组 要求对数组进行处理,将操作抽象出来,处理完毕后返回一个新的数组实现例一:实现数组各个元素自增10object myClass { //对数组进行处理,将操作抽象出来,处理完毕后返回一个新的数组 def main(args: Array[String]): Unit = { val number = Array(1, 2, 3, 4) val result = arrayOperation(number, plusOne) println(result.mkString(" "))
Scala匿名函数与高阶函数练习 目的定义一个二元运算,只操作1和2两个数字,具体的执行过程通过参数传入通过匿名函数与高阶函数来实现代码object myClass { def main(args: Array[String]): Unit = { val plus = (num1: Int, num2: Int) => { num1 + num2 } val minus = (num1: Int, num2: Int) => { num1 - num2 } //a + b dual
Scala 循环逆序输出的几种形式 Scala 逆序输出的几种形式要求方法1 减法方法2 `reverse`写法1:写法2:写法3:方法3 `foreach()`要求编写一个过程,实现从n到0的数字打印方法1 减法通过减法实现def countDown1(n: Int): Unit = { for(i <- 0 to n) { println(n - i) }}方法2 reverse借助reverse实现写法1:def countDown1(n: Int): Unit = { for (i <- 0
Scala学习笔记-方便查找使用 为Spark学习打基础 Scala学习伊始为什么是Scala网课环境电脑环境安装IDEA插件安装IDEA关联Scala源码基础部分文档注释和生成字符串的三种输出变量和常量数据类型数据类型体系图小结具体数据类型伊始为什么是Scala毕业设计所逼,我课题是《基于spark的实时音乐推荐系统》,而Spark是用Scala开发的,使用Scala必然最合适。虽然Spark提供了Java、Python等的API,但貌似效果不如Scala。网课自己找了个网课,开干
Linux-利用popen函数实现ls –l > file.txt的重定向功能 利用popen函数,实现“ls –l > file.txt”的重定向功能代码如下:#include <stdio.h>#include <stdlib.h>int main(){ FILE * fp;//执行系统命令的指针 FILE * txt;//写文件的指针 char buf[500];//暂时存放信息的数组 fp=popen("ls -l","r");//调用系统命令 if(fp!=NULL) { int num=fread(buf,siz