HBase
  1. HBase
  2. HBASE-10123

Change default ports; move them out of linux ephemeral port range

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 0.96.1.1
    • Fix Version/s: 0.99.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Incompatible change, Reviewed
    • Release Note:
      Hide
      After 0.98 hbase's default ports have changed to be outside of the ephemeral port range:.

      hbase.master.port : 60000 -> 16000
      hbase.master.info.port (http): 60010 -> 16010
      hbase.regionserver.port : 60020 -> 16020
      hbase.regionserver.info.port (http): 60030 -> 16030
      hbase.status.multicast.port : 60100 -> 16100


      To set the old defaults you can add this to your hbase-site.xml:

       <property >
          <name>hbase.master.port</name>
          <value>60000</value>
        </property>
        <property>
          <name>hbase.master.info.port</name>
          <value>60010</value>
        </property>
        <property>
          <name>hbase.regionserver.port</name>
          <value>60020</value>
        </property>
        <property>
          <name>hbase.regionserver.info.port</name>
          <value>60030</value>
        </property>
        

      HBase up to and including 0.98.x chose default tcp ports in the 600xx port range which conflicts with the standard unix/linux ephmeral port range of 49152-65535 or 32768-61000. This meant if any other processes chose to bind to a os specified port it could bind to the ports that hbase had as default. If hbase processes were restarted some hbase nodes would fail to start. The probability of this happening increases as the number of nodes in the cluster increases.
      Show
      After 0.98 hbase's default ports have changed to be outside of the ephemeral port range:. hbase.master.port : 60000 -> 16000 hbase.master.info.port (http): 60010 -> 16010 hbase.regionserver.port : 60020 -> 16020 hbase.regionserver.info.port (http): 60030 -> 16030 hbase.status.multicast.port : 60100 -> 16100 To set the old defaults you can add this to your hbase-site.xml:  <property >     <name>hbase.master.port</name>     <value>60000</value>   </property>   <property>     <name>hbase.master.info.port</name>     <value>60010</value>   </property>   <property>     <name>hbase.regionserver.port</name>     <value>60020</value>   </property>   <property>     <name>hbase.regionserver.info.port</name>     <value>60030</value>   </property>    HBase up to and including 0.98.x chose default tcp ports in the 600xx port range which conflicts with the standard unix/linux ephmeral port range of 49152-65535 or 32768-61000. This meant if any other processes chose to bind to a os specified port it could bind to the ports that hbase had as default. If hbase processes were restarted some hbase nodes would fail to start. The probability of this happening increases as the number of nodes in the cluster increases.

      Description

      Our defaults clash w/ the range linux assigns itself for creating come-and-go ephemeral ports; likely in our history we've clashed w/ a random, short-lived process. While easy to change the defaults, we should just ship w/ defaults that make sense. We could host ourselves up into the 7 or 8k range.

      See http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html

      1. hbase-10123.patch
        13 kB
        Jonathan Hsieh
      2. hbase-10123.v2.patch
        13 kB
        Jonathan Hsieh
      3. hbase-10123.v3.patch
        16 kB
        Jonathan Hsieh
      4. hbase-10123.v4.patch
        16 kB
        Jonathan Hsieh

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Jonathan Hsieh
              Reporter:
              stack
            • Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development