我正在尝试将Apache Curator与dockerized zookeeper实例一起使用,无论我如何尝试连接,我总是最终得到一个
org.apache.zookeeper.KeeperException $ UnimplementedException:KeeperErrorCode =未实现...
错误.我已经尝试了解文档,但我没有到达任何地方.我已登录zookeeper CLI并确保端口号正确:
snerd@powerglove:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31f1093495ba compose_zookeeper "/opt/zookeeper/bin/ 3 weeks ago Up About a minute 0.0.0.0:32770->2181/tcp,
0.0.0.0:32769->2888/tcp, 0.0.0.0:32768->3888/tcp zookeeper
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试使用的代码:
public class App {
public static void main( String[] args ) {
CuratorFramework client = CuratorFrameworkFactory.newClient("0.0.0.0:32770", new RetryUntilElapsed(3000, 1000));
client.start();
try {
client.create().forPath("/larry-smells/foop", "tuna?".getBytes());
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,从策展人入门页面来看,这应该可行.我错过了什么?
edit1 刚才发现我能够将数据从动物园管理员集合中拉出来:
System.out.println(new String(curatorFramework.getData().forPath("/larry-smells")));
Run Code Online (Sandbox Code Playgroud)
但是create命令仍然在爆炸.
EDIT2
错误的堆栈跟踪:
org.apache.zookeeper.KeeperException $ …
最近我一直在探索smalltalk方言的世界并且给我留下了非常深刻的印象(从这里可以理解,当我写'smalltalk'时,我正在引用任何现代的smalltalk方言 - squeak/pharo/etc).我喜欢VM的小占地面积和语言本身.
作为研究生,经常需要编写支持我研究的工具.通常我使用Java是因为我可以轻松地将工具部署到我的同事,而不必担心他们的计算机设置是什么或者他们是多么精通技术.启动GUI界面非常容易,最终用户所要做的就是双击可执行JAR并且它们是gtg.问题是Java存在各种安全问题,并不总是在每个平台上以相同的方式运行.因此,Smalltalk开始看起来很有吸引力.
我知道可以创建一个只需双击图标即可启动的smalltalk程序.我想知道的是我是否可以创建一个沙盒的smalltalk世界,这样用户看到并能够与之交互的唯一内容就是我的应用程序.我不希望他们看到smalltalk世界的任何方面.这样,用户就不会意外地搞砸或弄糊涂,因为他们可以访问与程序使用不直接相关的大量选项.这是可能的,如果是的话,我该怎么做?
将gitkraken与支持gitflow的存储库一起使用,并试图找出如何以这种方式完成功能分支,以便从远程删除该功能分支(如果存在).当您使用git-flow脚本时,这会自动发生.与gitkraken一起,手册中似乎没有任何提及.我错过了什么或者没有办法用gitkraken自动执行此操作?
我正在组建一个NLP实验,其中概念是系统中的代理,旨在产生由新概念组成的Emergent属性(这里是那些不知道Emergence是什么的链接).Smalltalk(特别是Pharo方言)似乎是这种应用程序的理想选择,因为我可以轻松地创建完全封装的概念对象,这些对象彼此相关,作为独立代理,而SmallTalk允许我检查系统正在运行的状态.
我担心的是,如果存在太多对象并且所有对象都相互发送消息,系统是否会开始阻塞.从理论上讲,我的实现可以产生数百万个概念对象,如果系统无法处理那么大的东西,我不想把时间花在SmallTalk上.
有关SmallTalk图像中活动对象数量的限制因素(软件因素,而不是硬件)吗?
系统能否处理具有数百万个chatty对象的系统中存在的消息流量?
预先感谢您的帮助!
我有一个Vagrant图像,Spark Notebook,Spark,Accumulo 1.6和Hadoop都在运行.从笔记本,我可以手动创建一个扫描仪,并从我使用其中一个Accumulo示例创建的表中提取测试数据:
val instanceNameS = "accumulo"
val zooServersS = "localhost:2181"
val instance: Instance = new ZooKeeperInstance(instanceNameS, zooServersS)
val connector: Connector = instance.getConnector( "root", new PasswordToken("password"))
val auths = new Authorizations("exampleVis")
val scanner = connector.createScanner("batchtest1", auths)
scanner.setRange(new Range("row_0000000000", "row_0000000010"))
for(entry: Entry[Key, Value] <- scanner) {
println(entry.getKey + " is " + entry.getValue)
}
Run Code Online (Sandbox Code Playgroud)
将给出前10行表数据.
当我尝试创建RDD时:
val rdd2 =
sparkContext.newAPIHadoopRDD (
new Configuration(),
classOf[org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat],
classOf[org.apache.accumulo.core.data.Key],
classOf[org.apache.accumulo.core.data.Value]
)
Run Code Online (Sandbox Code Playgroud)
由于以下错误,我得到一个RDD返回给我,我做不了多少:
java.io.IOException:尚未设置输入信息.org.apache.accumulo.core.client.mapreduce.lib.impl.InputConfigurator.validateOptions(InputConfigurator.java:630)at org.apache.accumulo.core.client.mapreduce.AbstractInputFormat.validateOptions(AbstractInputFormat.java:343) org.apache.accumulo.core.client.mapreduce.AbstractInputFormat.getSplits(AbstractInputFormat.java:538)位于org.apache.spark.rdd的org.apache.spark.rdd.NewHadoopRDD.getPartitions(NewHadoopRDD.scala:98) .RDD $$ anonfun $ partition $ 2.apply(RDD.scala:222)at org.apache.spark.rdd.RDD $$ anonfun …
我是Python的新手,很高兴发现Python3中的类型提示功能.我通过PEP 484阅读并在SO上发现了这个问题,其中提出问题的人想知道为什么没有检查函数的返回类型.受访者指出PEP 484中的一个部分表示检查不会在运行时发生,并且意图是类型提示将由外部程序解析.
我启动了python3 REPL并决定尝试这个
>>> def greeting() -> str: return 1
>>> greeting()
1
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我对函数参数感到好奇,所以我尝试了这个:
>>> def greeting2(name: str) -> str: return 'hi ' + name
>>> greeting2(2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in greeting2
TypeError: Can't convert 'int' object to str implicitly
Run Code Online (Sandbox Code Playgroud)
现在这是轮子似乎脱落的地方,因为看起来,至少在功能参数方面,有检查.我的问题是为什么检查参数而不是返回类型?
以此作为对这个SO问题的跟进
我是scala的新手并且正在解决99个问题.给出的p9解决方案是:
object P09 {
def pack[A](ls: List[A]): List[List[A]] = {
if (ls.isEmpty) List(List())
else {
val (packed, next) = ls span { _ == ls.head }
if (next == Nil) List(packed)
else packed :: pack(next)
}
}
}
Run Code Online (Sandbox Code Playgroud)
该跨度功能在这里做所有的工作.正如您从API文档(它是链接)中看到的那样,span返回一个Tuple2(实际上,doc说它返回一对 - 但是它已经被弃用了,或者是Tuple2).我试图弄清楚为什么你没有得到像列表列表或某些这样的东西,并偶然发现上面的SO链接.据我了解,Tuple2的原因在于不必处理Java的"装箱/拆箱"之类的东西,比如整数这样的对象.我的问题是
1)那是一个准确的陈述吗?
2)是否还有其他原因可以让span返回Tuple2?
谢谢!
pharo ×2
scala ×2
smalltalk ×2
squeak ×2
accumulo ×1
apache ×1
apache-spark ×1
git ×1
git-flow ×1
gitkraken ×1
hadoop ×1
java ×1
python ×1
python-3.5 ×1
type-hinting ×1