#hadoop
#hadoop
Вопрос:
Я пытаюсь выполнить псевдораспределенную установку Hadoop на моем компьютере Gentoo. Я хочу, чтобы ничто не было видно из внешней сети — например, веб-интерфейсы jobtracker и namenode — localhost: 50030 и localhost: 50070. Однако я заметил, что могу получить к ним доступ из своей домашней сети.
Как мне ограничить всех демонов прослушиванием только localhost?
Я использовал конфигурацию, предложенную Hadoop:
core-site.xml
1 <?xml version="1.0"?>
2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3
4 <!-- Put site-specific property overrides in this file. -->
5
6 <configuration>
7 <property>
8 <name>fs.default.name</name>
9 <value>hdfs://127.0.0.1:9000</value>
10 </property>
11 </configuration>
mapred-site.xml
1 <?xml version="1.0"?>
2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3
4 <!-- Put site-specific property overrides in this file. -->
5
6 <configuration>
7 <property>
8 <name>mapred.job.tracker</name>
9 <value>127.0.0.1:9001</value>
10 </property>
11 </configuration>
Я также применил IPv4 (взято из этого запроса):
hadoop-env.sh
export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true
Комментарии:
1. Почему бы вам просто не заблокировать порты на брандмауэре? Что находится в вашем /etc / hosts?
2.Я сомневался, есть ли для этого специальные настройки. Кроме того, новые порты, похоже, открываются для других служб, созданных после запуска демонов. Мне придется постоянно отслеживать их все, чтобы заблокировать их. Но, к счастью, порты 90000 и 90001 прослушивают localhost только так, как указано в конфигурациях. Мой файл /etc/ hosts содержит эти две строки:
1 127.0.0.1 localhost no-problems
2 ::1 localhost
3. Я решил свою проблему, написав этот скрипт . Однако для этого требуются права root.
4. Не блокирует ли скрипт все порты, связанные с Java.
5. Да, есть и другие проблемы, я все еще ищу альтернативу. Я не знаю, как фильтровать необходимые порты, поэтому я просто отфильтровал Java-порты. Более того, если после запуска открываются новые порты, это не приведет к их блокировке. И если порты закрыты, команда сброса (когда
hadoop-mask -u
) не будет работать, и правило останется. Вам придется удалить ее вручную — более быстрое решениеiptables -F
также удалит все другие правила, нарушая вашу конфигурацию…