<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/old_news.xml
 | Rendered using Apache Maven Fluido Skin 1.7.1-HBase
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache HBase &#x2013; 
      Old Apache HBase (TM) News
    </title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.1-HBase.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script type="text/javascript" src="./js/apache-maven-fluido-1.7.1-HBase.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0"></meta>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap-responsive.min.css"/>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/styles/github.min.css"/>
      <link rel="stylesheet" href="css/site.css"/>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/highlight.min.js"></script>
  </head>
  <body class="topBarEnabled">
    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
            <div class="container">
              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
              </a>
              <div class="nav-collapse">
            <ul class="nav">
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache HBase Project <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="index.html" title="Overview">Overview</a></li>
            <li><a href="licenses.html" title="License">License</a></li>
            <li><a href="http://www.apache.org/dyn/closer.cgi/hbase/" title="Downloads">Downloads</a></li>
            <li><a href="https://issues.apache.org/jira/browse/HBASE?report=com.atlassian.jira.plugin.system.project:changelog-panel#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel" title="Release Notes">Release Notes</a></li>
            <li><a href="coc.html" title="Code Of Conduct">Code Of Conduct</a></li>
            <li><a href="http://blogs.apache.org/hbase/" title="Blog">Blog</a></li>
            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
            <li><a href="team.html" title="Team">Team</a></li>
            <li><a href="https://reviews.apache.org/" title="ReviewBoard">ReviewBoard</a></li>
            <li><a href="sponsors.html" title="Thanks">Thanks</a></li>
            <li><a href="poweredbyhbase.html" title="Powered by HBase">Powered by HBase</a></li>
            <li><a href="resources.html" title="Other resources">Other resources</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="summary.html" title="Project Summary">Project Summary</a></li>
            <li><a href="dependency-info.html" title="Dependency Information">Dependency Information</a></li>
            <li><a href="scm.html" title="Source Repository">Source Repository</a></li>
            <li><a href="issue-management.html" title="Issue Tracking">Issue Tracking</a></li>
            <li><a href="dependency-management.html" title="Dependency Management">Dependency Management</a></li>
            <li><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
            <li><a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a></li>
            <li><a href="plugin-management.html" title="Plugin Management">Plugin Management</a></li>
            <li><a href="plugins.html" title="Plugins">Plugins</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation and API <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="book.html" target="_blank" title="Reference Guide">Reference Guide</a></li>
            <li><a href="apache_hbase_reference_guide.pdf" target="_blank" title="Reference Guide (PDF)">Reference Guide (PDF)</a></li>
            <li><a href="book.html#quickstart" target="_blank" title="Getting Started">Getting Started</a></li>
            <li><a href="apidocs/index.html" target="_blank" title="User API">User API</a></li>
            <li><a href="testapidocs/index.html" target="_blank" title="User API (Test)">User API (Test)</a></li>
            <li><a href="2.0/devapidocs/index.html" target="_blank" title="Developer API">Developer API</a></li>
            <li><a href="2.0/testdevapidocs/index.html" target="_blank" title="Developer API (Test)">Developer API (Test)</a></li>
            <li><a href="http://abloz.com/hbase/book.html" target="_blank" title="中文参考指南(单页)">中文参考指南(单页)</a></li>
            <li><a href="book.html#faq" target="_blank" title="FAQ">FAQ</a></li>
            <li><a href="book.html#other.info" target="_blank" title="Videos/Presentations">Videos/Presentations</a></li>
            <li><a href="http://wiki.apache.org/hadoop/Hbase" target="_blank" title="Wiki">Wiki</a></li>
            <li><a href="acid-semantics.html" target="_blank" title="ACID Semantics">ACID Semantics</a></li>
            <li><a href="book.html#arch.bulk.load" target="_blank" title="Bulk Loads">Bulk Loads</a></li>
            <li><a href="metrics.html" target="_blank" title="Metrics">Metrics</a></li>
            <li><a href="cygwin.html" target="_blank" title="HBase on Windows">HBase on Windows</a></li>
            <li><a href="book.html#replication" target="_blank" title="Cluster replication">Cluster replication</a></li>
            <li class="dropdown-submenu">
