<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>HBaseCon</title>
    <meta name="viewport" content="width=device-width">
    <meta name="description" content="The Community Event for Apache HBase&trade;">
    <meta name="keywords" content="hbasecon apache hbase" />
    
    <link rel="canonical" href="https://hbase.apache.org/hbasecon-2018//">
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml">

    <!-- Custom CSS & Bootstrap Core CSS - Uses Bootswatch Flatly Theme: http://bootswatch.com/flatly/ -->
    <link rel="stylesheet" href="/hbasecon-2018/style.css">
    <!--HBaseCon css additions-->
    <link rel="stylesheet" href="/hbasecon-2018/css/hbasecon.css">

    <!-- Custom Fonts -->
    <link rel="stylesheet" href="/hbasecon-2018/css/font-awesome/css/font-awesome.min.css">
    <link href="//fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
    <link href="//fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic" rel="stylesheet" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

    <body id="page-top" class="index">
       <!-- Navigation -->
    <nav class="navbar navbar-default navbar-fixed-top">
        <div class="container">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header page-scroll">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#page-top">HBaseCon</a>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav navbar-right">
                    <li class="hidden">
                        <a href="#page-top"></a>
                    </li>
                    <li class="page-scroll">
                        <a href="#about">About</a>
                    </li>
                    
                    <li class="page-scroll">
                        <a href="#agenda">Agenda</a>
                    </li>
                    <li class="page-scroll">
                      <a href="#registration">Registration</a>
                    </li>
                    <li class="page-scroll">
                        <a href="#sponsors">Sponsors</a>
                    </li>
                    <li class="page-scroll">
                      <a href="#archives">Archives</a>
                    </li>
                    <li class="page-scroll">
                        <a href="#contact">Contact</a>
                    </li>
                </ul>
            </div>
            <!-- /.navbar-collapse -->
        </div>
        <!-- /.container-fluid -->
    </nav>

        <!-- Header -->
    <header>
        <div class="container">
            <div class="row">
                <div class="col-lg-12">
                    <img class="img-responsive" src="img/hbasecon2018.png" alt="">
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12">
                    <div class="intro-text">
                        <span class="name">The Community Event for Apache HBase&trade;</span>
                        <span class="skills">June 18th, 2018 - Joseph McEnery Convention Center, San Jose, CA</span>
                        <p class="skills">Rooms 210 AE and 210 BF</p>
                    </div>
                </div>
            </div>
        </div>
    </header>


     <!-- About Section -->
    <section id="about">
        <div class="container">
           <div class="pull-right">
               <img class="img-responsive" src="img/jumping-orca_rotated_12percent.png" alt="Apache HBase&trade;" style="float='right'">
           </div>
            <div class="row first-row">
                <div class="col-lg-12 text-center">
                    <h2>About</h2>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12 text-center">
                    <p>HBaseCon (founded in 2012) is the premier conference for the <a href="https://hbase.apache.org">Apache HBase</a>
                     community—including committers/contributors, developers, operators, learners, and users (including some of those
                     managing the largest deployments in the world). If you run Apache HBase in production or aspire to do so, HBaseCon
                     has no substitute!</p>

                    <p>This year, HBaseCon will take place on the Monday of the
                    <a href="https://dataworkssummit.com/san-jose-2018/">DataWorks Summit San Jose 2018</a> at the
                    <a href="https://www.sanjose.org/convention-center">San Jose Convention Center</a>.
                    Of note, PhoenixCon will be held in the same venue on the same day. We will make it so that attendees will be
                    able to pass freely between the two events. As the DataWorks Summit is happening this same week, attendees
                    are encouraged to consider attending all events!</p>

                    <p><a href="https://hbase.apache.org">Apache HBase</a> is a native distributed data store for the Apache Hadoop
                     ecosystem. Its community works independently within the ASF to provide their respective software
                    under the permissive Apache license.</p>
                </div>
            </div>
        </div>
    </section>

    

    <!-- Agenda Section -->
