我有以下情况:
我java在本地计算机上运行了2个JVM进程(实际上有2个进程单独运行,而不是2个线程).我们称他们ProcessA为ProcessB.
我希望他们彼此沟通(交换数据)(例如ProcessA发送消息来ProcessB做某事).
现在,我通过编写临时文件解决此问题,这些进程会定期扫描此文件以获取消息.我认为这个解决方案并不是那么好.
什么是实现我想要的更好的选择?
我们正在使用[WatchService][1]API (JDK 7) 来跟踪在我的系统中创建的文件。到目前为止,它工作正常。我的系统上创建的每个文件都由我的程序跟踪。
但是我们在使用NFS时遇到了麻烦(我们跟踪的目录实际上存在于局域网中的另一台计算机上)。
WatchService 不起作用。
谁能告诉我如何解决这种情况?我如何设置 NFS 以支持 Java 7 WatchServiceAPI,或者谁能告诉我一个更好的库。
谢谢大家
我有一个java程序作为服务运行,这个程序必须插入50k行/秒(1行有25列)到cassandra集群.
我的集群包含3个节点,1个节点有4个cpu核心(核心i5 2.4 ghz),4 gb ram.
我使用了Hector api,多线程,批量插入,但性能太低(约25k行/秒).
任何人都建议另一个解决方案.是否有cassandra支持内部批量插入(不使用Thrift).
我有一个专栏家族AllLog创建
create column family LogData
with column_type = 'Standard'
and comparator = 'CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)'
and default_validation_class = 'UTF8Type'
and key_validation_class = 'CompositeType(UTF8Type,UTF8Type)';
Run Code Online (Sandbox Code Playgroud)
但是当我使用mutator插入时:
String key0 = "key0";
String key1 = "key1";
Composite compositeKey = new Composite();
compositeKey.addComponent(key0, StringSerializer.get());
compositeKey.addComponent(key1, StringSerializer.get());
// add
mutator.addInsertion(compositeKey, columnFamilyName, HFactory.createColumn("name", "value"));
mutator.execute();
Run Code Online (Sandbox Code Playgroud)
总是通过例外:
me.prettyprint.hector.api.exceptions.HInvalidRequestException:
InvalidRequestException(why:Not enough bytes to read value of component 0)
Run Code Online (Sandbox Code Playgroud)
请有人帮助我,这段代码中的错误在哪里?
我已经使用HDFS设置了Spark集群配置,我知道在HDFS示例中Spark将会读取所有默认文件路径:
/ad-cpc/2014-11-28/ Spark will read in : hdfs://hmaster155:9000/ad-cpc/2014-11-28/
Run Code Online (Sandbox Code Playgroud)
有时我想知道如何强制Spark在本地读取文件而不重新配置我的集群(不使用hdfs).
请帮我 !!!
当我们在一些处理之后使用Spark时,我将结果存储到文件中,并使用简单的代码使用snappy编解码器:
data.saveAsTextFile("/data/2014-11-29",classOf[org.apache.hadoop.io.compress.SnappyCodec])
Run Code Online (Sandbox Code Playgroud)
之后我使用Spark来读取这个文件夹文件,所以Everything工作得很好!但是今天我尝试在我的电脑中使用java snappy(java-snappy 1.1.1.2)来解压缩结果文件夹中的文件(这个文件是从这个文件夹中下载到我的Pc的文件之一)
maven依赖:
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.1.1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我用这段代码解压缩:
File fileIn = new File("E:\\dt\\part-00000.snappy");
File fileOut = new File("E:\\dt\\adv1417971604684.dat");
FileOutputStream fos = new FileOutputStream(fileOut, true);
byte[] fileBytes = Files.readAllBytes(Paths.get(fileIn.getPath()));
byte[] fileBytesOut = Snappy.uncompress(fileBytes);
fos.write(fileBytesOut);
Run Code Online (Sandbox Code Playgroud)
但是:(我立即得到这个错误:
java.io.IOException: FAILED_TO_UNCOMPRESS(5)
at org.xerial.snappy.SnappyNative.throw_error(SnappyNative.java:84)
at org.xerial.snappy.SnappyNative.rawUncompress(Native Method)
at org.xerial.snappy.Snappy.rawUncompress(Snappy.java:444)
at org.xerial.snappy.Snappy.uncompress(Snappy.java:480)
at org.xerial.snappy.Snappy.uncompress(Snappy.java:456)
at
Run Code Online (Sandbox Code Playgroud)
在火花群中我们使用:
spark 1.1.0 && hadoop 2.5.1(原生hadoop snappy)
这是我运行hadoop checknative -a的结果:
14/12/09 16:16:57 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
14/12/09 16:16:57 INFO zlib.ZlibFactory: Successfully …Run Code Online (Sandbox Code Playgroud) apache-spark ×3
java ×3
cassandra ×2
hadoop ×2
hector ×2
compression ×1
filesystems ×1
hadoop-yarn ×1
ipc ×1
java-io ×1
nfs ×1
nosql ×1
parquet ×1
snappy ×1