<a href="" title="1.2 Documentation">1.2 Documentation</a>
              <ul class="dropdown-menu">
                  <li><a href="1.2/apidocs/index.html" target="_blank" title="API">API</a></li>
                  <li><a href="1.2/xref/index.html" target="_blank" title="X-Ref">X-Ref</a></li>
                  <li><a href="1.2/book.html" target="_blank" title="Ref Guide (single-page)">Ref Guide (single-page)</a></li>
              </ul>
            </li>
            <li class="dropdown-submenu">
<a href="" title="1.1 Documentation">1.1 Documentation</a>
              <ul class="dropdown-menu">
                  <li><a href="1.1/apidocs/index.html" target="_blank" title="API">API</a></li>
                  <li><a href="1.1/xref/index.html" target="_blank" title="X-Ref">X-Ref</a></li>
                  <li><a href="1.1/book.html" target="_blank" title="Ref Guide (single-page)">Ref Guide (single-page)</a></li>
              </ul>
            </li>
        </ul>
      </li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="http://www.apache.org/foundation/" target="_blank" title="Apache Software Foundation">Apache Software Foundation</a></li>
            <li><a href="http://www.apache.org/foundation/how-it-works.html" target="_blank" title="How Apache Works">How Apache Works</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank" title="Sponsoring Apache">Sponsoring Apache</a></li>
        </ul>
      </li>
            </ul>
    <div id="search-form" class="navbar-search pull-right">
      <script type="text/javascript">
      var cx = '000385458301414556862:sq1bb0xugjg';

      (function() {
        var gcse = document.createElement('script');
        gcse.type = 'text/javascript';
        gcse.async = true;
        gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(gcse, s);
      })();

      </script>
      <gcse:search></gcse:search>
  </div>
            </div>
        </div>
      </div>
    </div>
    <div class="container">
      <div id="banner">
        <div class="pull-left"><a href="./" id="bannerLeft"><img src=""  alt=""/></a></div>
        <div class="pull-right"><a href="http://hbase.apache.org/" id="bannerRight"><img src="images/hbase_logo_with_orca_large.png"  alt="Apache HBase"/></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        </ul>
      </div>
        <div id="bodyColumn" >

  
  <div class="section">
<h2><a name="Old_News"></a>Old News</h2>
         
<p>February 10th, 2014 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/163139322/">HBase Meetup @ Continuuity</a> in Palo Alto</p>
         
<p>January 30th, 2014 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/158491762/">HBase Meetup @ Apple</a> in Cupertino</p>
         
<p>January 30th, 2014 <a class="externalLink" href="http://www.meetup.com/Los-Angeles-HBase-User-group/events/160560282/">Los Angeles HBase User Group</a> in El Segundo</p>
         
<p>October 24th, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/140759692/">HBase User and <a class="externalLink" href="http://www.meetup.com/hackathon/events/144366512/">Developer</a> Meetup at HortonWorks.in Palo Alto</p>
         
<p>September 26, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/135862292/">HBase Meetup at Arista Networks</a>.in San Francisco</p>
         
<p>August 20th, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/120534362/">HBase Meetup at Flurry</a>.in San Francisco</p>
         
<p>July 16th, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/119929152/">HBase Meetup at Twitter</a>.in San Francisco</p>
         
<p>June 25th, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/119154442/">Hadoop Summit Meetup</a>.at San Jose Convention Center</p>
         
<p>June 14th, 2013 <a class="externalLink" href="http://kijicon.eventbrite.com/">KijiCon: Building Big Data Apps</a> in San Francisco.</p>
         
<p>June 13th, 2013 <a class="externalLink" href="http://www.hbasecon.com/">HBaseCon2013</a> in San Francisco.  Submit an Abstract!</p>
         
