集群正在运行的情况下,不想为了移除一个tasktracker而重启jobtracker,影响整个集群。直接在要关闭的节点上用hadoop-daemon.sh关闭的话,在50030上还是能看到存在,有什么方法吗?
理論上經過一段時間之後就會消失了,您有試著等個 10 分鐘?
那如果tasktracker已经关闭只是我看不到的话,为什么我在关闭后再输入开启结果在50030上看见两个同一节点的tasktracker了呢?原来的那个没有消除掉?
確實會那樣啊~主要就看 Seconds since heartbeat
一定有一個的數字會一直攀升,那就是關閉前的連線。
這是系統一種容錯(fault tolerance)的機制~不用太介意~
一定有一個的數字會一直攀升,那就是關閉前的連線。
這是系統一種容錯(fault tolerance)的機制~不用太介意~
谢谢,那这两个tasktracker难道会一直并存下去?如果我在彻底断线前又联上了集群,结果是会造成一个新的tasktracker出现?另外请问有没有变量可以设置在heartbeat未接收几秒后就关闭?谢谢
1. 不會一直並存下去,heartbeat 持續變大的那個會消失。
2. 沒錯,在 600 秒(詳底下系統變數預設值)內斷線後重新連線,會看到另一個新的 TaskTracker 出現(同時有兩個相同 hostname 的 TaskTracker)
3. 系統變量 -> 在 mapred-site.xml 中加入:
2. 沒錯,在 600 秒(詳底下系統變數預設值)內斷線後重新連線,會看到另一個新的 TaskTracker 出現(同時有兩個相同 hostname 的 TaskTracker)
3. 系統變量 -> 在 mapred-site.xml 中加入:
<property>
<name>mapred.tasktracker.expiry.interval</name>
<value>600000</value>
<description>Expert: The time-interval, in miliseconds, after which
a tasktracker is declared 'lost' if it doesn't send heartbeats.
</description>
</property>
<name>mapred.tasktracker.expiry.interval</name>
<value>600000</value>
<description>Expert: The time-interval, in miliseconds, after which
a tasktracker is declared 'lost' if it doesn't send heartbeats.
</description>
</property>