Я наткнулся на эту проблему во время попытки докереза Avahi , которая должна быть осведомлена о том, что ее публичный IP функционирует должным образом. Назначение статического IP-адреса в контейнере сложно из-за отсутствия поддержки статического присвоения IP в Docker.
В этой статье описывается метод назначения статического IP-адреса к контейнеру на Debian :
DOCKER_OPTS="--bridge=br0 --ip-masq=false --iptables=false"
. Я предполагаю, что мост br0
уже настроен. --cap-add=NET_ADMIN --net=bridge
pre-up ip addr flush dev eth0
в /etc/network/interfaces
может использоваться для отклонения назначенного IP-адреса Docker, как в следующем примере: auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
pre-up ip addr flush dev eth0
address 192.168.0.249
netmask 255.255.255.0
gateway 192.168.0.1
/etc/init.d/networking start
. Кроме того, скрипт ввода должен редактировать или заполнять файл /etc/hosts
, чтобы удалить ссылки на IP-адрес, назначенный Docker. Нет никакой разницы в производительности. Оба метода используют точно такой же механизм выполнения и внутренние структуры данных. В конце дня все сводится к личным предпочтениям.
DataFrame
гораздо проще создавать программно и обеспечивать минимальную безопасность. HiveContext
они могут также использоваться для раскрытия некоторых функций, которые могут быть недоступны другими способами (например, UDF без обтекателей Spark). В идеале катализатор Spark должен оптимизировать оба вызова одного и того же плана выполнения, а производительность должна быть одинаковой. Как позвонить - это всего лишь вопрос вашего стиля. На самом деле существует разница, соответствующая отчету Hortonworks ( https://community.hortonworks.com/articles/42027/rdd-vs-dataframe-vs-sparksql.html ), где SQL превосходит Dataframes для случая, когда вам нужны записи GROUPed с их суммарными COUNTS, которые СООТВЕТСТВУЮТ по названию записи.
Используя DataFrame, можно разбить SQL на несколько операторов / запросов, что помогает в отладке, простых улучшениях и обслуживании кода.
Разбиение сложных SQL-запросов на более простые запросы и назначение результата в DF дает лучшее понимание.
Разбирая запрос на несколько DF, разработчик получает преимущество использования кеша, репарации (до распределять данные равномерно по разделам с помощью уникального ключа / уникального ключа).