供将来参考:我通过将 onMessage/sendMessage 分别切换到后台脚本和内容脚本来解决这个问题。我不知道为什么这有效,但它确实有效。
在过去的三个小时里,我一直在尝试调试这个问题——我正在构建一个 chrome 扩展,并且我发送的消息的响应一直是“未定义”。我试图获取用户所在选项卡的文本并用它来进行一些分析。
内容脚本:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.method == "collectText") {
sendResponse({data: document.body.innerText, method: "collectText"});
}
return true;
}
);
Run Code Online (Sandbox Code Playgroud)
弹出脚本:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {method: "collectText"}, function(response) {
if (response) {
txt = response.data;
console.log("response arrived");
console.log(txt);
} else {
console.log("No response.");
}
});
});
Run Code Online (Sandbox Code Playgroud)
console.logs 当前在那里,以便我知道数据是否返回(它不是 - 每次脚本运行时都会记录“无响应”,并且txt最终未定义)。我不确定为什么这不起作用(并且我已经尝试了相同脚本的许多变体但无济于事)。我在扩展程序或我所在页面的控制台中没有收到任何错误。我应该使用后台脚本而不是在 popup.js 中编写所有内容吗?
谢谢你!
供参考:我通过在hadoop / share / hadoop / common中添加Netty 4.1.17解决了此问题
无论我尝试运行哪种jar(包括来自https://spark.apache.org/docs/latest/running-on-yarn.html的示例),在Yarn上运行Spark时,我都会不断收到有关容器故障的错误消息。我在命令提示符下收到此错误:
Diagnostics: Exception from container-launch.
Container id: container_1530118456145_0001_02_000001
Exit code: 1
Stack trace: ExitCodeException exitCode=1:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:585)
at org.apache.hadoop.util.Shell.run(Shell.java:482)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:776)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
查看日志时,我发现此错误:
Exception in thread "main" java.lang.NoSuchMethodError:io.netty.buffer.PooledByteBufAllocator.metric()Lio/netty/buffer/PooledByteBufAllocatorMetric;
at org.apache.spark.network.util.NettyMemoryMetrics.registerMetrics(NettyMemoryMetrics.java:80)
at org.apache.spark.network.util.NettyMemoryMetrics.<init>(NettyMemoryMetrics.java:76)
at org.apache.spark.network.client.TransportClientFactory.<init>(TransportClientFactory.java:109)
at org.apache.spark.network.TransportContext.createClientFactory(TransportContext.java:99)
at org.apache.spark.rpc.netty.NettyRpcEnv.<init>(NettyRpcEnv.scala:71)
at org.apache.spark.rpc.netty.NettyRpcEnvFactory.create(NettyRpcEnv.scala:461)
at org.apache.spark.rpc.RpcEnv$.create(RpcEnv.scala:57)
at org.apache.spark.deploy.yarn.ApplicationMaster.runExecutorLauncher(ApplicationMaster.scala:530)
at org.apache.spark.deploy.yarn.ApplicationMaster.org$apache$spark$deploy$yarn$ApplicationMaster$$runImpl(ApplicationMaster.scala:347)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$2.apply$mcV$sp(ApplicationMaster.scala:260)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$2.apply(ApplicationMaster.scala:260)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$2.apply(ApplicationMaster.scala:260)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$5.run(ApplicationMaster.scala:815)
at java.security.AccessController.doPrivileged(Native Method) …Run Code Online (Sandbox Code Playgroud)