在EMR客户端模式以及群集模式下,Spark Streaming Java自定义接收器问题在yarn中出现。
以下是问题。
当我们在EMR群集(纱线)上运行Spark Streaming的JavaCustomReceiver时,它将在执行程序之一上随机绑定侦听器。因此,我们要做的就是将所有传入流量转移到它随机选择的那个ip。
当那个执行器失败时,情况就更糟了。重新启动后,它将尝试将监听器绑定到另一个随机选择的执行器上。再次,我们必须将传入流量转移到该新选择的节点。
我的问题是:1.我们能否将侦听器绑定到我们选择的特定执行器上?(用于绑定侦听器的固定ip)否... 2.是否可以通过编程方式知道它在哪个执行器上重新启动了侦听器?(因为它选择了随机节点来启动该接收器),最重要的是。3.我们不能在运行驱动程序的节点上绑定侦听器吗?(在客户端模式下运行时)
费耶
我们已经尝试过Receiver超类的preferredLocation,但是我们并没有那么幸运。
对此,我们将给予任何帮助。
客户 - c_id、c_name、c_address 产品 - p_id、p_name、价格 供应商 - s_id、s_name、s_address 订单 - o_id、c_id、p_id、数量、时间
SELECT o.o_id,
c.c_id,
c.c_name,
p.p_id,
p.p_name,
p.price * o.quantity AS amount
FROM customer c
JOIN orders o ON o.c_id = c.c_id
JOIN product p ON p.p_id = o.p_id;
Run Code Online (Sandbox Code Playgroud)
我想在不获取 3 个表作为 pyspark 中的单个数据帧并对数据帧执行连接的情况下执行上述查询。