• 额,多谢你的支持~~ 你让我更有动力坚持下去了~ 二维码已开,欢迎用钱砸死我😁

  • 卸载了😂 😂 😂 就玩不了了

  • 我一直用的jenkins上的插件。 简单实用

  • 其实原理还是比较简单的。 不是靠filter和reduce。 我们创建RDD的方式有两种,一种是从文件中读取数据,结果自然就是RDD。 还有一个就是通过一个list在内存中生成RDD。我们用的是第二种。先通过xrange(不是range,因为range是一次性在内存中生成。而我们的数据庞大。 所以用xrange,它返回的是一个生成器)生成足够大的原始空表。例如你想造1000行。 那就是sc. parallelize(xrange(1000))。这样你就有了1000行的RDD了。 然后再通过map方法处理每一行。把每一行的数据构造好就行了。 这是最简单的场景。 还有一些比较复杂的,例如你要造拼表的情况,比如要造两个表,附表靠外键跟主表拼接。 这种场景就需要事先造出一个key的RDD来,这个RDD只有一列,就是key。 然后分别造出主表和附表的RDD。 再通过让这个Key的RDD 跟主副两表join

  • 首先说一下USER这个指令哈。USER的意思是工作用户。 是说用哪个用户执行下面的命令。你的例子里面就是用root用户执行下面的命令,并且容器启动以后,entrypoint和CMD都是用root去执行的。 用docker exec命令进入容器的里面也是root用户。 如果换了另一个用户,例如work。 你再用docker exec命令进去容器的时候就会发现当前使用的用户是work了。类似的还有WORKDIR这个指令。意思是工作目录。

    再说就是楼主说的镜像的共享的问题。楼主主要是通过dockerfile来达到镜像共享的问题。他人通过拿到你的dockerfile重新build一个镜像的方式来使用。其实我是十分不推荐这种做法的。 楼主可能觉得一个镜像比较大,传递起来比较麻烦耗时。 但是有些时候重新build一个镜像是更耗时的。尤其是这个镜像有好几层的时候。或者dockerfile里写了很多安装工具的shell,例如安装一个jdk就比较耗时。我这里有一个编译的基本镜像。从gcc到thrift到jdk到scala应有尽有,build这么个镜像没半个小时一个小时的是结束不了的。这时候反倒是拉现有的镜像比较快。 而且重新build一个镜像的话你是控制不了对方给这个镜像起什么名字,用什么tag的。非常的不好管理。 有时候会造成一个机器里同一个镜像有好多个名字和tag的情况。

    所以我比较建议楼主在内网搭建一个镜像仓库。build好一个镜像以后直接push上去。 别人想用的话直接拉下来就好了。 不用你主动的发包给他。你只要维护好镜像仓库上的镜像版本就好了。有点像你在内网搭建了一个docker hub的感觉。 在以后测试环境变多,docker单节点扩展到多节点。 引入编排工具的时候,例如我用的k8s。 在多个节点之间共享镜像用的也同样是镜像仓库。 这类的容器编排工具都会提供image pull policy。通过你选择的策略去决定是否从镜像仓库中重新拉取最新的镜像。

    1. 乱码不是因为系统编码问题,是因为系统没有安装对应的字体。毕竟镜像是老外做的,没有中文的那些字体是比较正常的。你可以继承它的镜像做自己的定制,安装你想要的字体,例如我装的是微软的雅黑字体。如下是我做的:

      另外不要一个节点只启动一个浏览器,那样很浪费资源。传递环境变量进去可以改变配置。如下:

      1. chrome node的镜像有很多版本的。像我用的是3.2.0。 你可以去github和docker hub上查看一下信息

    另外你也可以用像1中的方法。自己定制一个镜像,把chrome的版本换了

  • 依然在招哈

  • 双方都没必要剑拔弩张的。到头来双方都是吃亏的

  • pytest有数据驱动模块的。 不用写for循环。

  • 我没测试过哈,只是我们运维推荐我用的