Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-10123

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 0.96.1.1
    • 0.99.0
    • None
    • None
    • Incompatible change, Reviewed
    • 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

      Attachments

        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

            People

              jmhsieh Jonathan Hsieh
              stack Michael Stack
              Votes:
              0 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: