小编Don*_*son的帖子

application_(state:ACCEPTED)的应用程序报告永远不会结束Spark Submit(在YARN上使用Spark 1.2.0)

我正在运行kinesis plus spark应用程序 https://spark.apache.org/docs/1.2.0/streaming-kinesis-integration.html

我正在运行如下

ec2实例上的命令:

 ./spark/bin/spark-submit --class org.apache.spark.examples.streaming.myclassname --master yarn-cluster --num-executors 2 --driver-memory 1g --executor-memory 1g --executor-cores 1  /home/hadoop/test.jar 
Run Code Online (Sandbox Code Playgroud)

我在EMR上安装了火花.

EMR details
Master instance group - 1   Running MASTER  m1.medium   
1

Core instance group - 2 Running CORE    m1.medium
Run Code Online (Sandbox Code Playgroud)

我越来越低于INFO,它永远不会结束.

15/06/14 11:33:23 INFO yarn.Client: Requesting a new application from cluster with 2 NodeManagers
15/06/14 11:33:23 INFO yarn.Client: Verifying our application has not requested more than the maximum memory capability of the cluster (2048 MB per container)
15/06/14 11:33:23 INFO …
Run Code Online (Sandbox Code Playgroud)

amazon-emr hadoop-yarn apache-spark amazon-kinesis

47
推荐指数
5
解决办法
4万
查看次数

在Scala中,如何读取第一行中带有标题的简单CSV文件?

任务是通过简单的CSV文件中的关键字段值查找特定字段(按行数排列)值(只是逗号分隔符,没有字段括号引号,字段内没有逗号),有标题在它的第一行.

用户uynhjl给出了一个示例(但使用不同的字符作为分隔符):


val src = Source.fromFile("/etc/passwd")
val iter = src.getLines().map(_.split(":"))
// print the uid for Guest
iter.find(_(0) == "Guest") foreach (a => println(a(2)))
// the rest of iter is not processed
src.close()

在这种情况下的问题是如何跳过解析标题行?

csv file-io parsing scala

32
推荐指数
2
解决办法
5万
查看次数

请求通道在等待回复时超时

我有一个小应用程序,它使用WCF与Web服务器通信.该程序由大约200个客户端使用,每个客户端以大约5-20个请求/分钟发送.

查看错误日志我经常得到:

在00:00:59.9989999之后等待回复时,请求通道超时

请求如下:

ClientService Client = new ClientService();
Client.Open();
Client.updateOnline(userID);
Client.Close();
Run Code Online (Sandbox Code Playgroud)

这是app.config

<configuration>
<configSections>
</configSections>
<startup><supportedRuntime version="v2.0.50727"/></startup><system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="WSHttpBinding_IClientService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                allowCookies="false">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <reliableSession ordered="true" inactivityTimeout="00:10:00"
                    enabled="false" />
                <security mode="None">
                    <transport clientCredentialType="Windows" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="Windows" negotiateServiceCredential="true" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint address="PATH TO SERVICE"
            binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IClientService"
            contract="IClientService" name="WSHttpBinding_IClientService">
            <identity>
                <dns value="localhost" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

在"多次通话"中,每天约200-800次失败.约n-1是好的.我很困惑这个问题是什么.查看服务器统计信息,它几乎没有出汗 …

c# wcf

29
推荐指数
2
解决办法
6万
查看次数

通过Java中的for-each循环检测第一次迭代

我正在使用一个服务器,它将字符分隔列表返回给它的客户端.为了构建这些列表,我必须通过for-each循环检测第一次迭代:

    StringBuilder builder = new StringBuilder() ;
    boolean firstIterationFlag = true ;

    for ( String s : list ){
        if ( firstIterationFlag) {
            firstIterationFlag = false ;
        } else {
            builder.append(separator);
        }
        builder.append(s) ;         
   }
   return builder.toString() ;
Run Code Online (Sandbox Code Playgroud)

没有旗帜,有没有办法做到这一点?

java foreach

24
推荐指数
2
解决办法
2万
查看次数

Spark RDD - 它们是如何工作的

我有一个小型Scala程序,可以在单个节点上运行.但是,我正在扩展它,因此它在多个节点上运行.这是我的第一次尝试.我只是想了解RDD如何在Spark中工作,所以这个问题是基于理论的,可能不是100%正确.

假设我创建了一个RDD: val rdd = sc.textFile(file)