<p>June 12th, 2013 <a class="externalLink" href="http://www.meetup.com/hackathon/events/123403802/">HBaseConHackAthon</a> at the Cloudera office in San Francisco.</p>
         
<p>April 11th, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/103587852/">HBase Meetup at AdRoll</a> in San Francisco</p>
         
<p>February 28th, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/96584102/">HBase Meetup at Intel Mission Campus</a></p>
         
<p>February 19th, 2013 <a class="externalLink" href="http://www.meetup.com/hackathon/events/103633042/">Developers PowWow</a> at HortonWorks' new digs</p>
         
<p>January 23rd, 2013 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/91381312/">HBase Meetup at WibiData World HQ!</a></p>
            
<p>December 4th, 2012 <a class="externalLink" href="http://www.meetup.com/hackathon/events/90536432/">0.96 Bug Squashing and Testing Hackathon</a> at Cloudera, SF.</p>
            
<p>October 29th, 2012 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/82791572/">HBase User Group Meetup</a> at Wize Commerce in San Mateo.</p>
            
<p>October 25th, 2012 <a class="externalLink" href="http://www.meetup.com/HBase-NYC/events/81728932/">Strata/Hadoop World HBase Meetup.</a> in NYC</p>
            
<p>September 11th, 2012 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/80621872/">Contributor's Pow-Wow at HortonWorks HQ.</a></p>
            
<p>August 8th, 2012 <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/hbase/">Apache HBase 0.94.1 is available for download</a></p>
            
<p>June 15th, 2012 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/59829652/">Birds-of-a-feather</a> in San Jose, day after <a class="externalLink" href="http://hadoopsummit.org">Hadoop Summit</a></p>
            
<p>May 23rd, 2012 <a class="externalLink" href="http://www.meetup.com/hackathon/events/58953522/">HackConAthon</a> in Palo Alto</p>
            
<p>May 22nd, 2012 <a class="externalLink" href="http://www.hbasecon.com">HBaseCon2012</a> in San Francisco</p>
            
<p>March 27th, 2012 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/56021562/">Meetup @ StumbleUpon</a> in San Francisco</p>

            
<p>January 19th, 2012 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/46702842/">Meetup @ EBay</a></p>
            
<p>January 23rd, 2012 Apache HBase 0.92.0 released. <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/hbase/">Download it!</a></p>
            
<p>December 23rd, 2011 Apache HBase 0.90.5 released. <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/hbase/">Download it!</a></p>
            
<p>November 29th, 2011 <a class="externalLink" href="http://www.meetup.com/hackathon/events/41025972/">Developer Pow-Wow in SF</a> at Salesforce HQ</p>
            
<p>November 7th, 2011 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/35682812/">HBase Meetup in NYC (6PM)</a> at the AppNexus office</p>
            
<p>August 22nd, 2011 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/28518471/">HBase Hackathon (11AM) and Meetup (6PM)</a> at FB in PA</p>
            
<p>June 30th, 2011 <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/20572251/">HBase Contributor Day</a>, the day after the <a class="externalLink" href="http://developer.yahoo.com/events/hadoopsummit2011/">Hadoop Summit</a> hosted by Y!</p>
            
<p>June 8th, 2011 <a class="externalLink" href="http://berlinbuzzwords.de/wiki/hbase-workshop-and-hackathon">HBase Hackathon</a> in Berlin to coincide with <a class="externalLink" href="http://berlinbuzzwords.de/">Berlin Buzzwords</a></p>
            
<p>May 19th, 2011 Apache HBase 0.90.3 released. <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/hbase/">Download it!</a></p>
            
<p>April 12th, 2011 Apache HBase 0.90.2 released. <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/hbase/">Download it!</a></p>
            
<p>March 21st, <a class="externalLink" href="http://www.meetup.com/hackathon/events/16770852/">HBase 0.92 Hackathon at StumbleUpon, SF</a></p>
            
