Псевдораспределенная установка hadoop только для локального хостинга

#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 также удалит все другие правила, нарушая вашу конфигурацию…