现在,一旦我这样做了,这是否意味着文件at file现在在节点之间进行分区(假设所有节点都可以访问文件路径)?

其次,我想计算RDD中的对象数量(足够简单),但是,我需要在需要应用于RDD中的对象的计算中使用该数字 - 伪代码示例:

rdd.map(x => x / rdd.size)
Run Code Online (Sandbox Code Playgroud)

假设有100个对象rdd,并且说有10个节点,因此每个节点有10个对象的计数(假设这是RDD概念的工作方式),现在当我调用该方法时,每个节点将使用rdd.sizeas 执行计算10还是100?因为,总的来说,RDD是大小100但在每个节点上本地只是10.我是否需要在进行计算之前制作广播变量?这个问题与下面的问题有关.

最后,如果我转换到RDD,例如rdd.map(_.split("-")),然后我想要新size的RDD,我是否需要在RDD上执行操作,例如count(),所以所有信息都被发送回驱动程序节点?

scala distributed-computing bigdata apache-spark rdd

21
推荐指数
2
解决办法
4777
查看次数

芝加哥老板:路线在生产模式下不起作用?

rahm_test_controller.erlsrc目录中创建了该文件,并添加了一个名为的操作hello.

/priv/rahm.routes,我为主页添加了这一行:

{"/",[{controller,"test"}, {action, "hello"}]}.
Run Code Online (Sandbox Code Playgroud)

如果我启动服务器./init-dev.sh,它可以工作,但如果我在生产模式下启动服务器./init.sh start,它不起作用.当我打开主页时,它显示"没有收到数据".

这有什么问题?

erlang chicagoboss

19
推荐指数
0
解决办法
534
查看次数

如何恢复Cassandra快照?

我正在为Cassandra数据库构建一个备份和恢复过程,以便在需要时准备就绪,以便我了解细节以构建适合生产的东西.我在这里遵循Datastax的说明:

http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_backup_restore_c.html.

首先,我在开发盒上播种数据库,然后尝试进行备份/恢复.这是备份脚本:

#!/bin/bash

cd /opt/apache-cassandra-2.0.9
./bin/nodetool clearsnapshot -t after_seeding makeyourcase
./bin/nodetool snapshot -t after_seeding makeyourcase

