我们正在接收来自Kafka的火花流数据.在Spark Streaming中启动执行后,它只执行一个批处理,其余批处理开始在Kafka中排队.
我们的数据是独立的,可以是并行处理.
我们尝试了多个配置,包括多个执行器,核心,背压和其他配置,但到目前为止还没有任何工作.排队的消息很多,一次只处理了一个微批处理,其余的都保留在队列中.
我们希望最大程度地实现并行性,因此没有任何微批处理排队,因为我们有足够的可用资源.那么我们如何通过最大限度地利用资源来减少时间.
// Start reading messages from Kafka and get DStream
final JavaInputDStream<ConsumerRecord<String, byte[]>> consumerStream = KafkaUtils.createDirectStream(
getJavaStreamingContext(), LocationStrategies.PreferConsistent(),
ConsumerStrategies.<String, byte[]>Subscribe("TOPIC_NAME",
sparkServiceConf.getKafkaConsumeParams()));
ThreadContext.put(Constants.CommonLiterals.LOGGER_UID_VAR, CommonUtils.loggerUniqueId());
JavaDStream<byte[]> messagesStream = consumerStream.map(new Function<ConsumerRecord<String, byte[]>, byte[]>() {
private static final long serialVersionUID = 1L;
@Override
public byte[] call(ConsumerRecord<String, byte[]> kafkaRecord) throws Exception {
return kafkaRecord.value();
}
});
// Decode each binary message and generate JSON array
JavaDStream<String> decodedStream = messagesStream.map(new Function<byte[], String>() {
private static final long serialVersionUID = 1L;
@Override
public …Run Code Online (Sandbox Code Playgroud) 以前我把工作的网络摄像头代码放到我的应用程序中,但是现在当我更新到AngularJS v1.5.0时它不起作用.我正在使用与v1.3.0完美配合的webcam-directive.
这是我的代码:
<webcam placeholder="selfiePlaceHolder"
on-stream="onStream(stream)"
on-access-denied="onError(err)" on-streaming="onSuccess(video)">
</webcam>
Run Code Online (Sandbox Code Playgroud)
但是现在它给AngularJS v1.5.0带来了以下错误:
未捕获的错误:[$ parse:isecdom]不允许在Angular表达式中引用DOM节点!表达式:onSuccess(视频) http://errors.angularjs.org/1.5.0/ $ parse/isecdom?p0 = onSuccess(视频)
我也试着使用不同的解决方案AngularJS NG-摄像头,但即使它的演示页是不是为我工作.
注意: 我知道问题是我们无法从较新版本的AngularJS访问DOM,但相同的代码适用于旧版本.我需要知道如何将"Video"DOM对象传递给控制器.
我期待有配置或参数,这些配置或参数可以在通过Yarn提交任何失败的情况下自动重启Spark Jobs。我知道任务会在失败后自动重启。我完全期待可以触发重新运行整个作业的YARN或Spark配置。
现在,如果由于任何问题导致任何作业中止,我们必须手动重新启动它,这会导致要处理较长的数据队列,因为这些数据被设计为几乎实时地工作。
当前配置:
#!/bin/bash
export SPARK_MAJOR_VERSION=2
# Minimum TODOs on a per job basis:
# 1. define name, application jar path, main class, queue and log4j-yarn.properties path
# 2. remove properties not applicable to your Spark version (Spark 1.x vs. Spark 2.x)
# 3. tweak num_executors, executor_memory (+ overhead), and backpressure settings
# the two most important settings:
num_executors=6
executor_memory=32g
# 3-5 cores per executor is a good default balancing HDFS client throughput vs. JVM …Run Code Online (Sandbox Code Playgroud) hadoop hadoop-yarn hortonworks-data-platform apache-spark spark-streaming
我知道水平分区......你可以创建很多表.
我已经看到在基于应用程序的分片中,您将在多个数据库服务器上拥有相同的数据库结构.但它不会包含相同的数据.
例如:
Users 1 - 10000: server A
Users 10001 - 20000: server B
Run Code Online (Sandbox Code Playgroud)
用于分片的技术是MySQL-Proxy,例如一些工具(基于MySQL代理)是SpockProxy.我们也可以手动分片.必需的是主表,例如:
-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------
Run Code Online (Sandbox Code Playgroud)
但是这些技术在应用程序级别处理..我想在DB服务器级别解决它..
我们可以透明地使用多个服务器吗?这将允许Mysql表扩展.
在X服务器上创建X表,最终用户通过简单查询获取数据到单个数据库服务器?
总之,我想在单个表中插入16TB的数据,但我没有在单机上有这么大的空间,所以我想安装两个服务器,每个容量为8TB.但是用户查询单个数据库并在后端获取结果可能会使用分片.
我还讨论了一些其他好的解决方案,例如MYSQL Clustering.
有没有人愿意解释,或者有一个好的初学者教程(循序渐进)教你如何跨多个服务器进行分区?
任何人都可以告诉一个好方法来判断作为字符串的日期是否为Hijri格式?任何自动检测字符串日期类型(Hijri)的好解决方案?
初步工作或思考: 我们可以检查年份从14或13开始像Hijri年份一样,例如"1435"...
我知道用于转换的Java JODA API:
//Convert Georgian to Hijri
DateTime dtISO = new DateTime(2014,2,25,0,0,0,0);
DateTime dtIslamic = dtISO.withChronology(IslamicChronology.getInstance());
String formatIslamic= "dd-MMMM-yyyy";
DateTimeFormatter formatter = DateTimeFormat.forPattern(formatIslamic).withChronology( IslamicChronology.getInstance());
String islamicDateString = formatter.print(dtIslamic);
System.out.println(islamicDateString);
//Convert Hijri to Georgian :
Chronology iso = ISOChronology.getInstanceUTC();
Chronology hijri = IslamicChronology.getInstanceUTC();
DateTime dtHijri = new DateTime(1435,04,24,00,00,hijri);
DateTime dtIso = new DateTime(dtHijri, iso);
System.out.println(dtIso);
Run Code Online (Sandbox Code Playgroud) 我有很好的OCaml代码(30000行天花板).我想将它移植到Java.那么有没有免费的OCaml到Java翻译器?
我需要它,因为我自己的项目是Java,我也熟悉java,但在项目中我要使用OCaml代码,我不想重新发明轮子......我只是想修改代码(OCaml)并使用它..
我见过的OCaml到Java,但它只是使可以调用Java代码是好的ocaml的代码,但我需要完整的翻译.. 源代码(OCaml的),源代码(Java)的编译器 ..
我想在AngularJS Page Load之前加载数据.我在Angualr上也使用bootstrap和JQuery.主要问题是我在页面上有表格,并使用JQuery进行分页和其他过滤器,包括响应性.
现在发生了什么,该页面加载了所有JQuery,后来我的数据出现在页面上,没有什么像分页等.我做了以下解决方法:
<script>
$(function () {
// document.body.style.overflow = 'hidden';
setTimeout(
function()
$('#example1').DataTable({
"paging": true,
"lengthChange": false,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"scrollX": true
});
}, 500);
});
</script>
Run Code Online (Sandbox Code Playgroud)
我添加了手动延迟等待JQuery,以便该页面之前加载其数据.
任何人都可以告诉好的解决方案,如何确保在页面HTML呈现之前加载数据?
我正在努力使正则表达式从句子中找到唯一的数字(纯数字,例如55),而不是字母数字(第2)
例如在句子"这是你的第一次测试,你得到66分"所以它应该只发现"66"而不是第一次的"1".
我试过Regex (\d+),它发现两个数字"66"和"1",但我只需要纯数字而不是字母数字.
java ×3
angularjs ×2
apache-spark ×2
hadoop ×2
javascript ×2
apache-kafka ×1
bigdata ×1
converter ×1
database ×1
dom ×1
hadoop-yarn ×1
hijri ×1
jodatime ×1
jquery ×1
logic ×1
mysql ×1
ocaml ×1
ocamlbuild ×1
regex ×1
sharding ×1
webcam ×1