我在从一个JAR文件中运行多个不同的类时遇到问题.我知道我可以将JAR中的一个类设置为将在命令后运行的Main类java -jar myjar.jar,但我想要的是:
java -jar myjar.jar MyClass
Run Code Online (Sandbox Code Playgroud)
是否有可能以这种方式执行此操作,或者我是否必须创建多个JAR(每个用于一个可运行的类),或者更好地创建将运行我的其他类传递给命令行参数的"manager"类?
我正在寻找文档或参考,但我找不到任何.
我正在使用新的Hadoop API并寻找一种方法将一些参数(少量字符串)传递给映射器.
我怎样才能做到这一点?
JobConf job = (JobConf)getConf();
job.set("NumberOfDocuments", args[0]);
Run Code Online (Sandbox Code Playgroud)
这里," NumberOfDocuments"是参数的名称,其值是args[0]从命令行参数" " 读取的.设置此参数后,可以在reducer或mapper中检索其值,如下所示:
private static Long N;
public void configure(JobConf job) {
N = Long.parseLong(job.get("NumberOfDocuments"));
}
Run Code Online (Sandbox Code Playgroud)
注意,棘手的部分是你不能设置这样的参数:
Configuration con = new Configuration();
con.set("NumberOfDocuments", args[0]);
Run Code Online (Sandbox Code Playgroud) 我正在为公司内部网创建一个Web应用程序,因为该系统的其他部分是用Java编写的,因此为了集成,Java被选为Web前端.
有要求:
我在考虑Wicket/Spring MVC/Stripes
您对这些要求有何建议?我应该看看哪些其他框架可能对我的应用程序更好?
另外:你能否评论这三个框架如何满足我的要求?
我正在通过大量模式匹配来运行超过1.5 TB数据的Hadoop作业.我有几台机器,每台机器有16GB RAM,而且我总是OutOfMemoryException用这些数据来处理这个工作(我正在使用Hive).
我想知道如何HADOOP_HEAPSIZE在文件中最佳地设置选项,hadoop-env.sh所以我的工作不会失败.是否可以设置此选项,以便我的工作不会失败?
当我设置HADOOP_HEAPSIZE为1.5 GB并从查询中删除一半模式匹配时,作业成功运行.那么这个选项是什么,如果它无助于避免失败?
我打算做更多的优化设置试验,但由于这些工作需要> 10小时才能运行,我会征求您的意见.
我想了解这些项目的替代方案,特别是用于聚合来自多个节点(> 500)的日志中的数据,并设计用于低内存/ CPU使用.
我熟悉scribe,flume和chukwa,我认为他们使用了太多的资源(JRE,很多图书馆).
欢迎以低使用率方式聚合来自多个节点的数据的所有意见和建议.
请告诉我HBase如何跨区域服务器分区表.
例如,假设我的行键是从0到10M的整数,我有10个regionservers.
这是否意味着第一个区域服务器将存储所有行的键值为0 - 10M,第二个1M - 2M,第三个2M-3M,......第十个9M - 10M?
我希望我的行密钥是时间戳,但我认为大多数查询都适用于最新日期,所有查询只会由一个区域服务器处理,这是真的吗?
或者这些数据可能会以不同的方式传播?
或者也许我可以以某种方式创建比我有区域服务器更多的区域,因此(根据给定的示例)服务器1将具有0 - 0,5M和3M - 3,5M的密钥,这样我的数据将更均匀地传播,这是可能?
更新
我刚发现有选择hbase.hregion.max.filesize,你认为这会解决我的问题吗?
我想知道如何运行以Hive格式存储的Pig查询.我已将Hive配置为存储压缩数据(使用本教程http://wiki.apache.org/hadoop/Hive/CompressedStorage).
在此之前,我曾经使用正常的Pig加载函数和Hive的分隔符(^ A).但是现在Hive通过压缩将数据存储在序列文件中.使用哪种加载功能?
注意,不需要像这里提到的紧密集成:使用Hive with Pig,只需要使用什么加载函数来读取Hive生成的压缩序列文件.
感谢所有的答案.
我正在寻找可以帮助我聚合实时日志的工具/数据库/解决方案,并且可以实时查询它们.
基本要求是能够尽快交付结果,请记住,可能有许多事件要查询(可能是数十亿),但是日志会有很多"列",每个查询都会在这些列上设置一些条件,所以最终结果将是某种聚合,或者只返回一小部分行.
现在我正在看HDFS + HBase,这似乎是一个很好的解决方案.还有其他选择吗?你能推荐一下吗?
我正在努力获得我的第一个Scala + Play!应用程序工作,我在尝试访问我的应用程序时遇到此问题(在端口9000上):
not found: type Promise
Run Code Online (Sandbox Code Playgroud)
在这条线上:
val page: Promise[play.api.libs.ws.Response] = WS.url(googleApiUrl).get()
Run Code Online (Sandbox Code Playgroud)
那是我的进口:
import play.api._
import play.api.mvc._
import play.api.libs.ws._
import play.api.libs.ws.Response
import play.api.http
import play.api.libs.concurrent._
import play.api.libs._
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?
这些是控制台上的日志:
sbt.PlayExceptions$CompilationException: Compilation error[not found: type Promise]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:322) ~[na:na]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:322) ~[na:na]
at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:322) ~[na:na]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:319) ~[na:na]
at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
Run Code Online (Sandbox Code Playgroud) 我是akka的新手,我想立刻为一个消息列表运行一个列表akka actor,例如(我在这里使用scala):
输入
message_1
message_2
message_3
Run Code Online (Sandbox Code Playgroud)
每条消息的输出:
1
2
3
Run Code Online (Sandbox Code Playgroud)
会运行3个akka演员一次将每个参数从列表传递到每个参数,我想稍后将这些结果用作List答案.理想情况下,我正在寻找可以让我跟随的操作:
runActorsForListAndWaitForAnswer(messagesList).map(_.toInt()).sum
Run Code Online (Sandbox Code Playgroud)
我不知道这种方法是否存在,但它会有所帮助.任何帮助表示赞赏,谢谢!
我在HBase Book中读到,现在可以从表中删除行.
它是如何工作的?此数据是否移到某处以便以后删除?
HBase受限于编辑一次写入文件时HDFS的限制,所以我很好奇它是如何工作的.如果有人知道更多相关信息,请分享您的知识.
谢谢.
我想知道你的Hadoop开发环境是什么样的?
您是否将jar部署到测试集群,或者以本地模式运行jar?
您使用什么IDE以及使用哪些插件?
如何部署要在服务器上运行的已完成项目?关于设置我自己的Hadoop开发/测试环境,您有什么其他建议?