<p>February 22nd, <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/events/16492913/">HUG12: February HBase User Group at StumbleUpon SF</a></p>
            
<p>December 13th, <a class="externalLink" href="http://www.meetup.com/hackathon/calendar/15597555/">HBase Hackathon: Coprocessor Edition</a></p>
      
<p>November 19th, <a class="externalLink" href="http://huguk.org/">Hadoop HUG in London</a> is all about Apache HBase</p>
      
<p>November 15-19th, <a class="externalLink" href="http://www.devoxx.com/display/Devoxx2K10/Home">Devoxx</a> features HBase Training and multiple HBase presentations</p>
      
<p>October 12th, HBase-related presentations by core contributors and users at <a class="externalLink" href="http://www.cloudera.com/company/press-center/hadoop-world-nyc/">Hadoop World 2010</a></p>
      
<p>October 11th, <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/calendar/14606174/">HUG-NYC: HBase User Group NYC Edition</a> (Night before Hadoop World)</p>
      
<p>June 30th, <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/calendar/13562846/">Apache HBase Contributor Workshop</a> (Day after Hadoop Summit)</p>
      
<p>May 10th, 2010: Apache HBase graduates from Hadoop sub-project to Apache Top Level Project </p>
      
<p>Signup for <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/calendar/12689490/">HBase User Group Meeting, HUG10</a> hosted by Trend Micro, April 19th, 2010</p>

      
<p><a class="externalLink" href="http://www.meetup.com/hbaseusergroup/calendar/12689351/">HBase User Group Meeting, HUG9</a> hosted by Mozilla, March 10th, 2010</p>
      
<p>Sign up for the <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/calendar/12241393/">HBase User Group Meeting, HUG8</a>, January 27th, 2010 at StumbleUpon in SF</p>
      
<p>September 8th, 2010: Apache HBase 0.20.0 is faster, stronger, slimmer, and sweeter tasting than any previous Apache HBase release.  Get it off the <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/hbase/">Releases</a> page.</p>
      
<p><a class="externalLink" href="http://dev.us.apachecon.com/c/acus2009/">ApacheCon</a> in Oakland: November 2-6th, 2009:
      The Apache Foundation will be celebrating its 10th anniversary in beautiful Oakland by the Bay. Lots of good talks and meetups including an HBase presentation by a couple of the lads.</p>
      
<p>HBase at Hadoop World in NYC: October 2nd, 2009: A few of us will be talking on Practical HBase out east at <a class="externalLink" href="http://www.cloudera.com/hadoop-world-nyc">Hadoop World: NYC</a>.</p>
      
<p>HUG7 and HBase Hackathon: August 7th-9th, 2009 at StumbleUpon in SF: Sign up for the <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/calendar/10950511/">HBase User Group Meeting, HUG7</a> or for the <a class="externalLink" href="http://www.meetup.com/hackathon/calendar/10951718/">Hackathon</a> or for both (all are welcome!).</p>
      
<p>June, 2009 -- HBase at HadoopSummit2009 and at NOSQL: See the <a class="externalLink" href="http://wiki.apache.org/hadoop/HBase/HBasePresentations">presentations</a></p>
      
<p>March 3rd, 2009 -- HUG6: <a class="externalLink" href="http://www.meetup.com/hbaseusergroup/calendar/9764004/">HBase User Group 6</a></p>
      
<p>January 30th, 2009 -- LA Hbackathon:<a class="externalLink" href="http://www.meetup.com/hbasela/calendar/9450876/">HBase January Hackathon Los Angeles</a> at <a class="externalLink" href="http://streamy.com">Streamy</a> in Manhattan Beach</p>
  </div>
  

        </div>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
            <p>Copyright &copy;2007&#x2013;2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2020-07-13</li>
</p>
        </div>
        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
</p>
      </div>
    </footer>
  </body>
</html>