cd /var/lib/
tar czf after_seeding.tgz cassandra/data/makeyourcase/*/snapshots/after_seeding
Run Code Online (Sandbox Code Playgroud)

是的,也许,tar不是最有效的方式,但我只是想让一些事情发挥作用.我检查了tar,所有文件都在那里.

备份数据库后,我关闭了Cassandra和我的应用程序,然后rm -rf /var/lib/cassandra/模拟完全丢失.

现在恢复数据库.从http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_backup_snapshot_restore_t.html恢复"方法2" 与我的模式创建组件比方法1更兼容.

所以,方法2 /步骤1,"重新创建模式":重新启动Cassandra,然后重新启动我的应用程序.该应用程序构建为在必要时在启动时重新创建架构.一旦它启动,就会有一个工作的Cassandra节点,其中包含应用程序的架构,但没有数据.

方法2 /步骤2"恢复快照":它们提供了三种选择,第一种是使用sstableloader,记录在http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsBulkloader_t.html.加载器所需的文件夹结构与快照工具创建的文件夹结构完全不同,因此必须将所有内容移动到位.在遇到所有麻烦之前,我会在一张桌子上试一试:

>./bin/sstableloader makeyourcase/users
Error: Could not find or load main class org.apache.cassandra.tools.BulkLoader
Run Code Online (Sandbox Code Playgroud)

嗯,好吧,那不行.BulkLoader位于./lib/apache-cassandra-2.0.9.jar中,但加载器似乎没有设置为开箱即用.让我们继续第二种方法,将快照目录复制到makeyourcase/users/snapshots /目录中,而不是调试工具.这应该很简单,因为我们将快照目录放回原来的位置,所以tar xzf after_seeding.tgz应该这样做:

cd /var/lib/
tar xzf after_seeding.tgz
chmod -R u+rwx cassandra/data/makeyourcase
Run Code Online (Sandbox Code Playgroud)

并将快照目录放回各自的"快照"目录下,刷新应恢复数据:

cd /opt/apache-cassandra-2.0.9
./bin/nodetool refresh -- makeyourcase users
Run Code Online (Sandbox Code Playgroud)

这没有抱怨.请注意,您必须为每个表运行此操作,因此您必须首先生成表列表.但是,在我们这样做之前,请注意Cassandra日志中有一些有趣的东西:

INFO 14:32:26,319 Loading new SSTables for …
Run Code Online (Sandbox Code Playgroud)

cassandra datastax

19
推荐指数
1
解决办法
2万
查看次数

反向代理背后的GWT问题 - 无论是nginx还是apache

当它在反向代理后面时,我遇到了这个问题.后端应用程序部署在上下文中 - 让我们称之为/上下文.

当我直接点击它时,GWT应用程序正常工作:

HTTP://主机:8080 /上下文/

我可以在它前面配置一个反向代理.这是我的nginx示例:

upstream backend {
    server 127.0.0.1:8080;
}

...

location / {
   proxy_pass        http://backend/context/;
}

但是,当我通过反向代理时,GWT感到困惑,说:

2009-10-04 14:05:41.140:/:WARN:  Login: ERROR: The serialization policy file '/C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc' was not found; did you forget to include it in this deployment?
2009-10-04 14:05:41.140:/:WARN:  Login: WARNING: Failed to get the SerializationPolicy 'C7F5ECA5E3C10B453290DE47D3BE0F0E' for module 'https://hostname:444/'; a legacy, 1.3.3 compatible, serialization policy will be used.  You may experience SerializationExceptions as a result.
2009-10-04 14:05:41.292:/:WARN:  StoryService: ERROR: The serialization policy file '/0445C2D48AEF2FB8CB70C4D4A7849D88.gwt.rpc' …

gwt reverse-proxy

16
推荐指数
3
解决办法
1万
查看次数

URL映射问题 - Spring Web MVC

我是Spring和web MVC模块的新手.基本上,我有以下几点:

web.xml中

<servlet>
    <servlet-name>abc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>abc-dispatcher</servlet-name>
    <url-pattern>/user/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

ABC-调度-servlet.xml中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<context:component-scan base-package="myPkg" />


<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/pages/"></property>
    <property name="suffix" value=".jsp"></property>        
</bean>
Run Code Online (Sandbox Code Playgroud)

我有一个控制器,相关的部分是:

@Controller
public class ABCController {

@RequestMapping("/user/welcome")
public String printWelcome(ModelMap model) {

    //code

}
Run Code Online (Sandbox Code Playgroud)

现在每当我尝试访问 http://localhost:8080/myapp/user/welcome

它给了我404.

日志说"映射url'/ user/welcome'到处理程序'ABCController'但是它无法在DispatcherServlet中映射名为'abc-dispatcher'的URI [/ MYAPP/user/welcome].

完全糊涂了.我已经检查了两次指定映射的所有线程,但这不是这里的情况.我肯定错过了什么!

谢谢您的帮助!

spring

15
推荐指数
2
解决办法
3万
查看次数

重新加载AngularJS控制器

我是angularjs的新手.

我的问题是我有一个用于处理登录和注销的用户控制器.我还有另一个控制器来加载我的网站的标题菜单.

如果用户登录到站点,则我的isAuthenticated变量设置为true.如果变量设置为true,则标题应该更改但是,我认为必须重新加载控制器才能更改标题视图.

这里是我的HeaderController的代码:

myapp.controller('HeaderController', ['$scope', '$location', '$window', 'AuthenticationService',  
    function HeaderController($scope, $location, $window, AuthenticationService) {
        $scope.isAuthenticated = AuthenticationService.isAuthenticated;

        if (AuthenticationService.isAuthenticated) {
            $scope.user.vorname = $window.sessionStorage.user.vorname;
        }
    }
]);
Run Code Online (Sandbox Code Playgroud)

这是我的HeaderDirective的代码:

myapp.directive('appHeader', function() {
  return {
    restrict: 'E',
    link: function(scope, element, attrs) {
      if (attrs.isauthenticated == 'false') {
        scope.headerUrl = 'views/header/index.html';
      } else {
        scope.headerUrl = 'views/header/isAuthenticated.html';
      }
    },
    template: '<div ng-include="headerUrl"></div>'
  }
});
Run Code Online (Sandbox Code Playgroud)

我的index.html:

<div ng-controller="HeaderController">
  <app-header isauthenticated="{{isAuthenticated}}"></app-header>
</div>
Run Code Online (Sandbox Code Playgroud)

如果用户登录页面,如何重新加载控制器?

PS:请原谅我糟糕的发音.

javascript controller angularjs

15
推荐指数
2
解决办法
6万
查看次数