<section class="success" id="agenda">
   <div class="container">
       <div class="row first-row">
           <div class="col-lg-12 text-center">
               <h2>Agenda</h2>
           </div>
       </div>
       <div>
         <div class="col-lg-12 text-center" style="font-size:25px">
           9:00 AM – 10:00 AM: Registration Open, Breakfast in Foyer
         </div>
       </div>
       <div>
         <div class="col-lg-12 text-center" style="font-size:25px; padding-bottom: 15px">
           10:00 AM – 10:50 AM: Opening Remarks, Keynotes
         </div>
       </div>
       <p/>
       <div class="row speaker-text">
           <div class="col-md-5">
             <div class="agenda-box">
               <p class="agenda-title">HBase Practice at XiaoMi</p>
               <p class="agenda-speakers">Speakers: Zheng Hu, Jingyun Tian</p>
             </div>
           </div>
           <div class="col-md-5" style="float: right">
             <div class="agenda-box">
               <p class="agenda-title">HBase at HubSpot: from FireFighters to Farmers</p>
               <p class="agenda-speakers">Speakers: Kahlil Oppenheimer, Graham Baecher</p>
             </div>
           </div>
       </div>
       <div class="row speaker-image-row">
         <div class="col-md-5">
           <div class="col-sm-6">
             <img src="img/speakers/ZhengHu.jpg" alt="Zheng Hu" />
           </div>
           <div class="col-sm-6">
             <img src="img/speakers/Missing.png" alt="Jingun Tian" />
           </div>
         </div>
         <div class="col-md-5" style="float: right">
           <div class="col-sm-6">
             <img src="img/speakers/Missing.png" alt="Kahlil Oppenheimer" />
           </div>
           <div class="col-sm-6">
             <img src="img/speakers/Missing.png" alt="Graham Baecher" />
           </div>
         </div>
       </div>
       <hr/>

       <div class="row speaker-text">
           <div class="col-md-5">
             <div class="agenda-box">
               <p class="agenda-title">Waiting for Two-Dot-Oh</p>
               <p class="agenda-speakers">Speaker: Michael Stack</p>
             </div>
           </div>
           <div class="col-md-5" style="float: right">
             <div class="agenda-box">
               <p class="agenda-title">Me to We : Moving to a Multi Tenant HBase Cluster</p>
               <p class="agenda-speakers">Speaker: Biju Nair</p>
             </div>
           </div>
       </div>
       <div class="row speaker-image-row">
         <div class="col-md-5">
           <div class="col-sm-12">
             <img src="img/speakers/Missing.png" alt="Michael Stack" />
           </div>
         </div>
         <div class="col-md-5" style="float: right">
           <div class="col-sm-12">
             <img src="img/speakers/Missing.png" alt="Biju Nair" />
           </div>
         </div>
       </div>
       <hr/>

       <div class="row speaker-text">
           <div class="col-md-5">
             <div class="agenda-box">
               <p class="agenda-title">Bringing Read-Replica into production</p>
               <p class="agenda-speakers">Speakers: Lei Chen, Cesar Delgado, Huaxiang Sun</p>
             </div>
           </div>
           <div class="col-md-5" style="float: right">
             <div class="agenda-box">
               <p class="agenda-title">Improving HBase reliability at Pinterest with geo-replication and efficient backup</p>
               <p class="agenda-speakers">Speakers: Chenji Pan, Lianghong Xu</p>
             </div>
           </div>
       </div>
       <div class="row speaker-image-row">
         <div class="col-md-5">
           <div class="col-sm-4">
             <img src="img/speakers/LeiChen.png" alt="Lei Chen" />
           </div>
           <div class="col-sm-4">
             <img src="img/speakers/Missing.png" alt="Cesar Delgado" />
           </div>
           <div class="col-sm-4">
             <img src="img/speakers/Missing.png" alt="Huaxiang Sun" />
           </div>
         </div>
         <div class="col-md-5" style="float: right">
           <div class="col-sm-6">
             <img src="img/speakers/Missing.png" alt="Chenji Pan" />
           </div>
           <div class="col-sm-6">
             <img src="img/speakers/LianghongXu.png" alt="Lianghong Xu" />
           </div>
         </div>
       </div>
       <hr/>

       <div class="row speaker-text">
           <div class="col-md-5">
             <div class="agenda-box">
               <p class="agenda-title">Columnar HBase for Translytical Workloads</p>
               <p class="agenda-speakers">Speaker: John Leach</p>
             </div>
           </div>
           <div class="col-md-5" style="float: right">
             <div class="agenda-box">
               <p class="agenda-title">Scaling HBase with Zero Downtime</p>
               <p class="agenda-speakers">Speakers: Scott Wilson</p>
             </div>
           </div>
       </div>
       <div class="row speaker-image-row">
         <div class="col-md-5">
           <div class="col-sm-12">
             <img src="img/speakers/JohnLeach.jpg" alt="John Leach" />
           </div>
         </div>
         <div class="col-md-5" style="float: right">
           <div class="col-sm-12">
             <img src="img/speakers/ScottWilson.jpg" alt="Scott Wilson" />
           </div>
         </div>
       </div>
   </div>
