以前,我是org.apache.hadoop.mapred.JobClient#getJob(org.apache.hadoop.mapred.JobID)
用来获得的RunningJob
.这个调用来自作业完成回调方法,但是,在我看来,存在一个计时问题,如果作业已经完成,那么上面的getJob()
方法找不到它并返回null.我可以确认该作业是从集群UI完成的.
保持RunningJob
分开,是否有办法获得org.apache.hadoop.mapreduce.Job
mapred作业的对象org.apache.hadoop.mapreduce.JobID
,无论作业当前是在运行还是已完成?
我尝试编写类似的代码:
Cluster cluster = jobClient.getClusterHandle();
Job job = cluster.getJob(JobID.forName(jobId));
log.info("Trying to get actual job with id {} , found {} on cluster {}", JobID.forName(jobId), job, cluster);
我可以看到正确的jobId,也可以看到集群对象..但该cluster.getJob()
方法返回null,因此作业本身为null.
有什么我错过的吗?
从Firebase说明:
给定单个关键路径alanisawesome
,updateChildren()
仅在第一个子级别更新数据,并且在第一个子级别之外传递的任何数据都被视为setValue()
操作.多路径行为允许使用更长的路径(如alanisawesome/nickname
)而不覆盖数据.这就是第一个例子与第二个例子不同的原因.
我试图createOrUpdateData(object)
在我的代码中使用单个函数.在更新的情况下,它会正确更新第一级子级,但如果我传递了嵌套对象,则会删除该嵌套对象的所有其他属性.
这是代码:
function saveUserDetails(email,object){
var hashedEmail = Utilities.getHashCode(email);
var userRef = ref.child(hashedEmail);
return $q(function(resolve,reject){
return userRef.update(object, function(error){
if(error){
reject(error);
}else{
resolve("Updated successfully!");
}
});
});
}
Run Code Online (Sandbox Code Playgroud)
所以,如果我通过:
{
name: 'Rohan Dalvi',
externalLinks: {
website: 'mywebsite'
}
}
Run Code Online (Sandbox Code Playgroud)
然后它将删除externalLinks对象中的其他属性.是否有更简洁的方法来避免这种情况?
简而言之,我如何确保仅更新嵌套对象并且不删除数据.
假设我有两个字符串:
如何匹配字符串末尾的"Test",只得到第二个结果,而不是第一个字符串.我正在使用,include?
但它将匹配所有出现,而不仅仅是字符串末尾出现子串的那些.
我很想知道firebase监听器的内部实现是什么样的?
我听说过firebase工程师说firebase听众使用起来很便宜,可以根据需要使用.虽然我同意他们让应用程序实时.如果我的应用程序中有一堆firebase侦听器(为多个用户提供实时国际象棋游戏应用程序),会发生什么.
听众正在聆听一系列动作,包括当游戏中的玩家进行移动时或者当新游戏开始时.如果我每天都有成千上万的用户同时使用该应用程序,那么很容易想象出规模.
firebase如何处理服务器上的这么多请求,因为它们已经为最终用户提供了监听器的强大功能.
我们可以在firebase应用程序中拥有尽可能多的侦听器.这怎么便宜?
如果我的内在假设错了,请纠正我.
这个问题是关于实现firebase深度查询.考虑firebase中的以下结构:
在这里,我的参考指向结构的根/messages
.所以我有 :
var ref = new Firebase("https://cofounder.firebaseio.com/messages");
Run Code Online (Sandbox Code Playgroud)
我想查询Id的消息member = -752163252
.所以基本上返回的对象应该是带键的对象655974744
.我如何在firebase中这样做呢?
这是我在控制台中尝试的内容:
ref.orderByChild("members").equalTo(235642888).on('value', function(snap){console.log("Found ",snap.val())});
Run Code Online (Sandbox Code Playgroud)
结果是:
VM837:2 Found null
Run Code Online (Sandbox Code Playgroud)
我觉得某处缺少某个链接.基本上,我想知道是否有任何方法可以在没有父键ID的情况下查询深层嵌套数据(在本例中为25487894,655974744).
另外,如果我可以扩展我的问题,是否有一种方法可以添加一个在添加新的messageId(在本例中为25487894,655974744)时回调的监听器member = -752163252
.
希望我的问题很清楚.任何帮助是极大的赞赏!
编辑:
我已经看过恐龙的例子,这就是我尝试过的方法,但它没有用.
我写了一些代码来计算,并且还打印了通过n
步骤爬上给定楼梯的方法.
一次只能爬1或2个楼梯.我知道这是一个已知的面试问题,我写了一些代码与你分享.
问题是我错过了很多序列.能否请您查看并帮助我了解我缺少的逻辑?谢谢你的帮助
我的代码:
/**
*
*/
package prep;
/**
* @author rohandalvi
*
*/
public class generateAllPermutations {
/**
* @param args
*/
static int totalCounter = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
int numberOfStairs = 10;
int countSoFar = 0;
String path = "";
for(int i=1;i<3;i++){
path = ""+i;
displayAllPerms(numberOfStairs, i, path);
}
System.out.println("Total combinations found "+totalCounter);
}
public static void displayAllPerms(int n,int countSoFar,String s){
if(countSoFar > n) return;
else …
Run Code Online (Sandbox Code Playgroud) 我需要对我在这里阅读的特定段落做一些解释.
所以在第一个例子中:
// pointers to base class
#include <iostream>
using namespace std;
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b; }
};
class CRectangle: public CPolygon {
public:
int area ()
{ return (width * height); }
};
class CTriangle: public CPolygon {
public:
int area ()
{ return (width * height / 2); }
};
int main () {
CRectangle rect;
CTriangle trgl;
CPolygon * ppoly1 = ▭ …
Run Code Online (Sandbox Code Playgroud)