小编kam*_*ath的帖子

更改NSURL的计划

有没有一种简单的方法来改变一个方案NSURL?我确实意识到这NSURL是不可改变的.我的目标是在链接时将URL的方案更改为"https" Security.framework,如果框架未链接则将"http" 更改为"http".我知道如何检测框架是否链接.

如果URL没有参数(例如"?param1 = foo¶m2 = bar"),此代码可以很好地工作:

+(NSURL*)adjustURL:(NSURL*)inURL toSecureConnection:(BOOL)inUseSecure {
    if ( inUseSecure ) {
        return [[[NSURL alloc] initWithScheme:@"https" host:[inURL host] path:[inURL path]] autorelease];
    }
    else {
        return [[[NSURL alloc] initWithScheme:@"http" host:[inURL host] path:[inURL path]] autorelease];
    }    
}
Run Code Online (Sandbox Code Playgroud)

但是,如果URL确实有参数,请[inURL path]删除它们.

任何建议都不能自己解析URL字符串(我可以做但我想尝试不做)?我做了什么能够将http或https的URL传递给此方法.

ios

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

在Docker Swarm上部署Spark和HDFS不会启用数据局部性

我正在尝试使用Docker Swarm作为堆栈部署在小型集群上设置Spark + HDFS部署。我可以正常使用它,但是遇到了一个问题,该问题阻止了Spark利用数据局部性。

为了启用数据局部性,我在每个服务器上都制作了一个单一的“工作节点”容器,该容器同时包含Spark工作程序和HDFS数据节点。这里的想法是,由于它们在同一容器中运行,因此它们在堆栈的覆盖网络上都应具有相同的IP地址。但是,他们没有。看来容器在覆盖网络上获得了一个VIP,而堆栈使用的撰写文件中定义的服务获得了另一个VIP。

事实证明,HDFS datanode进程绑定到容器VIP,Spark worker进程绑定到服务的VIP(据我所能确定)。结果,Spark不知道Spark工作者和HDFS数据节点实际上是在同一台计算机上,仅调度具有ANY局部性的任务。

我确定我缺少什么,但是我(当然)不知道什么。

我用于定义每个工作程序节点服务的Docker堆栈组合文件条目如下所示:

version: '3.4'
services:

    ...

    worker-node2:
        image: master:5000/spark-hdfs-node:latest
        hostname: "worker-node2"
        networks:
            - cluster_network
        environment:
            - SPARK_PUBLIC_DNS=10.1.1.1
            - SPARK_LOG_DIR=/data/spark/logs
        depends_on:
            - hdfs-namenode
        volumes:
            - type: bind
              source: /mnt/data/hdfs
              target: /data/hdfs
            - type: bind
              source: /mnt/data/spark
              target: /data/spark
        deploy:
            mode: replicated
            replicas: 1
            placement:
                constraints:
                    - node.hostname == slave1
            resources:
               limits:
                   memory: 56g

    ...

networks:
    cluster_network:
        attachable: true
        ipam:
            driver: default
            config:
                - subnet: 10.20.30.0/24

Run Code Online (Sandbox Code Playgroud)

Hadoop HDFS-site.xml配置如下所示:

<?xml version="1.0" encoding="UTF-8"?> …
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs docker apache-spark docker-swarm

10
推荐指数
1
解决办法
103
查看次数

标签 统计

apache-spark ×1

docker ×1

docker-swarm ×1

hadoop ×1

hdfs ×1

ios ×1