</section>

    <!-- Sponsors Section -->
<section id="registration">
   <div class="container">
           <div class="pull-right">
               <img class="img-responsive" src="img/jumping-orca_rotated_12percent.png" alt="Apache HBase&trade;" style="float='right'">
           </div>
       <div class="row first-row">
           <div class="col-lg-12 text-center">
               <h2>Registration</h2>
           </div>
       </div>
       <div class="row">
           <div class="col-lg-12">
             <p>Registration for HBaseCon 2018 is now open! Please use the following page to register: <a href="https://hbasecon2018.hortonworksevents.com/">Register Here</a>.
               Registration for HBaseCon includes registration to PhoenixCon which is running at concurrently at the same venue.</p>
           </div>
       </div>
       <div class="row">
           <div class="col-lg-12">
             <p>For any issues around registration, please use the following contact information, Monday-Friday, 8:00am - 5:00pm PST:
               <ul>
                 <li>Telephone: (800) 380-3544 <em>toll free</em></li>
                 <li>Telephone: (415) 446-7709 <em>international</em></li>
                 <li>Email: <a href="mailto:hbasecon2018@hortonworksevents.com">hbasecon2018@hortonworksevents.com</a></li>
               </ul>
             </p>
           </div>
       </div>
   </div>
</section>


    <!-- Sponsors Section -->
<section class="success" id="sponsors">
   <div class="container">
       <div class="row first-row">
           <div class="col-lg-12 text-center">
               <h2>Sponsors</h2>
           </div>
       </div>
       <div class="row sponsor-row">
           <a href="https://hortonworks.com"><div class="col-md-4">
             <div class="sponsor-row-box">
               <img src="/hbasecon-2018/img/sponsors/hortonworks.svg" alt="Hortonworks"/>
             </div>
           </div></a>
           <a href="https://apache.org"><div class="col-md-4">
             <div class="sponsor-row-box">
               <img src="/hbasecon-2018/img/sponsors/asf.png" alt="Apache Software Foundation" />
             </div>
           </div></a>
           <a href="https://siftscience.com/"><div class="col-md-4">
             <div class="sponsor-row-box">
               <img src="/hbasecon-2018/img/sponsors/siftscience.png" alt="Sift Science" />
             </div>
           </div></a>
       </div>
       <div class="row sponsor-row">
           <a href="https://www.techatbloomberg.com/"><div class="col-md-4">
             <div class="sponsor-row-box">
               <img src="/hbasecon-2018/img/sponsors/bloomberg.png" alt="Hortonw"/>
             </div>
           </div></a>
       </div>
   </div>
</section>

    <!-- Archives Section -->
<section id="archives">
   <div class="container">
    	<div class="pull-right">
    			<img class="img-responsive" src="img/jumping-orca_rotated_12percent.png" alt="Apache HBase&trade;" style="float='right'">
    	</div>
       <div class="row first-row">
           <div class="col-lg-12 text-center">
               <h2>Archives</h2>
           </div>
       </div>
       <div class="row">
           <div class="col-lg-12 text-center">
               <p>Previous HBaseCon events can be found <a href="https://hbase.apache.org/hbasecon-archives.html">here</a>.</p>
           </div>
       </div>
   </div>
