首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Pyspark连接到运行在docker上的datastax Cassandra?

如何将Pyspark连接到运行在docker上的datastax Cassandra?
EN

Stack Overflow用户
提问于 2020-10-20 22:14:28
回答 1查看 224关注 0票数 2

我在Docker上运行Datastax Cassandra,我在Datastax Cassandra上创建了我的表,但是我想用docker-compose.yml安装Pyspark容器,但是我不知道如何设置docker-compose.yml文件的网络来连接Datastax Cassandra和Pyspark容器。

这是docker-compose.yml,用于运行pyspark:

代码语言:javascript
复制
  spark:
    image: jupyter/pyspark-notebook
    container_name: pyspark
    ports:
      - "8888:8888"
      - "4040:4040"
      - "4041:4041"
      - "4042:4042"

    expose:
      - "8888"
      - "4040"
      - "4041"
      - "4042"

    environment:
      CHOWN_HOME: "yes"
      GRANT_SUDO: "yes"
      NB_UID: 1000
      NB_GID: 100
    deploy:
     replicas: 1
     restart_policy:
       condition: on-failure
    volumes:
    - ./Documents:/home/jovyan/work

,这是用于创建Datastax Cassandra容器的docker命令:

代码语言:javascript
复制
docker run \
    -e \
    DS_LICENSE=accept \
    --memory 4g \
    --name my-dse \
    -d \
    -v /Documents/datastax/cassandra:/lib/cassandra \
    -v /Documents/datastax/spark:/lib/spark \
    -v /Documents/datastax/dsefs:/lib/dsefs \
    -v /Documents/datastax/log/cassandra:/log/cassandra \
    -v /Documents/datastax/log/spark:/log/spark \
    -v /Documents/datastax/config:/config \
    -v /Documents/datastax/opscenter:/lib/opscenter \
    -v /Documents/datastax/datastax-studio:/lib/datastax-studio \
    datastax/dse-server:6.8.4 \
    -g \
    -s \
    -k

请帮助我编写docker-compose.yml来运行连接的Pyspark到Cassandra Datastax,以便从其中读取数据。

EN

回答 1

Stack Overflow用户

发布于 2020-10-21 01:59:17

默认情况下,如果两个容器都是由docker-compose启动的,那么docker-compose应该设置common network,所以您可以只对spark.cassandra.connection.host参数使用DSE容器名称。

如果两个容器都不是由docker-compose维护的,那么你可以(你需要正确设置spark.cassandra.connection.host参数):

DSE Docker只需使用DSE容器的内部IP:docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-dse

  • use legacy Docker links (真的不推荐),并对
  • 使用DSE容器名称(请参阅documentation),以及使用DSE容器名称
  • 启动DSE Docker镜像并向外暴露端口9042,并使用主机的IP进行连接

另外,如果你在Jupyter容器中有pyspark,那么你不需要传递-k标志,因为它也会在DSE上启动Spark,而且它在4 4Gb内存的情况下不是很好。此外,如果您不需要DSE Graph,请删除-g开关。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64447052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档