</section>

    <!-- Contact Section -->
<section class="success" id="contact">
	<div class="container">
		<div class="row first-row">
			<div class="col-lg-12 text-center">
				<h2>Contact Us</h2>
			</div>
		</div>
		<div class="row">
			<div class="col-lg-12 text-center">
			  <p>For registration issues, please contact: <a href="mailto:mailto:hbasecon2018@hortonworksevents.com">hbasecon2018@hortonworksevents.com</a></p>
			</div>
		</div>
		<div class="row">
			<div class="col-lg-12 text-center">
			  <p>For all other concerns, please contact: <a href="mailto:dev@hbase.apache.org">dev@hbase.apache.org</a></p>
			</div>
		</div>
	</div>
</section>

    <!-- Conduct Section -->
<section id="conduct">
   <div class="container">
    	<div class="pull-right">
    			<img class="img-responsive" src="img/jumping-orca_rotated_12percent.png" alt="Apache HBase&trade;" style="float='right'">
    	</div>
       <div class="row first-row">
           <div class="col-lg-12 text-center">
               <h2>Code of Conduct</h2>
           </div>
       </div>
       <div class="row">
           <div class="col-lg-12 text-center">
              <p>This event is dedicated to providing a harassment-free conference experience for everyone,
                regardless of gender, gender identity and expression, sexual orientation, disability, physical
                appearance, body size, race, or religion. We do not tolerate harassment of conference
                participants in any form. Conference participants violating these rules may be sanctioned
                or expelled from the conference without a refund at the discretion of the conference organizers.</p>

              <p>Harassment includes offensive verbal comments related to gender, gender identity and expression,
                sexual orientation, disability, physical appearance, body size, race, religion, sexual images in
                public spaces, deliberate intimidation, stalking, following, harassing photography or recording,
                sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual
                attention. Participants asked to stop any harassing behavior are expected to comply immediately.</p>

              <p>If a participant engages in harassing behavior, the conference organizers may take any action they
                deem appropriate, including warning the offender or expulsion from the conference with no refund.
                If you are being harassed, notice that someone else is being harassed, or have any other concerns,
                please contact a member of conference staff immediately. Conference staff can be identified by special badges.</p>

              <p>Conference staff will be happy to help participants contact hotel/venue security or local law
                enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for
                the duration of the conference. We value your attendance.</p>

              <p>We expect participants to follow these rules at all conference venues and conference-related social events.</p>
           </div>
       </div>
   </div>
</section>


    <!-- Footer -->
<footer class="text-center">
    <div class="footer-below">
        <div class="container">
            <div class="row">
                <div class="col-lg-12">
                    Copyright &copy; 2018 Apache Software Foundation
                </div>
                <div class="col-lg-12">
                    Apache Hadoop, Apache HBase, Apache Phoenix, Hadoop, HBase, Phoenix and Apache are trademarks of the Apache Software Foundation and are used with permission. All other trademarks and registered trademarks are the property of their respective owners.
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12">
                    Jekyll Theme based on <a href="https://github.com/jeromelachaud/freelancer-theme">Freelancer Theme</a>
                </div>
            </div>
        </div>
    </div>
</footer>

<!-- Scroll to Top Button (Only visible on small and extra-small screen sizes) -->
<div class="scroll-top page-scroll visible-xs visible-sm">
    <a class="btn btn-primary" href="#page-top">
        <i class="fa fa-chevron-up"></i>
    </a>
</div>


     <!-- jQuery Version 1.11.0 -->
    <script src="/hbasecon-2018/js/jquery-1.11.0.js"></script>

    <!-- Bootstrap Core JavaScript -->
    <script src="/hbasecon-2018/js/bootstrap.min.js"></script>

    <!-- Plugin JavaScript -->
    <script src="/hbasecon-2018/js/jquery.easing.min.js"></script>
    <script src="/hbasecon-2018/js/classie.js"></script>
    <script src="/hbasecon-2018/js/cbpAnimatedHeader.js"></script>

    <!-- Custom Theme JavaScript -->
    <script src="/hbasecon-2018/js/freelancer.js"></script>

    </body>
</html>
