锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成色7777在线观看,亚洲免费观看视频,亚洲成人网在线观看http://m.tkk7.com/paulwong/archive/2016/04/19/430154.htmlpaulwongpaulwongTue, 19 Apr 2016 09:54:00 GMThttp://m.tkk7.com/paulwong/archive/2016/04/19/430154.htmlhttp://m.tkk7.com/paulwong/comments/430154.htmlhttp://m.tkk7.com/paulwong/archive/2016/04/19/430154.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/430154.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/430154.htmlhttp://colobu.com/categories/%E6%9E%B6%E6%9E%84/page/2/

paulwong 2016-04-19 17:54 鍙戣〃璇勮
]]>
SPRING CACHE璧勬簮http://m.tkk7.com/paulwong/archive/2015/02/25/423032.htmlpaulwongpaulwongWed, 25 Feb 2015 08:04:00 GMThttp://m.tkk7.com/paulwong/archive/2015/02/25/423032.htmlhttp://m.tkk7.com/paulwong/comments/423032.htmlhttp://m.tkk7.com/paulwong/archive/2015/02/25/423032.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/423032.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/423032.html
http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/htmlsingle/#cache

SPRING CONCURRENTMAP MANAGER鍔犺繃鏈熺瓥鐣?br />http://stackoverflow.com/questions/8181768/can-i-set-a-ttl-for-cacheable

緇勫悎KEY
http://stackoverflow.com/questions/14072380/cacheable-key-on-multiple-method-arguments

Spring Cache鎶借薄璇﹁В
http://www.open-open.com/lib/view/open1389575623336.html

娉ㄩ噴椹卞姩鐨?Spring cache 緙撳瓨浠嬬粛
https://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/

Spring Cache鎶借薄璇﹁В



paulwong 2015-02-25 16:04 鍙戣〃璇勮
]]>
浣跨敤WILDFLY涓殑鍒嗗竷寮忕紦瀛業(yè)NFISHPANhttp://m.tkk7.com/paulwong/archive/2015/02/23/422998.htmlpaulwongpaulwongMon, 23 Feb 2015 05:40:00 GMThttp://m.tkk7.com/paulwong/archive/2015/02/23/422998.htmlhttp://m.tkk7.com/paulwong/comments/422998.htmlhttp://m.tkk7.com/paulwong/archive/2015/02/23/422998.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/422998.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/422998.html
  • 閫氳繃http://127.0.0.1:9991/console/App.html#infinispan娣誨姞CACHE
    <cache-container name="tickets" default-cache="default" jndi-name="java:jboss/infinispan/tickets">
           <local-cache name="default" batching="true">
                  <locking isolation="REPEATABLE_READ"/>
           </local-cache>
    </cache-container>

  • pom.xml娣誨姞渚濊禆鍖?br />
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-core</artifactId>
                <scope>provided</scope>
            </dependency>
            
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-client-hotrod</artifactId>
                <scope>provided</scope>
            </dependency>

        <dependency>
            <groupId>org.jgroups</groupId>
            <artifactId>jgroups</artifactId>
            <scope>provided</scope>
        </dependency>

            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-spring</artifactId>
                <version>6.0.2.Final</version>
            </dependency>
            
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-jcache</artifactId>
                <version>6.0.2.Final</version>
            </dependency>

  • 娣誨姞鎷︽埅鍣紝W(xué)EB-INF/beans.xml
    <?xml version="1.0"?>
    <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
        <interceptors>
            <class>org.infinispan.jcache.annotation.CacheResultInterceptor</class>
            <class>org.infinispan.jcache.annotation.CachePutInterceptor</class>
            <class>org.infinispan.jcache.annotation.CacheRemoveEntryInterceptor</class>
            <class>org.infinispan.jcache.annotation.CacheRemoveAllInterceptor</class>
        </interceptors>
    </beans>

  • 娣誨姞欏圭洰鐨勫叏灞渚濊禆錛學(xué)EB-INF/jboss-deployment-structure.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <jboss-deployment-structure>
        <deployment>
            <dependencies>
                <module name="org.jboss.xnio" />
                <module name="org.infinispan" export="true"/>
                <module name="org.infinispan.commons" export="true"/>
                <module name="org.infinispan.client.hotrod" export="true"/>
            </dependencies>
        </deployment>
    </jboss-deployment-structure>

  • 鍦–DI BEAN涓嬌鐢–ACHE
    package com.paul.myejb;

    import javax.annotation.Resource;
    import javax.cache.annotation.CacheResult;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    import javax.interceptor.Interceptors;

    import org.infinispan.Cache;
    import org.infinispan.manager.EmbeddedCacheManager;
    //import org.springframework.cache.annotation.Cacheable;
    import org.springframework.ejb.interceptor.SpringBeanAutowiringInterceptor;

    /**
     * Session Bean implementation class HelloWorldBean
     
    */
    @Stateless
    //@Local(HelloWorld.class)
    @Remote(HelloWorld.class)
    @Interceptors(SpringBeanAutowiringInterceptor.class)
    //@RolesAllowed({Roles.ADMIN})
    public class HelloWorldBean implements HelloWorld {
        
        @Resource(lookup = "java:jboss/infinispan/tickets")
        private EmbeddedCacheManager container;
        
        
        /**
         * Default constructor. 
         
    */
        public HelloWorldBean() {
        }

    //    @Transactional
    //    @Cacheable(value = "books", key = "#name")
        @CacheResult
        public String sayHello(String name) {
            System.out.println("NO CACHE");
            String result = "Hello " + name + ", I am HelloWorldBean.";
            Cache<String, String> cache = this.container.getCache();
            cache.put(name, result);
            return result;
        }

    }


  • 淇敼modules/system/layers/base/org/infinispan/client/hotrod/main/modules.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
      ~ JBoss, Home of Professional Open Source.
      ~ Copyright 2010, Red Hat, Inc., and individual contributors
      ~ as indicated by the @author tags. See the copyright.txt file in the
      ~ distribution for a full listing of individual contributors.
      ~
      ~ This is free software; you can redistribute it and/or modify it
      ~ under the terms of the GNU Lesser General Public License as
      ~ published by the Free Software Foundation; either version 2.1 of
      ~ the License, or (at your option) any later version.
      ~
      ~ This software is distributed in the hope that it will be useful,
      ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
      ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      ~ Lesser General Public License for more details.
      ~
      ~ You should have received a copy of the GNU Lesser General Public
      ~ License along with this software; if not, write to the Free
      ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
      ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
      
    -->
    <module xmlns="urn:jboss:module:1.3" name="org.infinispan.client.hotrod">
        <properties>
            <property name="jboss.api" value="private"/>
        </properties>

        <resources>
            <resource-root path="infinispan-client-hotrod-6.0.2.Final.jar"/>
        </resources>

        <dependencies>
            <module name="javax.api"/>
            <!--涓嬮潰榪欎竴琛屾敞閲婃帀-->
            <!--<module name="com.google.protobuf"/>-->
            <module name="org.apache.commons.pool"/>
            <module name="org.infinispan.commons"/>
            <module name="org.infinispan.query.dsl"/>
            <module name="org.jboss.logging"/>
        </dependencies>
    </module>

  • 浠ヤ笅鏄疭PRING鐗堟湰
    1. 娣誨姞渚濊禆鐨凷PRING BEAN
      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
          xmlns:xsi
      ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
          xmlns:cache
      ="http://www.springframework.org/schema/cache"
          xmlns:p
      ="http://www.springframework.org/schema/p"
          xmlns:jee
      ="http://www.springframework.org/schema/jee"
          xsi:schemaLocation
      ="http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-3.0.xsd
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/cache
                http://www.springframework.org/schema/cache/spring-cache.xsd
                http://www.springframework.org/schema/jee 
                http://www.springframework.org/schema/jee/spring-jee.xsd"
      >

          <cache:annotation-driven />
          
          <bean id="cacheManager"
                class
      ="org.infinispan.spring.provider.ContainerCacheManagerFactoryBean">
                <constructor-arg ref="cacheContainer"  />
          </bean>
          
          <jee:jndi-lookup id="cacheContainer" jndi-name="java:jboss/infinispan/tickets" > 
          </jee:jndi-lookup>
          
          <!-- <bean id="cacheContainer"
                class="com.paul.myejb.common.util.cache.JndiSpringCacheManagerFactoryBean"
                p:infinispanJNDI="java:jboss/infinispan/tickets" /> 
      -->
          
      </beans>

    2. 浣跨敤CACHE
      package com.paul.myejb.spring;

      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.cache.CacheManager;
      import org.springframework.cache.annotation.Cacheable;
      import org.springframework.stereotype.Component;

      @Component
      public class MySpringBean {
          
          @Autowired
          private CacheManager cacheManager;
          
          @Cacheable(value = "my-local-cache", key = "#name")
          public String sayHello(String name)
          {
              System.out.println("MySpringBean NO CACHE");
              String result = "Hi " + name + ", I am Spring!";
              org.springframework.cache.Cache springCache = this.cacheManager.getCache("my-local-cache");
              System.out.println(springCache.get(name) == null ? "null" : springCache.get(name).get());
              springCache.put(name, result);
              return result;
          }

      }




    paulwong 2015-02-23 13:40 鍙戣〃璇勮
    ]]>
    SPRING-SESSIONhttp://m.tkk7.com/paulwong/archive/2014/11/19/420309.htmlpaulwongpaulwongWed, 19 Nov 2014 10:23:00 GMThttp://m.tkk7.com/paulwong/archive/2014/11/19/420309.htmlhttp://m.tkk7.com/paulwong/comments/420309.htmlhttp://m.tkk7.com/paulwong/archive/2014/11/19/420309.html#Feedback1http://m.tkk7.com/paulwong/comments/commentRss/420309.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/420309.html闃呰鍏ㄦ枃

    paulwong 2014-11-19 18:23 鍙戣〃璇勮
    ]]>
    鍒嗗竷寮忚皟搴UARTZ+SPRINGhttp://m.tkk7.com/paulwong/archive/2014/11/14/420104.htmlpaulwongpaulwongFri, 14 Nov 2014 10:46:00 GMThttp://m.tkk7.com/paulwong/archive/2014/11/14/420104.htmlhttp://m.tkk7.com/paulwong/comments/420104.htmlhttp://m.tkk7.com/paulwong/archive/2014/11/14/420104.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/420104.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/420104.html瑙﹀彂鍣細(xì)瀛樻斁鏃墮棿鎺掔▼
    浠誨姟錛氳敓涓氬姟浠g爜
    鎺掔▼鍣細(xì)璐熻矗璋冨害錛屽嵆鍦ㄦ寚瀹氱殑鏃墮棿鎵ц瀵瑰簲鐨勪換鍔?br />
    濡傛灉鏄垎甯冨紡QUARTZ錛屽垯鍚勪釜鑺傜偣浼?xì)涓婃姤鋼Q鍔★紝瀛樺埌鏁版嵁搴撲腑錛屾墽琛屾椂浼?xì)浠庢暟鎹簱涓彇鍑鸿Е鍙戝櫒鏉ユ墽琛屽Q屽鏋滆Е鍙戝櫒鐨勫悕縐板拰鎵ц鏃墮棿鐩稿悓錛屽垯鍙湁涓涓妭鐐瑰幓鎵ц姝や換鍔°?br />濡傛灉姝よ妭鐐規(guī)墽琛屽け璐ワ紝鍒欐浠誨姟鍒欎細(xì)琚垎媧懼埌鍙︿竴鑺傜偣鎵ц銆?br />
    quartz.properties
    #============================================================================
    #
     Configure JobStore  
    #
     Using Spring datasource in quartzJobsConfig.xml
    #
     Spring uses LocalDataSourceJobStore extension of JobStoreCMT
    #
    ============================================================================
    org.quartz.jobStore.useProperties=true
    org.quartz.jobStore.tablePrefix = QRTZ_
    org.quartz.jobStore.isClustered = true
    org.quartz.jobStore.clusterCheckinInterval = 5000
    org.quartz.jobStore.misfireThreshold = 60000
    org.quartz.jobStore.txIsolationLevelReadCommitted = true
     
    # Change this to match your DB vendor
    org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
     

    #============================================================================
    #
     Configure Main Scheduler Properties  
    #
     Needed to manage cluster instances
    #
    ============================================================================
    org.quartz.scheduler.instanceId=AUTO
    org.quartz.scheduler.instanceName=MY_CLUSTERED_JOB_SCHEDULER
    org.quartz.scheduler.rmi.export = false
    org.quartz.scheduler.rmi.proxy = false


    #============================================================================
    #
     Configure ThreadPool  
    #
    ============================================================================
    org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
    org.quartz.threadPool.threadCount = 10
    org.quartz.threadPool.threadPriority = 5
    org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true


    web-schedule-applicationcontext.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mongo
    ="http://www.springframework.org/schema/data/mongo"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context-3.0.xsd
              http://www.springframework.org/schema/data/mongo
              http://www.springframework.org/schema/data/mongo/spring-mongo-1.3.xsd
              http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
    >


        <!-- 澧炲姞瀹氭椂鍣ㄩ厤緗?nbsp;-->
        <!-- 綰跨▼鎵ц鍣ㄩ厤緗紝鐢ㄤ簬浠誨姟娉ㄥ唽 -->
        <bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
             <property name="corePoolSize" value="10" />
             <property name="maxPoolSize" value="100" />
             <property name="queueCapacity" value="500" />
        </bean>

        <!-- 璁劇疆璋冨害 -->
        <bean id="webScheduler"
            class
    ="org.springframework.scheduling.quartz.SchedulerFactoryBean">

            <property name="configLocation" value="classpath:/properties/config/quartz.properties" />
            <property name="dataSource" ref="dataSourceCMS" />
            <property name="transactionManager" ref="txManager" />

            <!-- This name is persisted as SCHED_NAME in db. for local testing could 
                change to unique name to avoid collision with dev server 
    -->
            <property name="schedulerName" value="quartzScheduler" />

            <!-- Will update database cron triggers to what is in this jobs file on 
                each deploy. Replaces all previous trigger and job data that was in the database. 
                YMMV 
    -->
            <property name="overwriteExistingJobs" value="true" />

            <property name="startupDelay" value="5"/>
            <property name="applicationContextSchedulerContextKey" value="applicationContext" />
            <property name="jobFactory">
                <bean class="com.tcl.project7.boss.common.scheduling.AutowiringSpringBeanJobFactory" />
            </property>
            
            <property name="triggers">
                  <list>
                           <ref bean="springQuertzClusterTaskSchedulerTesterTigger" />
                  </list>
             </property>
            <property name="jobDetails">
                <list>
                    <ref bean="springQuertzClusterTaskSchedulerTesterJobDetail" />
                </list>
            </property>
             <property name="taskExecutor" ref="executor" />

        </bean>


        
        
        
        <!-- 瑙﹀彂鍣?nbsp;-->
        <bean id="springQuertzClusterTaskSchedulerTesterTigger" class="common.scheduling.PersistableCronTriggerFactoryBean">
            <property name="jobDetail" ref="springQuertzClusterTaskSchedulerTesterJobDetail"/>
            <property name="cronExpression" value="* * * * * ?" />    
        </bean>
        
        <bean id="springQuertzClusterTaskSchedulerTesterJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
            <property name="jobClass" value="common.scheduling.SpringQuertzClusterTaskSchedulerTester" />
            
            <!-- fail-over 閲嶅啓鎵ц澶辮觸鐨勪換鍔?default=false -->
            <property name="requestsRecovery" value="false"/>
        </bean>
        
        
        
    </beans>


    JOB鏂囦歡錛歋pringQuertzClusterTaskSchedulerTester.java
    package common.scheduling;

    import java.util.Date;

    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.scheduling.quartz.QuartzJobBean;

    import com.tcl.project7.boss.common.util.UrlUtil;
    import com.tcl.project7.boss.common.util.time.TimeUtils;
    /**
     * <p>Title:SpringQuertzClusterTaskSchedulerTester</p>
     * <p>Description:
     * 搴斾負(fù)瑕佹寔涔呭寲絳夌壒鎬ф搷浣?闇瑕佺戶鎵?nbsp;QuartzJobBean
     * <br>鐢變簬瑕佽鎸佷箙鍖?鎵浠ヤ笉鑳藉瓨鏀緓xxxManager綾諱技瀵硅薄,
     * 鍙兘浠庢瘡嬈′粠QuartzJobBean娉ㄥ叆鐨凙pplicationContext 涓幓鍙栧嚭
     *
     * </p>    
     *
     *
     
    */
    public class SpringQuertzClusterTaskSchedulerTester extends QuartzJobBean {
        
        private static Logger logger = LoggerFactory.getLogger(SpringQuertzClusterTaskSchedulerTester.class);
        
        @Autowired
        private UrlUtil urlUtil;
        
        
        protected void executeInternal(JobExecutionContext arg0)
                throws JobExecutionException {
            logger.info("------" + TimeUtils.formatTime(new Date()) + "------" + urlUtil.getNginxHost());
            System.out.println("------" + TimeUtils.formatTime(new Date()) + "------" + urlUtil.getNginxHost());
        }
        
    }


    濡傛灉JOB涓湁闇瑕佽皟鐢⊿PRING鐨凚EAN錛屽垯闇瑕佹鏂囦歡AutowiringSpringBeanJobFactory.java
    package common.scheduling;

    import org.quartz.spi.TriggerFiredBundle;
    import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.scheduling.quartz.SpringBeanJobFactory;

    /**
     * Autowire Quartz Jobs with Spring context dependencies
     * 
    @see http://stackoverflow.com/questions/6990767/inject-bean-reference-into-a-quartz-job-in-spring/15211030#15211030
     
    */
    public final class AutowiringSpringBeanJobFactory extends SpringBeanJobFactory implements ApplicationContextAware {
        
        private transient AutowireCapableBeanFactory beanFactory;
     
        public void setApplicationContext(final ApplicationContext context) {
            beanFactory = context.getAutowireCapableBeanFactory();
        }
     
        @Override
        protected Object createJobInstance(final TriggerFiredBundle bundle) throws Exception {
            final Object job = super.createJobInstance(bundle);
            beanFactory.autowireBean(job);
            return job;
        }
    }


    鐢變簬JOB闇瑕佸瓨鍌ㄥ埌鏁版嵁搴撲腑錛屼細(xì)浜х敓PROPERTY鐨勯棶棰橈紝闇鍓旈櫎JOB-DATA錛岄渶姝ゆ枃浠禤ersistableCronTriggerFactoryBean.java
    package common.scheduling;

    import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
    import org.springframework.scheduling.quartz.JobDetailAwareTrigger;

    /**
     * Needed to set Quartz useProperties=true when using Spring classes,
     * because Spring sets an object reference on JobDataMap that is not a String
     * 
     * 
    @see http://site.trimplement.com/using-spring-and-quartz-with-jobstore-properties/
     * 
    @see http://forum.springsource.org/showthread.php?130984-Quartz-error-IOException
     
    */
    public class PersistableCronTriggerFactoryBean extends CronTriggerFactoryBean {
        @Override
        public void afterPropertiesSet() {
            super.afterPropertiesSet();
     
            //Remove the JobDetail element
            getJobDataMap().remove(JobDetailAwareTrigger.JOB_DETAIL_KEY);
        }
    }


    寤鴻〃璇彞錛孧YSQL錛歲uartzTables.sql
    #
    # Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar
    #
    In your Quartz properties file, you'll need to set 
    # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
    #

    DROP TABLE IF EXISTS QRTZ_JOB_LISTENERS;
    DROP TABLE IF EXISTS QRTZ_TRIGGER_LISTENERS;
    DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
    DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
    DROP TABLE IF EXISTS QRTZ_LOCKS;
    DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
    DROP TABLE IF EXISTS QRTZ_CALENDARS;


    CREATE TABLE QRTZ_JOB_DETAILS
      (
        JOB_NAME  VARCHAR(200) NOT NULL,
        JOB_GROUP VARCHAR(200) NOT NULL,
        DESCRIPTION VARCHAR(250) NULL,
        JOB_CLASS_NAME   VARCHAR(250) NOT NULL,
        IS_DURABLE VARCHAR(1) NOT NULL,
        IS_VOLATILE VARCHAR(1) NOT NULL,
        IS_STATEFUL VARCHAR(1) NOT NULL,
        REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
        JOB_DATA BLOB NULL,
        PRIMARY KEY (JOB_NAME,JOB_GROUP)
    );

    CREATE TABLE QRTZ_JOB_LISTENERS
      (
        JOB_NAME  VARCHAR(200) NOT NULL,
        JOB_GROUP VARCHAR(200) NOT NULL,
        JOB_LISTENER VARCHAR(200) NOT NULL,
        PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
        FOREIGN KEY (JOB_NAME,JOB_GROUP)
            REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
    );

    CREATE TABLE QRTZ_TRIGGERS
      (
        TRIGGER_NAME VARCHAR(200) NOT NULL,
        TRIGGER_GROUP VARCHAR(200) NOT NULL,
        JOB_NAME  VARCHAR(200) NOT NULL,
        JOB_GROUP VARCHAR(200) NOT NULL,
        IS_VOLATILE VARCHAR(1) NOT NULL,
        DESCRIPTION VARCHAR(250) NULL,
        NEXT_FIRE_TIME BIGINT(13) NULL,
        PREV_FIRE_TIME BIGINT(13) NULL,
        PRIORITY INTEGER NULL,
        TRIGGER_STATE VARCHAR(16) NOT NULL,
        TRIGGER_TYPE VARCHAR(8) NOT NULL,
        START_TIME BIGINT(13) NOT NULL,
        END_TIME BIGINT(13) NULL,
        CALENDAR_NAME VARCHAR(200) NULL,
        MISFIRE_INSTR SMALLINT(2) NULL,
        JOB_DATA BLOB NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
        FOREIGN KEY (JOB_NAME,JOB_GROUP)
            REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
    );

    CREATE TABLE QRTZ_SIMPLE_TRIGGERS
      (
        TRIGGER_NAME VARCHAR(200) NOT NULL,
        TRIGGER_GROUP VARCHAR(200) NOT NULL,
        REPEAT_COUNT BIGINT(7) NOT NULL,
        REPEAT_INTERVAL BIGINT(12) NOT NULL,
        TIMES_TRIGGERED BIGINT(10) NOT NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
        FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );

    CREATE TABLE QRTZ_CRON_TRIGGERS
      (
        TRIGGER_NAME VARCHAR(200) NOT NULL,
        TRIGGER_GROUP VARCHAR(200) NOT NULL,
        CRON_EXPRESSION VARCHAR(200) NOT NULL,
        TIME_ZONE_ID VARCHAR(80),
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
        FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );

    CREATE TABLE QRTZ_BLOB_TRIGGERS
      (
        TRIGGER_NAME VARCHAR(200) NOT NULL,
        TRIGGER_GROUP VARCHAR(200) NOT NULL,
        BLOB_DATA BLOB NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
        FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );

    CREATE TABLE QRTZ_TRIGGER_LISTENERS
      (
        TRIGGER_NAME  VARCHAR(200) NOT NULL,
        TRIGGER_GROUP VARCHAR(200) NOT NULL,
        TRIGGER_LISTENER VARCHAR(200) NOT NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
        FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );


    CREATE TABLE QRTZ_CALENDARS
      (
        CALENDAR_NAME  VARCHAR(200) NOT NULL,
        CALENDAR BLOB NOT NULL,
        PRIMARY KEY (CALENDAR_NAME)
    );



    CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
      (
        TRIGGER_GROUP  VARCHAR(200) NOT NULL, 
        PRIMARY KEY (TRIGGER_GROUP)
    );

    CREATE TABLE QRTZ_FIRED_TRIGGERS
      (
        ENTRY_ID VARCHAR(95) NOT NULL,
        TRIGGER_NAME VARCHAR(200) NOT NULL,
        TRIGGER_GROUP VARCHAR(200) NOT NULL,
        IS_VOLATILE VARCHAR(1) NOT NULL,
        INSTANCE_NAME VARCHAR(200) NOT NULL,
        FIRED_TIME BIGINT(13) NOT NULL,
        PRIORITY INTEGER NOT NULL,
        STATE VARCHAR(16) NOT NULL,
        JOB_NAME VARCHAR(200) NULL,
        JOB_GROUP VARCHAR(200) NULL,
        IS_STATEFUL VARCHAR(1) NULL,
        REQUESTS_RECOVERY VARCHAR(1) NULL,
        PRIMARY KEY (ENTRY_ID)
    );

    CREATE TABLE QRTZ_SCHEDULER_STATE
      (
        INSTANCE_NAME VARCHAR(200) NOT NULL,
        LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
        CHECKIN_INTERVAL BIGINT(13) NOT NULL,
        PRIMARY KEY (INSTANCE_NAME)
    );

    CREATE TABLE QRTZ_LOCKS
      (
        LOCK_NAME  VARCHAR(40) NOT NULL, 
        PRIMARY KEY (LOCK_NAME)
    );


    INSERT INTO QRTZ_LOCKS values(
    'TRIGGER_ACCESS');
    INSERT INTO QRTZ_LOCKS values(
    'JOB_ACCESS');
    INSERT INTO QRTZ_LOCKS values(
    'CALENDAR_ACCESS');
    INSERT INTO QRTZ_LOCKS values(
    'STATE_ACCESS');
    INSERT INTO QRTZ_LOCKS values(
    'MISFIRE_ACCESS');


    commit;


    鍙傝冿細(xì)
    http://wenku.baidu.com/view/82e3bcbdfd0a79563c1e7223.html

    Quartz闆嗘垚springMVC 鐨勬柟妗堜簩錛堟寔涔呭寲浠誨姟銆侀泦緹ゅ拰鍒嗗竷寮忥級
    http://blog.csdn.net/congcong68/article/details/39256307

















    paulwong 2014-11-14 18:46 鍙戣〃璇勮
    ]]>
    妯傝 TV 杓夊叆 4K 鐗囬粸瑙e拋蹇紵CDN 綞茬怠瑙fhttp://m.tkk7.com/paulwong/archive/2014/11/07/419670.htmlpaulwongpaulwongFri, 07 Nov 2014 09:03:00 GMThttp://m.tkk7.com/paulwong/archive/2014/11/07/419670.htmlhttp://m.tkk7.com/paulwong/comments/419670.htmlhttp://m.tkk7.com/paulwong/archive/2014/11/07/419670.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/419670.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/419670.html
    鑰屽畠鎻愪緵鐨勫収瀹逛腑錛屾渶鍚稿紩鐨勮偗瀹氭槸 4K 褰辯墖鍙婂妵闆嗐傜浉淇″ぇ瀹墮兘鐭ラ亾錛?K 鍏у妾旀鏈韓瀹歸噺鍗佸垎澶э紝閭勮閫忛亷綞茬怠閫茶涓叉祦錛屼竴鑸儏娉佷篃鏈冦岀獟涓嬬獟涓嬨嶏紝浣嗙偤浣曞湪 X50 Air 涓婃渻濡傛闋嗘殺錛熶互涓嬪皬綬ㄥ氨鐐哄ぇ瀹惰В妲嬩竴涓嬶細(xì)

    letvcdn

     

    濂戒簡錛岃瑤搴曟彮鏇夛紒

    鍏跺寰堝鏅傚欐璩炰覆嫻佸収瀹癸紙streaming錛夋檪瑕佺瓑錛屾槸鍥犵偤 cache 鏅傞枔鍗佸垎闀鳳紝灝庤嚧褰遍熆杓夊叆鏅傚欍?br />
    鑰?Letv 灝辨帯鐢ㄤ簡 CDN錛圕ontent Delivery / Distribution Network錛涘収瀹瑰偝閬炵恫璺級綞茶礬錛屽畠鐨勭附鎵胯級閲忔瘮鍠竴楠ㄥ構(gòu)鏈澶х殑闋誨閭勮澶э紝鑰屼笖鏈夌暟鍦板倷鎻達(dá)紝钀竴鏌愬嬩己鏈嶅櫒鍑虹従鏁呴殰錛岀郴緄卞氨鏈冭嚜鍕曡鐢ㄥ叾浠栭劙榪戝湴鍗鐨勪己鏈嶅櫒璩囨簮錛屾墍浠ュ彲闈犲害妤典箣鎺ヨ繎 100%錛?br />
    灝辯畻娌掓湁鏁呴殰鏅傦紝妯傝棣欐腐鐨?CDN 綞茬怠浜﹀彲鏈夋晥鍥為伩綣佸繖鎿犲鐨勭恫緄★紝涓﹁嚜鍕曞皨鎵捐窛闆㈢敤瀹舵渶鎺ヨ繎鐨勫揩鍙栦己鏈嶅櫒鎺ユ敹鍏у錛屽洜姝ゅ彲浠ユ敼鍠勫収瀹瑰瓨鍙栭熷害錛屽ぇ澶х府鐭笅杓夋檪闁擄紝鑷劧鍙互鐢ㄤ覆嫻佺恫緄★紝闋嗘殺嬈h碁妤佃嚧 4K 褰辯墖鍏у鍟︺?img src ="http://m.tkk7.com/paulwong/aggbug/419670.html" width = "1" height = "1" />

    paulwong 2014-11-07 17:03 鍙戣〃璇勮
    ]]>
    Java騫惰澶勭悊妗嗘灦 JPPFhttp://m.tkk7.com/paulwong/archive/2014/07/19/415998.htmlpaulwongpaulwongSat, 19 Jul 2014 01:55:00 GMThttp://m.tkk7.com/paulwong/archive/2014/07/19/415998.htmlhttp://m.tkk7.com/paulwong/comments/415998.htmlhttp://m.tkk7.com/paulwong/archive/2014/07/19/415998.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/415998.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/415998.html
    http://www.jppf.org/doc/v4/index.php?title=Main_Page

    paulwong 2014-07-19 09:55 鍙戣〃璇勮
    ]]>
    鑵捐CKV嫻烽噺鍒嗗竷寮忓瓨鍌ㄧ郴緇?/title><link>http://m.tkk7.com/paulwong/archive/2014/07/16/415866.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 15 Jul 2014 23:58:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2014/07/16/415866.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/415866.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2014/07/16/415866.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/415866.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/415866.html</trackback:ping><description><![CDATA[<img src="http://ww4.sinaimg.cn/bmiddle/a1ab8e59jw1eeeg66h72fj20c83ek7ra.jpg" width="440" height="4412" alt="" /><img src ="http://m.tkk7.com/paulwong/aggbug/415866.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2014-07-16 07:58 <a href="http://m.tkk7.com/paulwong/archive/2014/07/16/415866.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿杞姐戠粡鍏告極鐢昏瑙DFS鍘熺悊 http://m.tkk7.com/paulwong/archive/2013/10/26/405663.htmlpaulwongpaulwongSat, 26 Oct 2013 01:15:00 GMThttp://m.tkk7.com/paulwong/archive/2013/10/26/405663.htmlhttp://m.tkk7.com/paulwong/comments/405663.htmlhttp://m.tkk7.com/paulwong/archive/2013/10/26/405663.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/405663.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/405663.html鍒嗗竷寮忔枃浠剁郴緇熸瘮杈冨嚭鍚嶇殑鏈塇DFS  鍜?GFS錛屽叾涓璈DFS姣旇緝綆鍗曚竴鐐廣傛湰鏂囨槸涓綃囨弿榪伴潪甯哥畝媧佹槗鎳傜殑婕敾褰㈠紡璁茶ВHDFS鐨勫師鐞嗐傛瘮涓鑸琍PT瑕侀氫織鏄撴噦寰堝銆備笉闅懼緱鐨勫涔?fàn)璧勬枡銆?br />

    1銆佷笁涓儴鍒? 瀹㈡埛绔乶ameserver錛堝彲鐞嗚В涓轟富鎺у拰鏂囦歡绱㈠紩,綾諱技linux鐨刬node錛夈乨atanode錛堝瓨鏀懼疄闄呮暟鎹級

    鍦ㄨ繖閲岋紝client鐨勫艦寮忔垜鎵浜嗚В鐨勬湁涓ょ錛岄氳繃hadoop鎻愪緵鐨刟pi鎵緙栧啓鐨勭▼搴忓彲浠ュ拰hdfs榪涜浜や簰錛屽彟澶栦竴縐嶅氨鏄畨瑁呬簡hadoop鐨刣atanode鍏朵篃鍙互閫氳繃鍛戒護(hù)琛屼笌hdfs緋葷粺榪涜浜や簰錛屽鍦╠atanode涓婁笂浼犲垯浣跨敤濡備笅鍛戒護(hù)琛岋細(xì)bin/hadoop fs -put example1 user/chunk/


    2銆佸浣曞啓鏁版嵁榪囩▼





    3銆佽鍙栨暟鎹繃紼?/span>



    4銆佸閿欙細(xì)絎竴閮ㄥ垎錛氭晠闅滅被鍨嬪強鍏舵嫻嬫柟娉曪紙nodeserver 鏁呴殰錛屽拰緗戠粶鏁呴殰錛屽拰鑴忔暟鎹棶棰橈級




    5銆佸閿欑浜岄儴鍒嗭細(xì)璇誨啓瀹歸敊



    6銆佸閿欑涓夐儴鍒嗭細(xì)dataNode 澶辨晥



    7銆佸浠借鍒?/span>



    8銆佺粨鏉熻


    paulwong 2013-10-26 09:15 鍙戣〃璇勮
    ]]>
    涓浜涙暟鎹垏鍒嗐佺紦瀛樸乺pc妗嗘灦銆乶osql鏂規(guī)璧勬枡http://m.tkk7.com/paulwong/archive/2013/10/14/404954.htmlpaulwongpaulwongMon, 14 Oct 2013 02:14:00 GMThttp://m.tkk7.com/paulwong/archive/2013/10/14/404954.htmlhttp://m.tkk7.com/paulwong/comments/404954.htmlhttp://m.tkk7.com/paulwong/archive/2013/10/14/404954.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/404954.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/404954.html1銆佹暟鎹垏鍒?/span>

            1.1銆?a style="color: #108ac6;" target="_blank">mysql涓棿浠剁爺絀訛紙Atlas錛宑obar錛孴DDL錛?/a> 

            1.2銆?a style="color: #108ac6;" target="_blank">鍒╃敤 MySQL Proxy 瀹炵幇鏁版嵁鍒囧垎鍙婃暣鍚?nbsp;

            1.3銆?a style="color: #108ac6;" target="_blank">鍩轟簬MySQL鍒嗗簱鍒嗚〃鏂規(guī)綆浠?nbsp;

            1.4銆?a style="color: #108ac6;" target="_blank">tddl鍜宒iamond  

    2銆佺紦瀛?/p>

            2.1銆?a style="color: #108ac6;" target="_blank">java瀹㈡埛绔笁縐嶆柟寮忔搷浣?nbsp;

            2.2銆?a style="color: #108ac6;" target="_blank">myibatis閰嶇疆memcached璇勬祴 

            2.3銆?a style="color: #108ac6;" target="_blank">Memcached + Spring Caching 

            2.4銆?a style="color: #108ac6;" target="_blank">memcachedb-鎸佷箙鍖栧瓨鍌ㄧ殑緙撳瓨緋葷粺 

            2.5銆?a style="color: #108ac6;" target="_blank">memcachedb璁﹎emcache鐨勬暟鎹寔涔呭寲 

            2.6銆?a style="color: #108ac6;" target="_blank">娣樺疂kv緙撳瓨妗嗘灦tair 

            2.7銆?a style="color: #108ac6;" target="_blank">ibatis涔嬫墿灞曠紦瀛榠batis-tair-cache 

    3銆乺pc妗嗘灦

            3.1銆?a style="color: #108ac6;">dubbo 

            3.2銆乭sf 鏈紑婧?/p>

            3.3銆?a style="color: #108ac6;" target="_blank">鏈嶅姟妗嗘灦HSF鍒嗘瀽涔嬩竴瀹瑰櫒鍚姩

    4銆乶oSql

            4.1銆?a style="color: #108ac6;" target="_blank">瀛︿範(fàn)NoSQL鏁版嵁搴撶殑蹇呰璧勬枡 



    paulwong 2013-10-14 10:14 鍙戣〃璇勮
    ]]>
    鍒嗗竷寮忔悳绱㈣祫婧?/title><link>http://m.tkk7.com/paulwong/archive/2013/08/31/403522.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 31 Aug 2013 07:52:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2013/08/31/403522.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/403522.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2013/08/31/403522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/403522.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/403522.html</trackback:ping><description><![CDATA[浜戠鍒嗗竷寮忔悳绱㈡妧鏈?br /><a target="_blank">http://www.searchtech.pro</a><br /><br /><br />ELASTICSEARCH涓枃紺懼尯<br /><a target="_blank">http://es-bbs.medcl.net/categories/%E6%9C%80%E6%96%B0%E5%8A%A8%E6%80%81</a><br /><br /><br /><a target="_blank">http://wangwei3.iteye.com/blog/1818599</a><br /><br /><br />Welcome to the Apache Nutch Wiki<br /><a target="_blank">https://wiki.apache.org/nutch/FrontPage</a><br /><br /><br />elasticsearch瀹㈡埛绔ぇ鍏?br /><a target="_blank">http://www.searchtech.pro/elasticsearch-clients</a><br /><br /><br />瀹㈡埛绔?br /><a target="_blank">http://es-cn.medcl.net/guide/concepts/scaling-lucene/</a><br /><a target="_blank">https://github.com/aglover/elasticsearch_article/blob/master/src/main/java/com/b50/usat/load/MusicReviewSearch.java</a><br /><br /><br /> <img src ="http://m.tkk7.com/paulwong/aggbug/403522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2013-08-31 15:52 <a href="http://m.tkk7.com/paulwong/archive/2013/08/31/403522.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Install hadoop+hbase+nutch+elasticsearchhttp://m.tkk7.com/paulwong/archive/2013/08/31/403513.htmlpaulwongpaulwongFri, 30 Aug 2013 17:17:00 GMThttp://m.tkk7.com/paulwong/archive/2013/08/31/403513.htmlhttp://m.tkk7.com/paulwong/comments/403513.htmlhttp://m.tkk7.com/paulwong/archive/2013/08/31/403513.html#Feedback3http://m.tkk7.com/paulwong/comments/commentRss/403513.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/403513.htmlH...  闃呰鍏ㄦ枃

    paulwong 2013-08-31 01:17 鍙戣〃璇勮
    ]]>
    Implementation for CombineFileInputFormat Hadoop 0.20.205http://m.tkk7.com/paulwong/archive/2013/08/29/403442.htmlpaulwongpaulwongThu, 29 Aug 2013 08:08:00 GMThttp://m.tkk7.com/paulwong/archive/2013/08/29/403442.htmlhttp://m.tkk7.com/paulwong/comments/403442.htmlhttp://m.tkk7.com/paulwong/archive/2013/08/29/403442.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/403442.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/403442.html
    鍏蜂綋鐨勫師鐞嗘槸涓嬭堪涓夋:

    1.鏍規(guī)嵁杈撳叆鐩綍涓嬬殑姣忎釜鏂囦歡,濡傛灉鍏墮暱搴﹁秴榪噈apred.max.split.size,浠lock涓哄崟浣嶅垎鎴愬涓猻plit(涓涓猻plit鏄竴涓猰ap鐨勮緭鍏?,姣忎釜split鐨勯暱搴﹂兘澶т簬mapred.max.split.size, 鍥犱負(fù)浠lock涓哄崟浣? 鍥犳涔熶細(xì)澶т簬blockSize, 姝ゆ枃浠跺墿涓嬬殑闀垮害濡傛灉澶т簬mapred.min.split.size.per.node, 鍒欑敓鎴愪竴涓猻plit, 鍚﹀垯鍏堟殏鏃朵繚鐣?

    2. 鐜板湪鍓╀笅鐨勯兘鏄竴浜涢暱搴︽晥鐭殑紕庣墖,鎶婃瘡涓猺ack涓嬬鐗囧悎騫? 鍙闀垮害瓚呰繃mapred.max.split.size灝卞悎騫舵垚涓涓猻plit, 鏈鍚庡鏋滃墿涓嬬殑紕庣墖姣攎apred.min.split.size.per.rack澶? 灝卞悎騫舵垚涓涓猻plit, 鍚﹀垯鏆傛椂淇濈暀.

    3. 鎶婁笉鍚宺ack涓嬬殑紕庣墖鍚堝茍, 鍙闀垮害瓚呰繃mapred.max.split.size灝卞悎騫舵垚涓涓猻plit, 鍓╀笅鐨勭鐗囨棤璁洪暱搴? 鍚堝茍鎴愪竴涓猻plit.
    涓句緥: mapred.max.split.size=1000
    mapred.min.split.size.per.node=300
    mapred.min.split.size.per.rack=100
    杈撳叆鐩綍涓嬩簲涓枃浠?rack1涓嬩笁涓枃浠?闀垮害涓?050,1499,10, rack2涓嬩袱涓枃浠?闀垮害涓?010,80. 鍙﹀blockSize涓?00.
    緇忚繃絎竴姝? 鐢熸垚浜斾釜split: 1000,1000,1000,499,1000. 鍓╀笅鐨勭鐗囦負(fù)rack1涓?50,10; rack2涓?0:80
    鐢變簬涓や釜rack涓嬬殑紕庣墖鍜岄兘涓嶈秴榪?00, 鎵浠ョ粡榪囩浜屾, split鍜岀鐗囬兘娌℃湁鍙樺寲.
    絎笁姝?鍚堝茍鍥涗釜紕庣墖鎴愪竴涓猻plit, 闀垮害涓?50.

    濡傛灉瑕佸噺灝憁ap鏁伴噺, 鍙互璋冨ぇmapred.max.split.size, 鍚﹀垯璋冨皬鍗沖彲.

    鍏剁壒鐐規(guī)槸: 涓涓潡鑷沖浣滀負(fù)涓涓猰ap鐨勮緭鍏ワ紝涓涓枃浠跺彲鑳芥湁澶氫釜鍧楋紝涓涓枃浠跺彲鑳藉洜涓哄潡澶氬垎緇欏仛涓轟笉鍚宮ap鐨勮緭鍏ワ紝 涓涓猰ap鍙兘澶勭悊澶氫釜鍧楋紝鍙兘澶勭悊澶氫釜鏂囦歡銆?br />
    娉細(xì)CombineFileInputFormat鏄竴涓娊璞$被錛岄渶瑕佺紪鍐欎竴涓戶鎵跨被銆?br />

    import java.io.IOException;

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.io.LongWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapred.FileSplit;
    import org.apache.hadoop.mapred.InputSplit;
    import org.apache.hadoop.mapred.JobConf;
    import org.apache.hadoop.mapred.LineRecordReader;
    import org.apache.hadoop.mapred.RecordReader;
    import org.apache.hadoop.mapred.Reporter;
    import org.apache.hadoop.mapred.lib.CombineFileInputFormat;
    import org.apache.hadoop.mapred.lib.CombineFileRecordReader;
    import org.apache.hadoop.mapred.lib.CombineFileSplit;

    @SuppressWarnings("deprecation")
    public class CombinedInputFormat extends CombineFileInputFormat<LongWritable, Text> {

        @SuppressWarnings({ "unchecked", "rawtypes" })
        @Override
        public RecordReader<LongWritable, Text> getRecordReader(InputSplit split, JobConf conf, Reporter reporter) throws IOException {

            return new CombineFileRecordReader(conf, (CombineFileSplit) split, reporter, (Class) myCombineFileRecordReader.class);
        }

        public static class myCombineFileRecordReader implements RecordReader<LongWritable, Text> {
            private final LineRecordReader linerecord;

            public myCombineFileRecordReader(CombineFileSplit split, Configuration conf, Reporter reporter, Integer index) throws IOException {
                FileSplit filesplit = new FileSplit(split.getPath(index), split.getOffset(index), split.getLength(index), split.getLocations());
                linerecord = new LineRecordReader(conf, filesplit);
            }

            @Override
            public void close() throws IOException {
                linerecord.close();

            }

            @Override
            public LongWritable createKey() {
                // TODO Auto-generated method stub
                return linerecord.createKey();
            }

            @Override
            public Text createValue() {
                // TODO Auto-generated method stub
                return linerecord.createValue();
            }

            @Override
            public long getPos() throws IOException {
                // TODO Auto-generated method stub
                return linerecord.getPos();
            }

            @Override
            public float getProgress() throws IOException {
                // TODO Auto-generated method stub
                return linerecord.getProgress();
            }

            @Override
            public boolean next(LongWritable key, Text value) throws IOException {

                // TODO Auto-generated method stub
                return linerecord.next(key, value);
            }

        }
    }


    鍦ㄨ繍琛屾椂榪欐牱璁劇疆錛?br />
    if (argument != null) {
                    conf.set("mapred.max.split.size", argument);
                } else {
                    conf.set("mapred.max.split.size", "134217728"); // 128 MB
                }
    //

                conf.setInputFormat(CombinedInputFormat.class);




    paulwong 2013-08-29 16:08 鍙戣〃璇勮
    ]]>
    浣跨敤Sqoop瀹炵幇HDFS涓嶮ysql浜掕漿http://m.tkk7.com/paulwong/archive/2013/05/11/399153.htmlpaulwongpaulwongSat, 11 May 2013 13:27:00 GMThttp://m.tkk7.com/paulwong/archive/2013/05/11/399153.htmlhttp://m.tkk7.com/paulwong/comments/399153.htmlhttp://m.tkk7.com/paulwong/archive/2013/05/11/399153.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/399153.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/399153.html 綆浠?br /> Sqoop鏄竴涓敤鏉ュ皢Hadoop鍜屽叧緋誨瀷鏁版嵁搴撲腑鐨勬暟鎹浉浜掕漿縐葷殑宸ュ叿錛屽彲浠ュ皢涓涓叧緋誨瀷鏁版嵁搴擄紙渚嬪 錛?MySQL ,Oracle ,Postgres絳夛級涓殑鏁版嵁瀵煎叆鍒癏adoop鐨凥DFS涓紝涔熷彲浠ュ皢HDFS鐨勬暟鎹鍏ュ埌鍏崇郴鍨嬫暟鎹簱涓?br />
    http://sqoop.apache.org/

    鐜
    褰撹皟璇曡繃紼嬪嚭鐜癐ncompatibleClassChangeError涓鑸兘鏄増鏈吋瀹歸棶棰樸?br />
    涓轟簡淇濊瘉hadoop鍜宻qoop鐗堟湰鐨勫吋瀹規(guī)э紝浣跨敤Cloudera錛?br />
    Cloudera綆浠嬶細(xì)

    Cloudera涓轟簡璁〩adoop鐨勯厤緗爣鍑嗗寲錛屽彲浠ュ府鍔╀紒涓氬畨瑁咃紝閰嶇疆錛岃繍琛宧adoop浠ヨ揪鍒板ぇ瑙勬ā浼佷笟鏁版嵁鐨勫鐞嗗拰鍒嗘瀽銆?br />
    http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDHTarballs/3.25.2013/CDH4-Downloadable-Tarballs/CDH4-Downloadable-Tarballs.html

    涓嬭澆瀹夎hadoop-0.20.2-cdh3u6錛宻qoop-1.3.0-cdh3u6銆?br />
    瀹夎
    瀹夎姣旇緝綆鍗曪紝鐩存帴瑙e帇鍗沖彲

    鍞竴闇瑕佸仛鐨勫氨鏄皢mysql鐨刯dbc閫傞厤鍖卪ysql-connector-java-5.0.7-bin.jar copy鍒?SQOOP_HOME/lib涓嬨?br />
    閰嶇疆濂界幆澧冨彉閲忥細(xì)/etc/profile

    export SQOOP_HOME=/home/hadoop/sqoop-1.3.0-cdh3u6/

    export PATH=$SQOOP_HOME/bin:$PATH

    MYSQL杞琀DFS-紺轟緥
    ./sqoop import --connect jdbc:mysql://10.8.210.166:3306/recsys --username root --password root --table shop -m 1 --target-dir /user/recsys/input/shop/$today


    HDFS杞琈YSQ-紺轟緥
    ./sqoop export --connect jdbc:mysql://10.8.210.166:3306/recsys --username root --password root --table shopassoc --fields-terminated-by ',' --export-dir /user/recsys/output/shop/$today

    紺轟緥鍙傛暟璇存槑
    (鍏朵粬鍙傛暟鎴戞湭浣跨敤錛屾晠涓嶄綔瑙i噴錛屾湭浣跨敤錛屽氨娌℃湁鍙戣█鏉冿紝璇﹁鍛戒護(hù)help)


    鍙傛暟綾誨瀷

    鍙傛暟鍚?br />
    瑙i噴

    鍏叡

    connect

    Jdbc-url

    鍏叡

    username

    ---

    鍏叡

    password

    ---

    鍏叡

    table

    琛ㄥ悕

    Import

    target-dir

    鍒跺畾杈撳嚭hdfs鐩綍錛岄粯璁よ緭鍑哄埌/user/$loginName/

    export

    fields-terminated-by

    Hdfs鏂囦歡涓殑瀛楁鍒嗗壊絎︼紝榛樿鏄?#8220;\t”

    export

    export-dir

    hdfs鏂囦歡鐨勮礬寰?img src ="http://m.tkk7.com/paulwong/aggbug/399153.html" width = "1" height = "1" />

    paulwong 2013-05-11 21:27 鍙戣〃璇勮
    ]]>
    鍏ㄦ柟浣嶇殑鎶鏈湇鍔″強鐩稿叧鎶鏈В鍐蟲柟妗堬紙綰痡ava瑙e喅鏂規(guī)錛?/title><link>http://m.tkk7.com/paulwong/archive/2013/05/11/399132.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 10 May 2013 16:17:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2013/05/11/399132.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/399132.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2013/05/11/399132.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/399132.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/399132.html</trackback:ping><description><![CDATA[<a target="_blank">http://www.iteye.com/topic/1128561</a> @import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://m.tkk7.com/paulwong/aggbug/399132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2013-05-11 00:17 <a href="http://m.tkk7.com/paulwong/archive/2013/05/11/399132.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓緗戞墦灝?3嬈懼紑婧怞ava澶ф暟鎹伐鍏?/title><link>http://m.tkk7.com/paulwong/archive/2013/05/03/398700.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 03 May 2013 01:05:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2013/05/03/398700.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/398700.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2013/05/03/398700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/398700.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/398700.html</trackback:ping><description><![CDATA[<p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>涓嬮潰灝嗕粙緇嶅ぇ鏁版嵁棰嗗煙鏀寔Java鐨勪富嫻佸紑婧愬伐鍏?/strong>錛?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce391277b5.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>1. HDFS</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">HDFS鏄疕adoop搴旂敤紼嬪簭涓富瑕佺殑鍒嗗竷寮忓偍瀛樼郴緇燂紝 HDFS闆嗙兢鍖呭惈浜嗕竴涓狽ameNode錛堜富鑺傜偣錛夛紝榪欎釜鑺傜偣璐熻矗綆$悊鎵鏈夋枃浠剁郴緇熺殑鍏冩暟鎹強瀛樺偍浜嗙湡瀹炴暟鎹殑DataNode錛堟暟鎹妭鐐癸紝鍙互鏈夊緢澶氾級銆侶DFS閽堝嫻烽噺鏁版嵁鎵璁捐錛屾墍浠ョ浉姣斾紶緇熸枃浠剁郴緇熷湪澶ф壒閲忓皬鏂囦歡涓婄殑浼樺寲錛孒DFS浼樺寲鐨勫垯鏄灝忔壒閲忓ぇ鍨嬫枃浠剁殑璁塊棶鍜屽瓨鍌ㄣ?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"></a><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce3c49ded6.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>2. MapReduce</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Hadoop MapReduce鏄竴涓蔣浠舵鏋訛紝鐢ㄤ互杞繪澗緙栧啓澶勭悊嫻烽噺錛圱B綰э級鏁版嵁鐨勫茍琛屽簲鐢ㄧ▼搴忥紝浠ュ彲闈犲拰瀹歸敊鐨勬柟寮忚繛鎺?span style="line-height: 1.45em;">澶у瀷闆嗙兢涓?/span><span style="line-height: 1.45em;">涓婁竾涓妭鐐癸紙鍟嗙敤紜歡錛夈?/span></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce3ee64519.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>3. HBase</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache HBase鏄疕adoop鏁版嵁搴擄紝涓涓垎甯冨紡銆佸彲鎵╁睍鐨勫ぇ鏁版嵁瀛樺偍銆傚畠鎻愪緵浜嗗ぇ鏁版嵁闆嗕笂闅忔満鍜屽疄鏃剁殑璇?鍐欒闂紝騫墮拡瀵逛簡鍟嗙敤鏈嶅姟鍣ㄩ泦緹や笂鐨勫ぇ鍨嬭〃鏍煎仛鍑轟紭鍖?#8212;—涓婄櫨浜胯錛屼笂鍗冧竾鍒椼傚叾鏍稿績鏄疓oogle Bigtable璁烘枃鐨勫紑婧愬疄鐜幫紝鍒嗗竷寮忓垪寮忓瓨鍌ㄣ傚氨鍍廈igtable鍒╃敤GFS錛圙oogle File System錛夋彁渚涚殑鍒嗗竷寮忔暟鎹瓨鍌ㄤ竴鏍鳳紝瀹冩槸Apache Hadoop鍦℉DFS鍩虹涓婃彁渚涚殑涓涓被Bigatable銆?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce413366c7.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>4. Cassandra</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache Cassandra鏄竴涓珮鎬ц兘銆佸彲綰挎ф墿灞曘侀珮鏈夋晥鎬ф暟鎹簱錛屽彲浠ヨ繍琛屽湪鍟嗙敤紜歡鎴栦簯鍩虹璁炬柦涓婃墦閫犲畬緹庣殑浠誨姟鍏抽敭鎬ф暟鎹鉤鍙般傚湪妯法鏁版嵁涓績鐨勫鍒朵腑錛孋assandra鍚岀被鏈浣籌紝涓虹敤鎴鋒彁渚涙洿浣庣殑寤舵椂浠ュ強鏇村彲闈犵殑鐏鵑毦澶囦喚銆傞氳繃log-structured update銆佸弽瑙勮寖鍖栧拰鐗╁寲瑙嗗浘鐨勫己鏀寔浠ュ強寮哄ぇ鐨勫唴緗紦瀛橈紝Cassandra鐨勬暟鎹ā鍨嬫彁渚涗簡鏂逛究鐨勪簩綰х儲寮曪紙column indexe錛夈?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce4611885c.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>5. Hive</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache Hive鏄疕adoop鐨勪竴涓暟鎹粨搴撶郴緇燂紝淇冭繘浜嗘暟鎹殑緇艱堪錛堝皢緇撴瀯鍖栫殑鏁版嵁鏂囦歡鏄犲皠涓轟竴寮犳暟鎹簱琛級銆佸嵆甯煡璇互鍙婂瓨鍌ㄥ湪Hadoop鍏煎緋葷粺涓殑澶у瀷鏁版嵁闆嗗垎鏋愩侶ive鎻愪緵瀹屾暣鐨凷QL鏌ヨ鍔熻兘——HiveQL璇█錛屽悓鏃跺綋浣跨敤榪欎釜璇█琛ㄨ揪涓涓?span style="line-height: 1.45em;">閫昏緫</span><span style="line-height: 1.45em;">鍙樺緱浣庢晥鍜岀箒鐞?/span><span style="line-height: 1.45em;">鏃訛紝HiveQL榪樺厑璁鎬紶緇熺殑Map/Reduce紼嬪簭鍛樹嬌鐢ㄨ嚜宸卞畾鍒剁殑Mapper鍜孯educer銆?/span></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce470085ed.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>6. Pig</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache Pig鏄竴涓敤浜庡ぇ鍨嬫暟鎹泦鍒嗘瀽鐨勫鉤鍙幫紝瀹冨寘鍚簡涓涓敤浜庢暟鎹垎鏋愬簲鐢ㄧ殑楂樼駭璇█浠ュ強璇勪及榪欎簺搴旂敤鐨勫熀紜璁炬柦銆侾ig搴旂敤鐨勯棯鍏夌壒鎬у湪浜庡畠浠殑緇撴瀯緇忓緱璧峰ぇ閲忕殑騫惰錛屼篃灝辨槸璇磋瀹冧滑鏀拺璧烽潪甯稿ぇ鐨勬暟鎹泦銆侾ig鐨勫熀紜璁炬柦灞傚寘鍚簡浜х敓Map-Reduce浠誨姟鐨勭紪璇戝櫒銆侾ig鐨勮璦灞傚綋鍓嶅寘鍚簡涓涓師鐢熻璦——Pig Latin錛屽紑鍙戠殑鍒濊》鏄槗浜庣紪紼嬪拰淇濊瘉鍙墿灞曟с?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce47b8e077.jpg" border="0" alt="" style="vertical-align: middle; border: none; width: 99px; height: 99px; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>7. Chukwa</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache Chukwa鏄釜寮婧愮殑鏁版嵁鏀墮泦緋葷粺錛岀敤浠ョ洃瑙嗗ぇ鍨嬪垎甯冪郴緇熴傚緩绔嬩簬HDFS鍜孧ap/Reduce妗嗘灦涔嬩笂錛岀戶鎵夸簡Hadoop鐨勫彲鎵╁睍鎬у拰紼沖畾鎬с侰hukwa鍚屾牱鍖呭惈浜嗕竴涓伒媧誨拰寮哄ぇ鐨勫伐鍏峰寘錛岀敤浠ユ樉紺恒佺洃瑙嗗拰鍒嗘瀽緇撴灉錛屼互淇濊瘉鏁版嵁鐨勪嬌鐢ㄨ揪鍒版渶浣蟲晥鏋溿?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce4870b072.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>8. Ambari</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache Ambari鏄竴涓熀浜巜eb鐨勫伐鍏鳳紝鐢ㄤ簬閰嶇疆銆佺鐞嗗拰鐩戣Apache Hadoop闆嗙兢錛屾敮鎸丠adoop HDFS,銆丠adoop MapReduce銆丠ive銆丠Catalog,銆丠Base銆乑ooKeeper銆丱ozie銆丳ig鍜孲qoop銆侫mbari鍚屾牱榪樻彁渚涗簡闆嗙兢鐘跺喌浠〃鐩橈紝姣斿heatmaps鍜屾煡鐪婱apReduce銆丳ig銆丠ive搴旂敤紼嬪簭鐨勮兘鍔涳紝浠ュ弸濂界殑鐢ㄦ埛鐣岄潰瀵瑰畠浠殑鎬ц兘鐗規(guī)ц繘琛岃瘖鏂?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce49282930.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>9. ZooKeeper</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache ZooKeeper鏄竴涓拡瀵瑰ぇ鍨嬪垎甯冨紡緋葷粺鐨勫彲闈犲崗璋冪郴緇燂紝鎻愪緵鐨勫姛鑳藉寘鎷細(xì)閰嶇疆緇存姢銆佸懡鍚嶆湇鍔°佸垎甯冨紡鍚屾銆佺粍鏈嶅姟絳夈俍ooKeeper鐨勭洰鏍囧氨鏄皝瑁呭ソ澶嶆潅鏄撳嚭閿欑殑鍏抽敭鏈嶅姟錛屽皢綆鍗曟槗鐢ㄧ殑鎺ュ彛鍜屾ц兘楂樻晥銆佸姛鑳界ǔ瀹氱殑緋葷粺鎻愪緵緇欑敤鎴楓?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce49e31e19.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>10. Sqoop</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Sqoop鏄竴涓敤鏉ュ皢Hadoop鍜屽叧緋誨瀷鏁版嵁搴撲腑鐨勬暟鎹浉浜掕漿縐葷殑宸ュ叿錛屽彲浠ュ皢涓涓叧緋誨瀷鏁版嵁搴撲腑鏁版嵁瀵煎叆Hadoop鐨凥DFS涓紝涔熷彲浠ュ皢HDFS涓暟鎹鍏ュ叧緋誨瀷鏁版嵁搴撲腑銆?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce4b0d3c61.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>11. Oozie</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache Oozie鏄竴涓彲鎵╁睍銆佸彲闈犲強鍙墿鍏呯殑宸ヤ綔嫻佽皟搴︾郴緇燂紝鐢ㄤ互綆$悊Hadoop浣滀笟銆侽ozie Workflow浣滀笟鏄椿鍔ㄧ殑Directed Acyclical Graphs錛圖AGs錛夈侽ozie Coordinator浣滀笟鏄敱鍛ㄦ湡鎬х殑Oozie Workflow浣滀笟瑙﹀彂錛屽懆鏈熶竴鑸喅瀹氫簬鏃墮棿錛堥鐜囷級鍜屾暟鎹彲鐢ㄦс侽ozie涓庝綑涓嬬殑Hadoop鍫嗘爤緇撳悎浣跨敤錛屽紑綆卞嵆鐢ㄧ殑鏀寔澶氱綾誨瀷Hadoop浣滀笟錛堟瘮濡傦細(xì)Java map-reduce銆丼treaming map-reduce銆丳ig銆?Hive銆丼qoop鍜孌istcp錛変互鍙婂叾瀹冪郴緇熶綔涓氾紙姣斿Java紼嬪簭鍜孲hell鑴氭湰錛夈?/p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce4bdedb23.jpg" border="0" alt="" style="vertical-align: middle; border: none; width: 100px; height: 100px; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>12. Mahout</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache Mahout鏄釜鍙墿灞曠殑鏈哄櫒瀛︿範(fàn)鍜屾暟鎹寲鎺樺簱錛屽綋鍓峂ahout鏀寔涓昏鐨?涓敤渚嬶細(xì)</p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"></p><ul style="margin: 0px 0px 1em 20px; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style: disc;"><span style="line-height: 1.45em;">鎺ㄨ崘鎸栨帢錛氭悳闆嗙敤鎴峰姩浣滃茍浠ユ緇欑敤鎴鋒帹鑽愬彲鑳藉枩嬈㈢殑浜嬬墿銆?/span></li><li style="margin: 0px; padding: 0px; list-style: disc;"><span style="line-height: 1.45em;">鑱氶泦錛氭敹闆嗘枃浠跺茍榪涜鐩稿叧鏂囦歡鍒嗙粍銆?/span></li><li style="margin: 0px; padding: 0px; list-style: disc;"><span style="line-height: 1.45em;">鍒嗙被錛氫粠鐜版湁鐨勫垎綾繪枃妗d腑瀛︿範(fàn)錛屽鎵炬枃妗d腑鐨勭浉浼肩壒寰侊紝騫朵負(fù)鏃犳爣絳劇殑鏂囨。榪涜姝g‘鐨勫綊綾匯?/span></li><li style="margin: 0px; padding: 0px; list-style: disc;"><span style="line-height: 1.45em;">棰戠箒欏歸泦鎸栨帢錛氬皢涓緇勯」鍒嗙粍錛屽茍璇嗗埆鍝簺涓埆欏逛細(xì)緇忓父涓璧峰嚭鐜般?/span></li></ul><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><a target="_blank" style="cursor: pointer; color: #0066cc; text-decoration: none;"><img src="http://cms.csdnimg.cn/article/201304/28/517ce4cf93346.jpg" border="0" alt="" style="vertical-align: middle; border: none; float: right; margin: 0px 0px 10px 10px;" /></a></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><strong>13. HCatalog</strong></p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;">Apache HCatalog鏄疕adoop寤虹珛鏁版嵁鐨勬槧灝勮〃鍜屽瓨鍌ㄧ鐞嗘湇鍔★紝瀹冨寘鎷細(xì)</p><p style="margin: 0px 0px 1.5em; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"></p><ul style="margin: 0px 0px 1em 20px; padding: 0px; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style: disc;"><span style="line-height: 1.45em;">鎻愪緵涓涓叡浜ā寮忓拰鏁版嵁綾誨瀷鏈哄埗銆?/span></li><li style="margin: 0px; padding: 0px; list-style: disc;"><span style="line-height: 1.45em;">鎻愪緵涓涓娊璞¤〃錛岃繖鏍風(fēng)敤鎴峰氨涓嶉渶瑕佸叧娉ㄦ暟鎹瓨鍌ㄧ殑鏂瑰紡鍜屽湴鍧銆?/span></li><li style="margin: 0px; padding: 0px; list-style: disc;"><span style="line-height: 1.45em;">涓虹被浼糚ig銆丮apReduce鍙奌ive榪欎簺鏁版嵁澶勭悊宸ュ叿鎻愪緵浜掓搷浣滄с?/span></li></ul><img src ="http://m.tkk7.com/paulwong/aggbug/398700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2013-05-03 09:05 <a href="http://m.tkk7.com/paulwong/archive/2013/05/03/398700.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓涓狿IG鑴氭湰渚嬪瓙鍒嗘瀽http://m.tkk7.com/paulwong/archive/2013/04/13/397791.htmlpaulwongpaulwongSat, 13 Apr 2013 07:21:00 GMThttp://m.tkk7.com/paulwong/archive/2013/04/13/397791.htmlhttp://m.tkk7.com/paulwong/comments/397791.htmlhttp://m.tkk7.com/paulwong/archive/2013/04/13/397791.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/397791.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/397791.html
    PIGGYBANK_PATH=$PIG_HOME/contrib/piggybank/java/piggybank.jar
    INPUT=pig/input/test-pig-full.txt
    OUTPUT=pig/output/test-pig-output-$(date  +%Y%m%d%H%M%S)
    PIGSCRIPT=analyst_status_logs.pig

    #analyst_500_404_month.pig
    #
    analyst_500_404_day.pig
    #
    analyst_404_percentage.pig
    #
    analyst_500_percentage.pig
    #
    analyst_unique_path.pig
    #
    analyst_user_logs.pig
    #
    analyst_status_logs.pig


    pig -p PIGGYBANK_PATH=$PIGGYBANK_PATH -p INPUT=$INPUT -p OUTPUT=$OUTPUT $PIGSCRIPT


    瑕佸垎鏋愮殑鏁版嵁婧愶紝LOG 鏂囦歡
    46.20.45.18 - - [25/Dec/2012:23:00:25 +0100] "GET / HTTP/1.0" 302 - "-" "Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)" "-" "-" 46.20.45.18 "" 11011AEC9542DB0983093A100E8733F8 0
    46.20.45.18 - - [25/Dec/2012:23:00:25 +0100] "GET /sign-in.jspx HTTP/1.0" 200 3926 "-" "Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)" "-" "-" 46.20.45.18 "" 11011AEC9542DB0983093A100E8733F8 0
    69.59.28.19 - - [25/Dec/2012:23:01:25 +0100] "GET / HTTP/1.0" 302 - "-" "Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)" "-" "-" 69.59.28.19 "" 36D80DE7FE52A2D89A8F53A012307B0A 15


    PIG鑴氭湰錛?br />
    --娉ㄥ唽JAR鍖咃紝鍥犱負(fù)瑕佺敤鍒癉ateExtractor
    register '$PIGGYBANK_PATH';

    --澹版槑涓涓煭鍑芥暟鍚?br />DEFINE DATE_EXTRACT_MM 
    org.apache.pig.piggybank.evaluation.util.apachelogparser.DateExtractor('yyyy-MM');

    DEFINE DATE_EXTRACT_DD 
    org.apache.pig.piggybank.evaluation.util.apachelogparser.DateExtractor('yyyy-MM-dd');

    -- pig/input/test-pig-full.txt
    --鎶婃暟鎹粠鍙橀噺鎵鎸囩殑鏂囦歡鍔犺澆鍒癙IG涓紝騫跺畾涔夋暟鎹垪鍚嶏紝姝ゆ椂鐨勬暟鎹泦涓烘暟緇?a,b,c)
    raw_logs = load '$INPUT' USING org.apache.pig.piggybank.storage.MyRegExLoader('^(\\S+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] "(\\S+) (\\S+) (HTTP[^"]+)" (\\S+) (\\S+) "([^"]*)" "([^"]*)" "(\\S+)" "(\\S+)" (\\S+) "(.*)" (\\S+) (\\S+)')
    as (remoteAddr: chararray, 
    n2: chararray, 
    n3: chararray, 
    time: chararray, 
    method: chararray,
    path:chararray,
    protocol:chararray,
    status: int, 
    bytes_string: chararray, 
    referrer: chararray, 
    browser: chararray, 
    n10:chararray,
    remoteLogname: chararray, 
    remoteAddr12: chararray, 
    path2: chararray, 
    sessionid: chararray, 
    n15: chararray
    );

    --榪囨護(hù)鏁版嵁
    filter_logs = FILTER raw_logs BY not (browser matches '.*pingdom.*');
    --item_logs = FOREACH raw_logs GENERATE browser;

    --percent 500 logs
    --閲嶅畾涔夋暟鎹」錛屾暟鎹泦鍙彇2欏箂tatus,month
    reitem_percent_500_logs = FOREACH filter_logs GENERATE status,DATE_EXTRACT_MM(time) as month;
    --鍒嗙粍鏁版嵁闆嗭紝姝ゆ椂鐨勬暟鎹粨鏋勪負(fù)MAP(a{(aa,bb,cc),(dd,ee,ff)},b{(bb,cc,dd),(ff,gg,hh)})
    group_month_percent_500_logs = GROUP reitem_percent_500_logs BY (month);
    --閲嶅畾涔夊垎緇勬暟鎹泦鏁版嵁欏癸紝榪涜鍒嗙粍緇熻錛屾鏃惰鑱斿悎鍒嗙粍鏁版嵁闆嗗拰鍘熸暟鎹泦緇熻
    final_month_500_logs = FOREACH group_month_percent_500_logs 
    {
        --瀵瑰師鏁版嵁闆嗗仛count錛屽洜涓烘槸鍦╢oreachj閲屽仛count鐨勶紝鍗充嬌鏄鍘熸暟鎹泦錛屼篃浼?xì)鑷姩浼?xì)鍔爉onth==group鐨勬潯浠?br />    --浠庤繖閲屽彲浠ョ湅鍑哄浜巊roup閲岀殑鏁版嵁闆嗭紝瀹屽叏娌$敤鍒?br />    --榪欐椂鏄互姣忎竴琛屼負(fù)鍗曚綅鐨勶紝緇熻MAP涓殑KEY-a瀵瑰簲鐨勬暟緇勫湪鍘熸暟鎹泦涓殑涓暟
        total = COUNT(reitem_percent_500_logs);
        --瀵瑰師鏁版嵁闆嗗仛filter錛屽洜涓烘槸鍦╢oreachj閲屽仛count鐨勶紝鍗充嬌鏄鍘熸暟鎹泦錛屼篃浼?xì)鑷姩浼?xì)鍔爉onth==group鐨勬潯浠?br />    --閲嶆柊榪囨護(hù)涓涓嬪師鏁版嵁闆嗭紝寰楀埌status==500,month==group鐨勬暟鎹泦
        t = filter reitem_percent_500_logs by status== 500; --create a bag which contains only T values
        --閲嶅畾涔夋暟鎹」錛屽彇group錛岀粺璁$粨鏋?br />    generate flatten(group) as col1, 100*(double)COUNT(t)/(double)total;
    }
    STORE final_month_500_logs into '$OUTPUT' using PigStorage(',');



    paulwong 2013-04-13 15:21 鍙戣〃璇勮
    ]]>
    鎶婂懡浠よ涓殑鍊間紶榪汸IG涓?/title><link>http://m.tkk7.com/paulwong/archive/2013/04/10/397645.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 10 Apr 2013 07:32:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2013/04/10/397645.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/397645.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2013/04/10/397645.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/397645.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/397645.html</trackback:ping><description><![CDATA[<a target="_blank">http://wiki.apache.org/pig/ParameterSubstitution<br /> <br /> <br /> </a> <div> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->%pig -param input=/user/paul/sample.txt -param output=/user/paul/output/</div> </div><br /><br />PIG涓幏鍙?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->records = LOAD <span style="color: #800080; ">$input</span>;</div><img src ="http://m.tkk7.com/paulwong/aggbug/397645.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2013-04-10 15:32 <a href="http://m.tkk7.com/paulwong/archive/2013/04/10/397645.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>PIG灝忚http://m.tkk7.com/paulwong/archive/2013/04/05/397411.htmlpaulwongpaulwongFri, 05 Apr 2013 13:33:00 GMThttp://m.tkk7.com/paulwong/archive/2013/04/05/397411.htmlhttp://m.tkk7.com/paulwong/comments/397411.htmlhttp://m.tkk7.com/paulwong/archive/2013/04/05/397411.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/397411.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/397411.html浠涔堟槸PIG
    鏄竴縐嶈璁¤璦錛岄氳繃璁捐鏁版嵁鎬庝箞嫻佸姩錛岀劧鍚庣敱鐩稿簲鐨勫紩鎿庡皢姝ゅ彉鎴怣APREDUCE JOB鍘籋ADOOP涓繍琛屻?/div>
    PIG涓嶴QL
    涓よ呮湁鐩稿悓涔嬪錛屾墽琛屼竴涓垨澶氫釜璇彞錛岀劧鍚庡嚭鏉ヤ竴浜涚粨鏋溿?/div>
    浣嗕笉鍚岀殑鏄紝SQL瑕佸厛鎶婃暟鎹鍒拌〃涓墠鑳芥墽琛岋紝SQL涓嶅叧蹇冧腑闂村浣曞仛錛屽嵆鍙戜竴涓猄QL璇彞榪囧幓錛屽氨鏈夌粨鏋滃嚭鏉ャ?/div>
    PIG錛屾棤欏誨鏁版嵁鍒拌〃涓紝浣嗚璁捐鐩村埌鍑虹粨鏋滅殑涓棿榪囩▼錛屾楠ゅ浣曠瓑絳夈?/div>

    paulwong 2013-04-05 21:33 鍙戣〃璇勮
    ]]>hadoop闆嗙兢涓坊鍔犺妭鐐規(guī)楠?/title><link>http://m.tkk7.com/paulwong/archive/2013/03/16/396544.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 16 Mar 2013 15:04:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2013/03/16/396544.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/396544.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2013/03/16/396544.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/396544.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/396544.html</trackback:ping><description><![CDATA[鍦ㄦ柊鑺傜偣瀹夎濂絟adoop<br /><br /><br />鎶妌amenode鐨勬湁鍏抽厤緗枃浠跺鍒跺埌璇ヨ妭鐐?br /><br /><br />淇敼masters鍜宻laves鏂囦歡,澧炲姞璇ヨ妭鐐?br /><br /><br />璁劇疆ssh鍏嶅瘑鐮佽繘鍑鴻鑺傜偣<br /><br /><br />鍗曠嫭鍚姩璇ヨ妭鐐逛笂鐨刣atanode鍜宼asktracker(hadoop-daemon.sh start datanode/tasktracker)<br /><br /><br />榪愯start-balancer.sh榪涜鏁版嵁璐熻澆鍧囪 <br /> <br /><br />璐熻澆鍧囪 :浣滅敤:褰撹妭鐐瑰嚭鐜版晠闅?鎴栨柊澧炲姞鑺傜偣鏃?鏁版嵁鍧楀垎甯冨彲鑳戒笉鍧囧寑,璐熻澆鍧囪 鍙互閲嶆柊騫寵 鍚勪釜datanode涓婃暟鎹潡鐨勫垎甯?img src ="http://m.tkk7.com/paulwong/aggbug/396544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2013-03-16 23:04 <a href="http://m.tkk7.com/paulwong/archive/2013/03/16/396544.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Phoenix: HBase緇堜簬鏈塖QL鎺ュ彛浜嗭綖http://m.tkk7.com/paulwong/archive/2013/02/19/395432.htmlpaulwongpaulwongTue, 19 Feb 2013 15:15:00 GMThttp://m.tkk7.com/paulwong/archive/2013/02/19/395432.htmlhttp://m.tkk7.com/paulwong/comments/395432.htmlhttp://m.tkk7.com/paulwong/archive/2013/02/19/395432.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/395432.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/395432.html
    鍏蜂綋璇﹁錛?a target="_blank">https://github.com/forcedotcom/phoenix

    鏀寔select錛宖rom錛寃here錛実roupby錛宧aving錛宱rderby鍜屽緩琛ㄦ搷浣滐紝鏈潵灝嗘敮鎸佷簩綰х儲寮曪紝join鎿嶄綔錛屽姩鎬佸垪綈囩瓑鍔熻兘銆?br />
    鏄緩绔嬪湪鍘熺敓HBASE API鍩虹涓婄殑錛屽搷搴旀椂闂?0M綰у埆鐨勬暟鎹槸姣錛?00M綰у埆鏄銆?br />



    paulwong 2013-02-19 23:15 鍙戣〃璇勮
    ]]>
    鐩戞帶HBASEhttp://m.tkk7.com/paulwong/archive/2013/02/04/395107.htmlpaulwongpaulwongMon, 04 Feb 2013 07:08:00 GMThttp://m.tkk7.com/paulwong/archive/2013/02/04/395107.htmlhttp://m.tkk7.com/paulwong/comments/395107.htmlhttp://m.tkk7.com/paulwong/archive/2013/02/04/395107.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/395107.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/395107.htmlHadoop/Hbase鏄紑婧愮増鐨刧oogle Bigtable, GFS, MapReduce鐨勫疄鐜幫紝闅忕潃浜掕仈緗戠殑鍙戝睍錛屽ぇ鏁版嵁鐨勫鐞嗘樉寰楄秺鍙戦噸瑕侊紝Hadoop/Hbase鐨勭敤姝︿箣鍦頒篃瓚婂彂騫挎硾銆備負(fù)浜嗘洿濂界殑浣跨敤Hadoop/Hbase緋葷粺錛岄渶瑕佹湁涓濂楀畬鍠勭殑鐩戞帶緋葷粺錛屾潵浜嗚В緋葷粺榪愯鐨勫疄鏃剁姸鎬侊紝鍋氬埌涓鍒囧敖鍦ㄦ帉鎻°侶adoop/Hbase鏈夎嚜宸遍潪甯稿畬鍠勭殑metrics framework, 閲岄潰鍖呯鍚勭緇村害鐨勭郴緇熸寚鏍囩殑緇熻錛屽彟澶栵紝榪欏metrics framework璁捐鐨勪篃闈炲父涓嶉敊錛岀敤鎴峰彲浠ュ緢鏂逛究鍦版坊鍔犺嚜瀹氫箟鐨刴etrics銆傛洿涓洪噸瑕佺殑涓鐐規(guī)槸metrics鐨勫睍紺烘柟寮忥紝鐩墠瀹冩敮鎸佷笁縐嶆柟寮忥細(xì)涓縐嶆槸钀藉湴鍒版湰鍦版枃浠訛紝涓縐嶆槸report緇橤anglia緋葷粺錛屽彟涓縐嶆槸閫氳繃JMX鏉ュ睍紺恒傛湰鏂囦富瑕佷粙緇嶆庝箞鎶奌adoop/Hbase鐨刴etrics report緇橤anglia緋葷粺錛岄氳繃嫻忚鍣ㄦ潵鏌ョ湅銆?br />
    浠嬬粛鍚庨潰鐨勫唴瀹逛箣鍓嶆湁蹇呰鍏堢畝鍗曚粙緇嶄竴涓婫anglia緋葷粺銆侴anglia鏄竴涓紑婧愮殑鐢ㄤ簬緋葷粺鐩戞帶鐨勭郴緇燂紝瀹冪敱涓夐儴鍒嗙粍鎴愶細(xì)gmond, gmetad, webfrontend, 涓夐儴鍒嗘槸榪欐牱鍒嗗伐鐨勶細(xì)

    gmond: 鏄竴涓畧鎶よ繘紼嬶紝榪愯鍦ㄦ瘡涓涓渶瑕佺洃嫻嬬殑鑺傜偣涓婏紝鏀墮泦鐩戞祴緇熻錛屽彂閫佸拰鎺ュ彈鍦ㄥ悓涓涓粍鎾垨鍗曟挱閫氶亾涓婄殑緇熻淇℃伅
    gmetad: 鏄竴涓畧鎶よ繘紼嬶紝瀹氭湡媯鏌mond錛屼粠閭i噷鎷夊彇鏁版嵁錛屽茍灝嗕粬浠殑鎸囨爣瀛樺偍鍦≧RD瀛樺偍寮曟搸涓?br /> webfrontend: 瀹夎鍦ㄦ湁gmetad榪愯鐨勬満鍣ㄤ笂錛屼互渚胯鍙朢RD鏂囦歡錛岀敤鏉ュ仛鍓嶅彴灞曠ず

    綆鍗曟葷粨瀹冧滑涓夎呯殑鍚勮嚜鐨勫姛鐢紝gmond鏀墮泦鏁版嵁鍚勪釜node涓婄殑metrics鏁版嵁錛実metad姹囨籫mond鏀墮泦鍒扮殑鏁版嵁錛寃ebfrontend鍦ㄥ墠鍙板睍紺篻metad姹囨葷殑鏁版嵁銆侴anglia緙虹渷鏄緋葷粺鐨勪竴浜沵etric榪涜鐩戞帶錛屾瘮濡俢pu/memory/net絳夈備笉榪嘓adoop/Hbase鍐呴儴鍋氫簡瀵笹anglia鐨勬敮鎸侊紝鍙渶瑕佺畝鍗曠殑鏀歸厤緗氨鍙互灝咹adoop/Hbase鐨刴etrics涔熸帴鍏ュ埌ganglia緋葷粺涓繘琛岀洃鎺с?br />
    鎺ヤ笅鏉ヤ粙緇嶅浣曟妸Hadoop/Hbase鎺ュ叆鍒癎anglia緋葷粺錛岃繖閲岀殑Hadoop/Hbase鐨勭増鏈彿鏄?.94.2錛屾棭鏈熺殑鐗堟湰鍙兘浼?xì)鏈変竴浜涗笉鍚岋紝璇鋒敞鎰忓尯鍒侶base鏈潵鏄疕adoop涓嬮潰鐨勫瓙欏圭洰錛屽洜姝ゆ墍鐢ㄧ殑metrics framework鍘熸湰鏄悓涓濂桯adoop metrics錛屼絾鍚庨潰hadoop鏈変簡鏀硅繘鐗堟湰鐨刴etrics framework:metrics2(metrics version 2), Hadoop涓嬮潰鐨勯」鐩兘宸茬粡寮濮嬩嬌鐢╩etrics2, 鑰孒base鎴愪簡Apache鐨勯《綰у瓙欏圭洰錛屽拰Hadoop鎴愪負(fù)騫寵鐨勯」鐩悗錛岀洰鍓嶈繕娌¤窡榪沵etrics2錛屽畠鐢ㄧ殑榪樻槸鍘熷鐨刴etrics.鍥犳榪欓噷闇瑕佹妸Hadoop鍜孒base鐨刴etrics鍒嗗紑浠嬬粛銆?br />
    Hadoop鎺ュ叆Ganglia:

    1. Hadoop metrics2瀵瑰簲鐨勯厤緗枃浠朵負(fù)錛歨adoop-metrics2.properties
    2. hadoop metrics2涓紩鐢ㄤ簡source鍜宻ink鐨勬蹇碉紝source鏄敤鏉ユ敹闆嗘暟鎹殑, sink鏄敤鏉ユ妸source鏀墮泦鐨勬暟鎹甤onsume鐨勶紙鍖呮嫭钀藉湴鏂囦歡錛屼笂鎶anglia錛孞MX絳夛級
    3. hadoop metrics2閰嶇疆鏀寔Ganglia:
    #*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink30
    *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
     
    *.sink.ganglia.period=10
    *.sink.ganglia.supportsparse=true
    *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
    *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
     
    #uncomment as your needs
    namenode.sink.ganglia.servers=10.235.6.156:8649
    #datanode.sink.ganglia.servers=10.235.6.156:8649
    #jobtracker.sink.ganglia.servers=10.0.3.99:8649
    #tasktracker.sink.ganglia.servers=10.0.3.99:8649
    #maptask.sink.ganglia.servers=10.0.3.99:8649
    #reducetask.sink.ganglia.servers=10.0.3.99:8649


    榪欓噷闇瑕佹敞鎰忕殑鍑犵偣錛?br />
    (1) 鍥犱負(fù)Ganglia3.1涓?.0涓嶅吋瀹癸紝闇瑕佹牴鎹瓽anglia鐨勭増鏈夋嫨浣跨敤GangliaSink30鎴栬匞angliaSink31
    (2) period閰嶇疆涓婃姤鍛ㄦ湡錛屽崟浣嶆槸縐?s)
    (3) namenode.sink.ganglia.servers鎸囧畾Ganglia gmetad鎵鍦ㄧ殑host:port錛岀敤鏉ュ悜鍏朵笂鎶ユ暟鎹?br /> (4) 濡傛灉鍚屼竴涓墿鐞嗘満鍣ㄤ笂鍚屾椂鍚姩浜嗗涓猦adoop榪涚▼(namenode/datanode, etc)錛屾牴鎹渶瑕佹妸鐩稿簲鐨勮繘紼嬬殑sink.ganglia.servers閰嶇疆濂藉嵆鍙?br /> Hbase鎺ュ叆Ganglia:

    1. Hbase鎵鐢ㄧ殑hadoop metrics瀵瑰簲鐨勯厤緗枃浠舵槸: hadoop-metrics.properties
    2. hadoop metrics閲屾牳蹇冩槸Context錛屽啓鏂囦歡鏈夊啓鏂囦歡鐨凾imeStampingFileContext, 鍚慓anglia涓婃姤鏈塆angliaContext/GangliaContext31
    3. hadoop metrics閰嶇疆鏀寔Ganglia:
    # Configuration of the "hbase" context for ganglia
    # Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
    # hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext
    hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
    hbase.period=10
    hbase.servers=10.235.6.156:8649

    榪欓噷闇瑕佹敞鎰忓嚑鐐癸細(xì)

    (1) 鍥犱負(fù)Ganglia3.1鍜?.0涓嶅吋瀹癸紝鎵浠ュ鏋滄槸3.1浠ュ墠鐨勭増鏈紝闇瑕佺敤GangliaContext, 濡傛灉鏄?.1鐗堢殑Ganglia錛岄渶瑕佺敤GangliaContext31
    (2) period鐨勫崟浣嶆槸縐?s)錛岄氳繃period鍙互閰嶇疆鍚慓anglia涓婃姤鏁版嵁鐨勫懆鏈?br /> (3) servers鎸囧畾鐨勬槸Ganglia gmetad鎵鍦ㄧ殑host:port錛屾妸鏁版嵁涓婃姤鍒版寚瀹氱殑gmetad
    (4) 瀵箁pc鍜宩vm鐩稿叧鐨勬寚鏍囬兘鍙互榪涜綾諱技鐨勯厤緗?/div>







    paulwong 2013-02-04 15:08 鍙戣〃璇勮
    ]]>HBASE閮ㄧ講瑕佺偣http://m.tkk7.com/paulwong/archive/2013/02/04/395101.htmlpaulwongpaulwongMon, 04 Feb 2013 04:10:00 GMThttp://m.tkk7.com/paulwong/archive/2013/02/04/395101.htmlhttp://m.tkk7.com/paulwong/comments/395101.htmlhttp://m.tkk7.com/paulwong/archive/2013/02/04/395101.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/395101.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/395101.htmlREGIONS SERVER鍜孴ASK TRACKER SERVER涓嶈鍦ㄥ悓涓鍙版満鍣ㄤ笂錛屾渶濂藉鏋滄湁MAPREDUCE JOB榪愯鐨勮瘽錛屽簲璇ュ垎寮涓や釜CLUSTER錛屽嵆涓ょ兢涓嶅悓鐨勬湇鍔″櫒涓婏紝榪欐牱MAPREDUCE 鐨勭嚎涓嬭礋杞戒笉浼?xì)濯勫搷鍒癝CANER榪欎簺綰夸笂璐熻澆銆?/div>

    濡傛灉涓昏鏄仛MAPREDUCE JOB鐨勮瘽錛屽皢REGIONS SERVER鍜孴ASK TRACKER SERVER鏀懼湪涓璧鋒槸鍙互鐨勩?/div>


    鍘熷闆嗙兢妯″紡

    10涓垨浠ヤ笅鑺傜偣錛屾棤MAPREDUCE JOB錛屼富瑕佺敤浜庝綆寤惰繜鐨勮闂傛瘡涓妭鐐逛笂鐨勯厤緗負(fù)錛欳PU4-6CORE錛屽唴瀛?4-32G錛?涓猄ATA紜洏銆侶adoop NameNode, JobTracker, HBase Master, 鍜孼ooKeeper鍏ㄩ兘鍦ㄥ悓涓涓狽ODE涓娿?


    灝忓瀷闆嗙兢妯″紡錛?0-20鍙版湇鍔″櫒錛?/span>

    HBase Master鏀懼湪鍗曠嫭涓鍙版満鍣ㄤ笂, 浠ヤ究浜庝嬌鐢ㄨ緝浣庨厤緗殑鏈哄櫒銆俍ooKeeper涔熸斁鍦ㄥ崟鐙竴鍙版満鍣ㄤ笂錛孨ameNode鍜孞obTracker鏀懼湪鍚屼竴鍙版満鍣ㄤ笂銆?/div>

    涓瀷闆嗙兢妯″紡錛?0-50鍙版湇鍔″櫒錛?/span>

    鐢變簬鏃犻』鍐嶈妭鐪佽垂鐢紝鍙互灝咹Base Master鍜孼ooKeeper鏀懼湪鍚屼竴鍙版満鍣ㄤ笂, ZooKeeper鍜孒Base Master瑕佷笁涓疄渚嬨侼ameNode鍜孞obTracker鏀懼湪鍚屼竴鍙版満鍣ㄤ笂銆?/div>

    澶у瀷闆嗙兢妯″紡錛?gt;50鍙版湇鍔″櫒錛?/span>

    鍜屼腑鍨嬮泦緹ゆā寮忕浉浼鹼紝浣哯ooKeeper鍜孒Base Master瑕佷簲涓疄渚嬨侼ameNode鍜孲econd NameNode瑕佹湁瓚沖澶х殑鍐呭瓨銆?/div>

    HADOOP MASTER鑺傜偣

    NameNode鍜孲econd NameNode鏈嶅姟鍣ㄩ厤緗姹傦細(xì)錛堝皬鍨嬶級8CORE CPU錛?6G鍐呭瓨錛?G緗戝崱鍜孲ATA 紜洏錛屼腑寮勫啀澧炲姞澶?6G鍐呭瓨錛屽ぇ鍨嬪垯鍐嶅鍔犲32G鍐呭瓨銆?/div>

    HBASE MASTER鑺傜偣

    鏈嶅姟鍣ㄩ厤緗姹傦細(xì)4CORE CPU錛?-16G鍐呭瓨錛?G緗戝崱鍜?涓猄ATA 紜洏錛屼竴涓敤浜庢搷浣滅郴緇燂紝鍙︿竴涓敤浜嶩BASE MASTER LOGS銆?/div>

    HADOOP DATA NODES鍜孒BASE REGION SERVER鑺傜偣

    DATA NODE鍜孯EGION SERVER搴斿湪鍚屼竴鍙版湇鍔″櫒涓婏紝涓斾笉搴旇鍜孴ASK TRACKER鍦ㄤ竴璧楓傛湇鍔″櫒閰嶇疆瑕佹眰錛?-12CORE CPU錛?4-32G鍐呭瓨錛?G緗戝崱鍜?2*1TB SATA 紜洏錛屼竴涓敤浜庢搷浣滅郴緇燂紝鍙︿竴涓敤浜嶩BASE MASTER LOGS銆?/div>

    ZOOPKEEPERS鑺傜偣

    鏈嶅姟鍣ㄩ厤緗拰HBASE MASTER鐩鎬技錛屼篃鍙互涓嶩BASE MASTER鏀懼湪涓璧鳳紝浣嗗氨瑕佸澧炲姞涓涓‖鐩樺崟鐙粰ZOOPKEEPER浣跨敤銆?/div>

    瀹夎鍚勮妭鐐?/span>

    JVM閰嶇疆錛?/div> -Xmx8g—璁劇疆HEAP鐨勬渶澶у煎埌8G錛屼笉寤鴻璁懼埌15 GB.
    -Xms8g—璁劇疆HEAP鐨勬渶灝忓煎埌8GS.
    -Xmn128m—璁劇疆鏂扮敓浠g殑鍊煎埌128 MB錛岄粯璁ゅ煎お灝忋?br /> -XX:+UseParNewGC—璁劇疆瀵逛簬鏂扮敓浠g殑鍨冨溇鍥炴敹鍣ㄧ被鍨嬶紝榪欑綾誨瀷鏄細(xì)鍋滄JAVA榪涚▼錛岀劧鍚庡啀榪涜鍥炴敹鐨勶紝浣嗙敱浜庢柊鐢熶唬浣撶Н姣旇緝?yōu)畯锛屾寔绠嬫棄櫁撮氬父鍙湁鍑犳縐掞紝鍥犳鍙互鎺ュ彈銆?br /> -XX:+UseConcMarkSweepGC—璁劇疆鑰佺敓浠g殑鍨冨溇鍥炴敹綾誨瀷錛屽鏋滅敤鏂扮敓浠g殑閭d釜浼?xì)涓嶅悎閫傦紝鍗充細(xì)瀵艱嚧JAVA榪涚▼鍋滄鐨勬椂闂村お闀匡紝鐢ㄨ繖縐嶄笉浼?xì)鍋滄JAVA榪涚▼錛岃屾槸鍦↗AVA榪涚▼榪愯鐨勫悓鏃訛紝騫惰鐨勮繘琛屽洖鏀躲?br /> -XX:CMSInitiatingOccupancyFraction—璁劇疆CMS鍥炴敹鍣ㄨ繍琛岀殑棰戠巼銆?br />






    paulwong 2013-02-04 12:10 鍙戣〃璇勮
    ]]>HBASE璇諱功絎旇http://m.tkk7.com/paulwong/archive/2013/02/01/395020.htmlpaulwongpaulwongFri, 01 Feb 2013 05:55:00 GMThttp://m.tkk7.com/paulwong/archive/2013/02/01/395020.htmlhttp://m.tkk7.com/paulwong/comments/395020.htmlhttp://m.tkk7.com/paulwong/archive/2013/02/01/395020.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/395020.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/395020.htmlGET銆丳UT鏄疧NLINE鐨勬搷浣滐紝MAPREDUCE鏄疧FFLINE鐨勬搷浣?/div>


    HDFS鍐欐祦紼?/span>
    瀹㈡埛绔敹鍒拌淇濆瓨鏂囦歡鐨勮姹傚悗錛屽皢鏂囦歡浠?4M涓哄崟浣嶆媶鎴愯嫢騫蹭喚BLOCK錛屽艦鎴愪竴涓垪琛紝鍗崇敱鍑犱釜BLOCK緇勬垚錛屽皢榪欎簺淇℃伅鍛婅瘔NAME NODE錛屾垜瑕佷繚瀛樿繖涓紝NAME NODE綆楀嚭涓涓垪琛紝鍝BLOCK搴旇鍐欏埌鍝釜DATA NODE錛屽鎴風(fēng)灝嗙涓涓狟LOCK浼犲埌絎竴涓妭鐐笵ATA NODE A錛岄氱煡鍏朵繚瀛橈紝鍚屾椂璁╁畠閫氱煡DATA NODE D鍜孌ATA NODE B涔熶繚瀛樹竴浠斤紝DATA NODE D鏀跺埌淇℃伅鍚庤繘琛屼簡淇濆瓨錛屽悓鏃墮氱煡DATA NODE B淇濆瓨涓浠斤紝DATA NODE B淇濆瓨瀹屾垚鍚庡垯閫氱煡瀹㈡埛绔繚瀛樺畬鎴愶紝瀹㈡埛绔啀鍘誨悜NAME NODE涓彇涓嬩竴涓狟LOCK瑕佷繚瀛樼殑浣嶇疆錛岄噸澶嶄互涓婄殑鍔ㄤ綔錛岀洿鍒版墍鏈夌殑BLOCK閮戒繚瀛樺畬鎴愩?/div>

    HDFS璇繪祦紼?/span>
    瀹㈡埛绔悜NAME NODE璇鋒眰璇諱竴涓枃浠訛紝NAME NODE榪斿洖榪欎釜鏂囦歡鎵鏋勬垚鐨勬墍鏈塀LOCK鐨凞ATA NODE IP鍙夿LOCK ID錛屽鎴風(fēng)騫惰鐨勫悜鍚凞ATA NODE鍙戝嚭璇鋒眰錛岃鍙栨煇涓狟LOCK ID鐨凚LOCK錛孌ATA NODE鍙戝洖鎵瑕佺殑BLOCK緇欏鎴風(fēng)錛屽鎴風(fēng)鏀墮泦鍒版墍鏈夌殑BLOCK鍚庯紝鏁村悎鎴愪竴涓畬鏁寸殑鏂囦歡鍚庯紝姝ゆ祦紼嬬粨鏉熴?br />

    MAPREDUCE嫻佺▼
    杈撳叆鏁版嵁 -- 闈炲綰跨▼浜嗭紝鑰屾槸澶氳繘紼嬬殑鎸戦夋暟鎹紝鍗沖皢杈撳叆鏁版嵁鍒嗘垚澶氬潡錛屾瘡涓繘紼嬪鐞嗕竴鍧?-- 鍒嗙粍 -- 澶氳繘紼嬬殑姹囬泦鏁版嵁 -- 杈撳嚭

    HBASE琛ㄧ粨鏋?/span>
    HBASE涓皢涓涓ぇ琛ㄦ暟鎹垎鎴愪笉鍚岀殑灝忚〃錛屾瘡涓皬琛ㄥ彨REGION錛屽瓨鏀綬EGION鐨勬湇鍔″櫒鍙玆EGIONSERVER錛屼竴涓猂EGIONSERVER鍙互瀛樻斁澶氫釜REGION銆傞氬父REGIONSERVER鍜孌ATA NODE鏄湪鍚屼竴鏈嶅姟鍣紝浠ュ噺灝慛ETWORK IO銆?/div>
    -ROOT-琛ㄥ瓨鏀句簬MASTER SERVER涓婏紝璁板綍浜嗕竴鍏辨湁澶氬皯涓猂EGIONSERVER錛屾瘡涓猂EGION SERVER涓婇兘鏈変竴涓?META.琛紝涓婇潰璁板綍浜嗘湰REGION SERVER鏀炬湁鍝嚑涓〃鐨勫摢鍑犱釜REGION銆傚鏋滆鐭ラ亾鏌愪釜琛ㄥ叡鏈夊嚑涓猂EGION錛屽氨寰楀幓鎵鏈夌殑REGION SERVER涓婃煡.META.琛紝榪涜姹囨繪墠鑳藉緱鐭ャ?/div>
    瀹㈡埛绔鏋滆鏌OW009鐨勪俊鎭紝鍏堝幓鍜ㄨZOOPKEEPER錛?ROOT-琛ㄥ湪鍝噷錛岀劧鍚庨棶-ROOT-琛紝鍝釜.META.鐭ラ亾榪欎釜淇℃伅錛岀劧鍚庡幓闂?META.琛紝鍝釜REGION鏈夎繖涓俊鎭紝鐒跺悗鍘婚偅涓猂EGION闂甊OW009鐨勪俊鎭紝鐒跺悗閭d釜REGION榪斿洖姝や俊鎭?br />


    HBASE MAPREDUCE
    涓涓猂EGION涓涓狹AP浠誨姟錛岃屼換鍔¢噷鐨刴ap鏂規(guī)硶鎵ц澶氬皯嬈★紝鍒欑敱鏌ヨ鍑烘潵鐨勮褰曟湁澶氬皯鏉★紝鍒欐墽琛屽灝戞銆?/div>
    REDUCE浠誨姟璐熻矗鍚慠EGION鍐欐暟鎹紝浣嗗啓鍒板摢涓猂EGION鍒欑敱閭d釜KEY褰掑睘鍝釜REGION綆★紝鍒欏啓鍒板摢涓猂EGION錛屾湁鍙兘REDUCE浠誨姟浼?xì)鍜屾墍鏈夌殑REGION SERVER浜や簰銆?br />


    鍦℉BASE鐨凪APREDUCE JOB涓嬌鐢↗OIN
    REDUCE-SIDE JOIN
    鍒╃敤鐜版湁鐨凷HUTTLE鍒嗙粍鏈哄埗錛屽湪REDUCE闃舵鍋欽OIN錛屼絾鐢變簬MAP闃舵鏁版嵁澶э紝鍙兘浼?xì)鏈夋ц兘闂銆?/div>
    MAP-SIDE JOIN
    灝嗘暟鎹緝?yōu)畱鐨勪竴琛ㄨ鍒頒竴鍏叡鏂囦歡涓紝鐒跺悗鍦∕PA鏂規(guī)硶涓驚鐜彟涓琛ㄧ殑鏁版嵁錛屽啀灝嗚鐨勬暟鎹粠鍏叡鏂囦歡涓鍙栥傝繖鏍峰彲浠ュ噺灝慡HUTTLE鍜孲ORT鐨勬椂闂達(dá)紝鍚屾椂涔熶笉闇瑕丷EDUCE浠誨姟銆?/div>


    paulwong 2013-02-01 13:55 鍙戣〃璇勮
    ]]>Hadoop鐨勫嚑縐岼oin鏂規(guī)硶http://m.tkk7.com/paulwong/archive/2013/01/31/395000.htmlpaulwongpaulwongThu, 31 Jan 2013 10:24:00 GMThttp://m.tkk7.com/paulwong/archive/2013/01/31/395000.htmlhttp://m.tkk7.com/paulwong/comments/395000.htmlhttp://m.tkk7.com/paulwong/archive/2013/01/31/395000.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/395000.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/395000.html2) 鍘嬬緝瀛楁,瀵規(guī)暟鎹澶勭悊,榪囨護(hù)涓嶉渶瑕佺殑瀛楁.
    3) 鏈鍚庝竴姝ュ氨鏄湪Mapper闃舵榪囨護(hù),榪欎釜灝辨槸Bloom Filter鐨勭敤姝︿箣鍦頒簡.涔熷氨鏄渶瑕佽緇嗚鏄庣殑鍦版柟.


    涓嬮潰灝辨嬁涓涓垜浠ぇ瀹墮兘鐔熸?zhèn)夌殑鍦烘櫙鏉ヨ鏄帢q欎釜闂: 鎵懼嚭涓婁釜鏈堝姩鎰熷湴甯︾殑瀹㈡埛璧勮垂鐨勪嬌鐢ㄦ儏鍐?鍖呮嫭鎺ュ叆鍜屾嫧鍑?

    (榪欎釜鍙槸鎴戣噯鎯沖嚭鏉ョ殑渚嬪瓙,鏍規(guī)嵁瀹為檯鐨凞B鏁版嵁瀛樺偍緇撴瀯,鍦ㄨ繖涓満鏅笅鑲畾鏈夋洿濂界殑瑙e喅鏂規(guī),澶у涓嶈澶緝鐪熷摝)

    榪欎釜鏃跺欑殑涓や釜涓暟鎹泦閮芥槸姣旇緝澶х殑,榪欎袱涓暟鎹泦鍒嗗埆鏄?涓婁釜鏈堢殑閫氳瘽璁板綍,鍔ㄦ劅鍦板甫鐨勬墜鏈哄彿鐮佸垪琛?


    姣旇緝鐩存帴鐨勫鐞嗘柟娉曟湁2縐?

    1)鍦?Reduce 闃舵,閫氳繃鍔ㄦ劅鍦板甫鍙風(fēng)爜鏉ヨ繃婊?

    浼樼偣:榪欐牱闇瑕佸鐞嗙殑鏁版嵁鐩稿姣旇緝?yōu)?榪欎釜涔熸槸姣旇緝甯哥敤鐨勬柟娉?

    緙虹偣:寰堝鏁版嵁鍦∕apper闃舵鑺變簡鑰侀薊瀛愬姏姘旀眹鎬諱簡,榪橀氳繃緗戠粶Shuffle鍒癛educe鑺傜偣,緇撴灉鍒拌繖涓樁孌電粰榪囨護(hù)浜?



    2)鍦?Mapper 闃舵鏃?閫氳繃鍔ㄦ劅鍦板甫鍙風(fēng)爜鏉ヨ繃婊ゆ暟鎹?

    浼樼偣:榪欐牱鍙互榪囨護(hù)寰堝涓嶆槸鍔ㄦ劅鍦板甫鐨勬暟鎹?姣斿紲炲窞琛?鍏ㄧ悆閫?榪欎簺榪囨護(hù)鐨勬暟鎹氨鍙互鑺傜渷寰堝緗戠粶甯﹀浜?

    緙虹偣:灝辨槸鍔ㄦ劅鍦板甫鐨勫彿鐮佷笉鏄皬鏁扮洰,濡傛灉榪欐牱澶勭悊灝遍渶瑕佹妸榪欎釜澶у潡澶村鍒跺埌鎵鏈夌殑Mapper鑺傜偣,鐢氳嚦鏄疍istributed Cache.(Bloom Filter灝辨槸鐢ㄦ潵瑙e喅榪欎釜闂鐨?


    Bloom Filter灝辨槸鐢ㄦ潵瑙e喅涓婇潰鏂規(guī)硶2鐨勭己鐐圭殑.

    鏂規(guī)硶2鐨勭己鐐瑰氨鏄ぇ閲忕殑鏁版嵁闇瑕佸湪澶氫釜鑺傜偣澶嶅埗.Bloom Filter閫氳繃澶氫釜Hash綆楁硶, 鎶婅繖涓彿鐮佸垪琛ㄥ帇緙╁埌浜嗕竴涓狟itmap閲岄潰. 閫氳繃鍏佽涓瀹氱殑閿欒鐜囨潵鎹㈢┖闂? 榪欎釜鍜屾垜浠鉤鏃剁粡甯告彁鍒扮殑鏃墮棿鍜岀┖闂寸殑浜掓崲綾諱技.璇︾粏鎯呭喌鍙互鍙傝?

    http://blog.csdn.net/jiaomeng/article/details/1495500

    浣嗘槸榪欎釜綆楁硶涔熸槸鏈夌己闄風(fēng)殑,灝辨槸浼?xì)鎶婂緢澶毤湠宸炶?鍏ㄧ悆閫氫箣綾葷殑鍙風(fēng)爜褰撴垚鍔ㄦ劅鍦板甫.浣嗗湪榪欎釜鍦烘櫙涓?榪欐牴鏈笉鏄棶棰?鍥犱負(fù)榪欎釜綆楁硶鍙槸榪囨護(hù)涓浜涘彿鐮?婕忕綉涔嬮奔浼?xì)鍦≧educe闃舵榪涜綺劇‘鍖歸厤鏃墮【铏戞帀.

    榪欎釜鏂規(guī)硶鏀硅繘涔嬪悗鍩烘湰涓婂畬鍏ㄥ洖閬夸簡鏂規(guī)硶2鐨勭己鐐?

    1) 娌℃湁澶ч噺鐨勫姩鎰熷湴甯﹀彿鐮佸彂閫佸埌鎵鏈夌殑Mapper鑺傜偣.
    2) 寰堝闈炲姩鎰熷湴甯﹀彿鐮佸湪Mapper闃舵灝辮繃婊や簡(铏界劧涓嶆槸100%),閬垮厤浜嗙綉緇滃甫瀹界殑寮閿鍙婂歡鏃?


    緇х畫闇瑕佸涔?fàn)鐨勫湴鏂?Bitmap鐨勫ぇ灝? Hash鍑芥暟鐨勫灝? 浠ュ強瀛樺偍鐨勬暟鎹殑澶氬皯. 榪?涓彉閲忓浣曞彇鍊兼墠鑳芥墠鑳藉湪瀛樺偍絀洪棿涓庨敊璇巼涔嬮棿鍙栧緱涓涓鉤琛?

    paulwong 2013-01-31 18:24 鍙戣〃璇勮
    ]]>
    閰嶇疆secondarynamenodehttp://m.tkk7.com/paulwong/archive/2013/01/31/394998.htmlpaulwongpaulwongThu, 31 Jan 2013 09:39:00 GMThttp://m.tkk7.com/paulwong/archive/2013/01/31/394998.htmlhttp://m.tkk7.com/paulwong/comments/394998.htmlhttp://m.tkk7.com/paulwong/archive/2013/01/31/394998.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/394998.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/394998.html

    SECOND NAME NODE浼?xì)浠TTP鐨勬柟寮忓悜NAME NODE瑕佽繖涓や釜鏂囦歡錛屽綋NAME NODE鏀跺埌璇鋒眰鏃訛紝灝變細(xì)闊︿竴涓柊鐨凟ditLog鏉ヨ褰曪紝榪欐椂SECOND NAME NODE灝變細(xì)灝嗗彇寰楃殑榪欎袱涓枃浠跺悎騫訛紝鎴愪竴涓柊鐨凢sImage錛屽啀鍙戠粰NAME NODE錛孨AME NODE鏀跺埌鍚庯紝灝變細(xì)浠ヨ繖涓負(fù)鍑嗭紝鏃х殑灝變細(xì)褰掓。涓嶇敤銆?br />

    SECOND NAME NODE榪樻湁涓涓敤閫斿氨鏄綋NAME NODE DOWN浜嗙殑鏃跺欙紝鍙互鏀筍ECOND NAME NODE鐨処P涓篘AME NODE鎵鐢ㄧ殑IP錛屽綋NAME NODE鐢ㄣ?br />
    secondary namenoded 閰嶇疆寰堝鏄撹蹇借錛屽鏋渏ps媯鏌ラ兘姝e父錛屽ぇ瀹墮氬父涓嶄細(xì)澶叧蹇冿紝闄ら潪namenode鍙戠敓闂鐨勬椂鍊欙紝鎵嶄細(xì)鎯寵搗榪樻湁涓猻econdary namenode錛屽畠鐨勯厤緗叡涓ゆ錛?br />
    1. 闆嗙兢閰嶇疆鏂囦歡conf/master涓坊鍔爏econdarynamenode鐨勬満鍣?/li>
    2. 淇敼/娣誨姞 hdfs-site.xml涓涓嬪睘鎬э細(xì)

    <property>
     <name>dfs.http.address</name>
     <value>{your_namenode_ip}:50070</value>
     <description>
     The address and the base port where the dfs namenode web ui will listen on.
     If the port is 0 then the server will start on a free port.
     </description>
     </property>


    榪欎袱欏歸厤緗甇K鍚庯紝鍚姩闆嗙兢銆傝繘鍏econdary namenode 鏈哄櫒錛屾鏌s.checkpoint.dir錛坈ore-site.xml鏂囦歡錛岄粯璁や負(fù)${hadoop.tmp.dir}/dfs/namesecondary錛夌洰褰曞悓姝ョ姸鎬佹槸鍚﹀拰namenode涓鑷寸殑銆?br />
    濡傛灉涓嶉厤緗浜岄」鍒欙紝secondary namenode鍚屾鏂囦歡澶規(guī)案榪滀負(fù)絀猴紝榪欐椂鏌ョ湅secondary namenode鐨刲og鏄劇ず閿欒涓猴細(xì)


    2011-06-09 11:06:41,430 INFO org.apache.hadoop.hdfs.server.common.Storage: Recovering storage directory /tmp/hadoop-hadoop/dfs/namesecondary from failed checkpoint.
    2011-06-09 11:06:41,433 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint: 
    2011-06-09 11:06:41,434 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:211)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
    at sun.net.www.http.HttpClient.New(HttpClient.java:306)
    at sun.net.www.http.HttpClient.New(HttpClient.java:323)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
    at org.apache.hadoop.hdfs.server.namenode.TransferFsImage.getFileClient(TransferFsImage.java:151)
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.downloadCheckpointFiles(SecondaryNameNode.java:256)
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:313)
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:225)
    at java.lang.Thread.run(Thread.java:662)


    鍙兘鐢ㄥ埌鐨刢ore-site.xml鏂囦歡鐩稿叧灞炴?/span>錛?br />
    <property>
    <name>fs.checkpoint.period</name>
    <value>300</value>
    <description>The number of seconds between two periodic checkpoints.
    </description>
    </property>

    <property>
     <name>fs.checkpoint.dir</name>
     <value>${hadoop.tmp.dir}/dfs/namesecondary</value>
     <description>Determines where on the local filesystem the DFS secondary
     name node should store the temporary images to merge.
     If this is a comma-delimited list of directories then the image is
     replicated in all of the directories for redundancy.
     </description>
    </property>


    paulwong 2013-01-31 17:39 鍙戣〃璇勮
    ]]>
    澶ц妯℃暟鎹煡閲嶇殑澶氱鏂規(guī)硶錛屽強Bloom Filter鐨勫簲鐢?/title><link>http://m.tkk7.com/paulwong/archive/2013/01/31/394980.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 31 Jan 2013 05:55:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2013/01/31/394980.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/394980.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2013/01/31/394980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/394980.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/394980.html</trackback:ping><description><![CDATA[鎸烘湁鎰忔濈殑棰樼洰銆?br /><br /><br /><strong>1. 緇欎綘A,B涓や釜鏂囦歡錛屽悇瀛樻斁50浜挎潯URL錛屾瘡鏉RL鍗犵敤64瀛楄妭錛屽唴瀛橀檺鍒舵槸4G錛岃浣犳壘鍑?A,B鏂囦歡鍏卞悓鐨刄RL銆?/strong> <br />瑙f硶涓錛欻ash鎴愬唴瀛樺ぇ灝忕殑灝忓潡鏂囦歡錛岀劧鍚庡垎鍧楀唴瀛樺唴鏌ヤ氦闆嗐?br />瑙f硶浜岋細(xì)Bloom Filter錛堝箍娉涘簲鐢ㄤ簬URL榪囨護(hù)銆佹煡閲嶃傚弬鑰僪ttp://en.wikipedia.org/wiki/Bloom_filter銆乭ttp://blog.csdn.net/jiaomeng/archive/2007/01/28/1496329.aspx錛?br /><br /><br /><strong>2. 鏈?0涓枃浠訛紝姣忎釜鏂囦歡1G錛?姣忎釜鏂囦歡鐨勬瘡涓琛岄兘瀛樻斁鐨勬槸鐢ㄦ埛鐨剄uery錛屾瘡涓枃浠剁殑query閮藉彲鑳介噸澶嶃傝浣犳寜鐓uery鐨勯搴︽帓搴忋?/strong><br />瑙f硶涓錛氭牴鎹暟鎹█鐤忕▼搴︾畻娉曚細(xì)鏈変笉鍚岋紝閫氱敤鏂規(guī)硶鏄敤Hash鎶婃枃浠墮噸鎺掞紝璁╃浉鍚宷uery涓瀹氫細(xì)鍦ㄥ悓涓涓枃浠訛紝鍚屾椂榪涜璁℃暟錛岀劧鍚庡綊騫訛紝鐢ㄦ渶灝忓爢鏉ョ粺璁¢搴︽渶澶х殑銆?br />瑙f硶浜岋細(xì)綾諱技1錛屼絾鏄敤鐨勬槸涓庣畝鍗旴loom Filter紼嶆湁涓嶅悓鐨凜BF錛圕ounting Bloom Filter錛夋垨鑰呮洿榪涗竴姝ョ殑SBF錛圫pectral Bloom Filter錛屽弬鑰僪ttp://blog.csdn.net/jiaomeng/archive/2007/03/19/1534238.aspx錛?br />瑙f硶涓夛細(xì)MapReduce錛屽嚑鍒嗛挓鍙互鍦╤adoop闆嗙兢涓婃悶瀹氥傚弬鑰僪ttp://en.wikipedia.org/wiki/MapReduce<br /><br /><br /><strong>3. 鏈変竴涓?G澶у皬鐨勪竴涓枃浠訛紝閲岄潰姣忎竴琛屾槸涓涓瘝錛岃瘝鐨勫ぇ灝忎笉瓚呰繃16涓瓧鑺傦紝鍐呭瓨闄愬埗澶у皬鏄?M銆傝繑鍥為鏁版渶楂樼殑100涓瘝銆?/strong><br />瑙f硶涓錛氳窡2綾諱技錛屽彧鏄笉闇瑕佹帓搴忥紝鍚勪釜鏂囦歡鍒嗗埆緇熻鍓?00錛岀劧鍚庝竴璧鋒壘鍓?00銆?img src ="http://m.tkk7.com/paulwong/aggbug/394980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2013-01-31 13:55 <a href="http://m.tkk7.com/paulwong/archive/2013/01/31/394980.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Windows鐜涓嬬敤ECLIPSE鎻愪氦MAPREDUCE JOB鑷寵繙紼婬BASE涓繍琛?/title><link>http://m.tkk7.com/paulwong/archive/2013/01/29/394851.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 28 Jan 2013 16:19:00 GMT</pubDate><guid>http://m.tkk7.com/paulwong/archive/2013/01/29/394851.html</guid><wfw:comment>http://m.tkk7.com/paulwong/comments/394851.html</wfw:comment><comments>http://m.tkk7.com/paulwong/archive/2013/01/29/394851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/paulwong/comments/commentRss/394851.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/paulwong/services/trackbacks/394851.html</trackback:ping><description><![CDATA[<ol> <li>鍋囪榪滅▼HADOOP涓繪満鍚嶄負(fù)ubuntu錛屽垯搴斿湪hosts鏂囦歡涓姞涓?92.168.58.130       ubuntu<br /> <br /><br /> </li> <li>鏂板緩MAVEN欏圭洰錛屽姞涓婄浉搴旂殑閰嶇疆<br /> pom.xml<br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; "><</span><span style="color: #800000; ">project </span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://maven.apache.org/POM/4.0.0"</span><span style="color: #FF0000; "> xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; "><br />   xsi:schemaLocation</span><span style="color: #0000FF; ">="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"</span><span style="color: #0000FF; ">></span><br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">modelVersion</span><span style="color: #0000FF; ">></span>4.0.0<span style="color: #0000FF; "></</span><span style="color: #800000; ">modelVersion</span><span style="color: #0000FF; ">></span><br /> <br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>com.cloudputing<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>bigdata<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>1.0<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">packaging</span><span style="color: #0000FF; ">></span>jar<span style="color: #0000FF; "></</span><span style="color: #800000; ">packaging</span><span style="color: #0000FF; ">></span><br /> <br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span>bigdata<span style="color: #0000FF; "></</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span><br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">url</span><span style="color: #0000FF; ">></span>http://maven.apache.org<span style="color: #0000FF; "></</span><span style="color: #800000; ">url</span><span style="color: #0000FF; ">></span><br /> <br />   <span style="color: #0000FF; "><</span><span style="color: #800000; ">properties</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "><</span><span style="color: #800000; ">project</span><span style="color: #FF0000; ">.build.sourceEncoding</span><span style="color: #0000FF; ">></span>UTF-8<span style="color: #0000FF; "></</span><span style="color: #800000; ">project.build.sourceEncoding</span><span style="color: #0000FF; ">></span><br />   <span style="color: #0000FF; "></</span><span style="color: #800000; ">properties</span><span style="color: #0000FF; ">></span><br /> <br />     <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>junit<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>junit<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>3.8.1<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">scope</span><span style="color: #0000FF; ">></span>test<span style="color: #0000FF; "></</span><span style="color: #800000; ">scope</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>org.springframework.data<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>spring-data-hadoop<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>0.9.0.RELEASE<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>org.apache.hbase<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>hbase<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>0.94.1<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />         <br />         <span style="color: #008000; "><!--</span><span style="color: #008000; "> <dependency><br />             <groupId>org.apache.hbase</groupId><br />             <artifactId>hbase</artifactId><br />             <version>0.90.2</version><br />         </dependency> </span><span style="color: #008000; ">--></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>org.apache.hadoop<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>hadoop-core<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>1.0.3<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>org.springframework<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>spring-test<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br />             <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>3.0.5.RELEASE<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">></span><br /> <span style="color: #0000FF; "></</span><span style="color: #800000; ">project</span><span style="color: #0000FF; ">></span></div> </li> <br /><br /> <li> <div>hbase-site.xml<br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0"</span><span style="color: #0000FF; ">?></span><br /> <span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml-stylesheet type="text/xsl" href="configuration.xsl"</span><span style="color: #0000FF; ">?></span><br /> <span style="color: #008000; "><!--</span><span style="color: #008000; "><br /> /**<br />  * Copyright 2010 The Apache Software Foundation<br />  *<br />  * Licensed to the Apache Software Foundation (ASF) under one<br />  * or more contributor license agreements.  See the NOTICE file<br />  * distributed with this work for additional information<br />  * regarding copyright ownership.  The ASF licenses this file<br />  * to you under the Apache License, Version 2.0 (the<br />  * "License"); you may not use this file except in compliance<br />  * with the License.  You may obtain a copy of the License at<br />  *<br />  *     http://www.apache.org/licenses/LICENSE-2.0<br />  *<br />  * Unless required by applicable law or agreed to in writing, software<br />  * distributed under the License is distributed on an "AS IS" BASIS,<br />  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br />  * See the License for the specific language governing permissions and<br />  * limitations under the License.<br />  */<br /> </span><span style="color: #008000; ">--></span><br /> <span style="color: #0000FF; "><</span><span style="color: #800000; ">configuration</span><span style="color: #0000FF; ">></span><br /> <br />     <span style="color: #0000FF; "><</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span>hbase.rootdir<span style="color: #0000FF; "></</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span>hdfs://ubuntu:9000/hbase<span style="color: #0000FF; "></</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "></</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br /> <br />     <span style="color: #008000; "><!--</span><span style="color: #008000; "> 鍦ㄦ瀯閫燡OB鏃訛紝浼?xì)鏂板晦Z竴鏂囦歡澶規(guī)潵鍑嗗鎵闇鏂囦歡銆?br />            濡傛灉榪欎竴孌墊病鍐欙紝鍒欓粯璁ゆ湰鍦扮幆澧冧負(fù)LINUX錛屽皢鐢↙INUX鍛戒護(hù)鍘誨疄鏂斤紝鍦╓INDOWS鐜涓嬩細(xì)鍑洪敊 </span><span style="color: #008000; ">--></span><br />     <span style="color: #0000FF; "><</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span>mapred.job.tracker<span style="color: #0000FF; "></</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span>ubuntu:9001<span style="color: #0000FF; "></</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "></</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br />     <br />     <span style="color: #0000FF; "><</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span>hbase.cluster.distributed<span style="color: #0000FF; "></</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span>true<span style="color: #0000FF; "></</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "></</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br />     <br />     <span style="color: #008000; "><!--</span><span style="color: #008000; "> 姝ゅ浼?xì)鍚慫OOKEEPER鍜ㄨJOB TRACKER鐨勫彲鐢↖P </span><span style="color: #008000; ">--></span><br />     <span style="color: #0000FF; "><</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span>hbase.zookeeper.quorum<span style="color: #0000FF; "></</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span>ubuntu<span style="color: #0000FF; "></</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "></</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "><</span><span style="color: #800000; ">property </span><span style="color: #FF0000; ">skipInDoc</span><span style="color: #0000FF; ">="true"</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span>hbase.defaults.for.version<span style="color: #0000FF; "></</span><span style="color: #800000; ">name</span><span style="color: #0000FF; ">></span><br />         <span style="color: #0000FF; "><</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span>0.94.1<span style="color: #0000FF; "></</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">></span><br />     <span style="color: #0000FF; "></</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">></span><br /> <br /> <span style="color: #0000FF; "></</span><span style="color: #800000; ">configuration</span><span style="color: #0000FF; ">></span></div> </div> </li> <br /><br /> <li>嫻嬭瘯鏂囦歡錛歁apreduceTest.java<br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">package</span> com.cloudputing.mapreduce;<br /> <br /> <span style="color: #0000FF; ">import</span> java.io.IOException;<br /> <br /> <span style="color: #0000FF; ">import</span> junit.framework.TestCase;<br /> <br /> <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> MapreduceTest <span style="color: #0000FF; ">extends</span> TestCase{<br />     <br />     <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> testReadJob() <span style="color: #0000FF; ">throws</span> IOException, InterruptedException, ClassNotFoundException<br />     {<br />         MapreduceRead.read();<br />     }<br /> <br /> }</div> </li> <br /><br /> <li> <div>MapreduceRead.java</div> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">package</span> com.cloudputing.mapreduce;<br /> <br /> <span style="color: #0000FF; ">import</span> java.io.IOException;<br /> <br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.conf.Configuration;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.fs.FileSystem;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.fs.Path;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.hbase.HBaseConfiguration;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.hbase.client.Result;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.hbase.client.Scan;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.hbase.io.ImmutableBytesWritable;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.hbase.mapreduce.TableMapper;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.hbase.util.Bytes;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.io.Text;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.mapreduce.Job;<br /> <span style="color: #0000FF; ">import</span> org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;<br /> <br /> <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> MapreduceRead {<br />     <br />     <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> read() <span style="color: #0000FF; ">throws</span> IOException, InterruptedException, ClassNotFoundException<br />     {<br />         <span style="color: #008000; ">//</span><span style="color: #008000; "> Add these statements. XXX<br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        File jarFile = EJob.createTempJar("target/classes");<br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        EJob.addClasspath("D:/PAUL/WORK/WORK-SPACES/TEST1/cloudputing/src/main/resources");<br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        ClassLoader classLoader = EJob.getClassLoader();<br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        Thread.currentThread().setContextClassLoader(classLoader);</span><span style="color: #008000; "><br /> </span><br />         Configuration config = HBaseConfiguration.create();<br />         addTmpJar("file:/D:/PAUL/WORK/WORK-SPACES/TEST1/cloudputing/target/bigdata-1.0.jar",config);<br />         <br />         Job job = <span style="color: #0000FF; ">new</span> Job(config, "ExampleRead");<br />         <span style="color: #008000; ">//</span><span style="color: #008000; "> And add this statement. XXX<br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        ((JobConf) job.getConfiguration()).setJar(jarFile.toString());<br /> <br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        TableMapReduceUtil.addDependencyJars(job);<br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        TableMapReduceUtil.addDependencyJars(job.getConfiguration(),<br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">                MapreduceRead.class,MyMapper.class);</span><span style="color: #008000; "><br /> </span>        <br />         job.setJarByClass(MapreduceRead.<span style="color: #0000FF; ">class</span>);     <span style="color: #008000; ">//</span><span style="color: #008000; "> class that contains mapper</span><span style="color: #008000; "><br /> </span>        <br />         Scan scan = <span style="color: #0000FF; ">new</span> Scan();<br />         scan.setCaching(500);        <span style="color: #008000; ">//</span><span style="color: #008000; "> 1 is the default in Scan, which will be bad for MapReduce jobs</span><span style="color: #008000; "><br /> </span>        scan.setCacheBlocks(<span style="color: #0000FF; ">false</span>);  <span style="color: #008000; ">//</span><span style="color: #008000; "> don't set to true for MR jobs<br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> set other scan attrs</span><span style="color: #008000; "><br /> </span>        <br />         TableMapReduceUtil.initTableMapperJob(<br />                 "wiki",        <span style="color: #008000; ">//</span><span style="color: #008000; "> input HBase table name</span><span style="color: #008000; "><br /> </span>                scan,             <span style="color: #008000; ">//</span><span style="color: #008000; "> Scan instance to control CF and attribute selection</span><span style="color: #008000; "><br /> </span>                MapreduceRead.MyMapper.<span style="color: #0000FF; ">class</span>,   <span style="color: #008000; ">//</span><span style="color: #008000; "> mapper</span><span style="color: #008000; "><br /> </span>                <span style="color: #0000FF; ">null</span>,             <span style="color: #008000; ">//</span><span style="color: #008000; "> mapper output key </span><span style="color: #008000; "><br /> </span>                <span style="color: #0000FF; ">null</span>,             <span style="color: #008000; ">//</span><span style="color: #008000; "> mapper output value</span><span style="color: #008000; "><br /> </span>                job);<br />         job.setOutputFormatClass(NullOutputFormat.<span style="color: #0000FF; ">class</span>);   <span style="color: #008000; ">//</span><span style="color: #008000; "> because we aren't emitting anything from mapper<br />         <br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">        DistributedCache.addFileToClassPath(new Path("hdfs:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">node.tracker1:9000/user/root/lib/stat-analysis-mapred-1.0-SNAPSHOT.jar"),job.getConfiguration());</span><span style="color: #008000; "><br /> </span>        <br />         <span style="color: #0000FF; ">boolean</span> b = job.waitForCompletion(<span style="color: #0000FF; ">true</span>);<br />         <span style="color: #0000FF; ">if</span> (!b) {<br />             <span style="color: #0000FF; ">throw</span> <span style="color: #0000FF; ">new</span> IOException("error with job!");<br />         }<br />         <br />     }<br />     <br />     <span style="color: #008000; ">/**</span><span style="color: #008000; "><br />      * 涓篗apreduce娣誨姞絎笁鏂筳ar鍖?br />      * <br />      * </span><span style="color: #808080; ">@param</span><span style="color: #008000; "> jarPath<br />      *            涓句緥錛欴:/Java/new_java_workspace/scm/lib/guava-r08.jar<br />      * </span><span style="color: #808080; ">@param</span><span style="color: #008000; "> conf<br />      * </span><span style="color: #808080; ">@throws</span><span style="color: #008000; "> IOException<br />      </span><span style="color: #008000; ">*/</span><br />     <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> addTmpJar(String jarPath, Configuration conf) <span style="color: #0000FF; ">throws</span> IOException {<br />         System.setProperty("path.separator", ":");<br />         FileSystem fs = FileSystem.getLocal(conf);<br />         String newJarPath = <span style="color: #0000FF; ">new</span> Path(jarPath).makeQualified(fs).toString();<br />         String tmpjars = conf.get("tmpjars");<br />         <span style="color: #0000FF; ">if</span> (tmpjars == <span style="color: #0000FF; ">null</span> || tmpjars.length() == 0) {<br />             conf.set("tmpjars", newJarPath);<br />         } <span style="color: #0000FF; ">else</span> {<br />             conf.set("tmpjars", tmpjars + ":" + newJarPath);<br />         }<br />     }<br />     <br />     <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">class</span> MyMapper <span style="color: #0000FF; ">extends</span> TableMapper<Text, Text> {<br /> <br />         <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> map(ImmutableBytesWritable row, Result value,<br />                 Context context) <span style="color: #0000FF; ">throws</span> InterruptedException, IOException {<br />             String val1 = getValue(value.getValue(Bytes.toBytes("text"), Bytes.toBytes("qual1")));<br />             String val2 = getValue(value.getValue(Bytes.toBytes("text"), Bytes.toBytes("qual2")));<br />             System.out.println(val1 + " -- " + val2);<br />         }<br />         <br />         <span style="color: #0000FF; ">private</span> String getValue(<span style="color: #0000FF; ">byte</span> [] value)<br />         {<br />             <span style="color: #0000FF; ">return</span> value == <span style="color: #0000FF; ">null</span>? "null" : <span style="color: #0000FF; ">new</span> String(value);<br />         }<br />     } <br /> <br /> }</div> </li> </ol><img src ="http://m.tkk7.com/paulwong/aggbug/394851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/paulwong/" target="_blank">paulwong</a> 2013-01-29 00:19 <a href="http://m.tkk7.com/paulwong/archive/2013/01/29/394851.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏌恏adoop瑙嗛鏁欑▼鍐呭http://m.tkk7.com/paulwong/archive/2013/01/05/393807.htmlpaulwongpaulwongSat, 05 Jan 2013 04:59:00 GMThttp://m.tkk7.com/paulwong/archive/2013/01/05/393807.html > Hadoop鑳屾櫙
    > HDFS璁捐鐩爣
    > HDFS涓嶉傚悎鐨勫満鏅?
    > HDFS鏋舵瀯璇﹀敖鍒嗘瀽
    > MapReduce鐨勫熀鏈師鐞?



    絎?绔犺妭
    > Hadoop鐨勭増鏈粙緇?
    > 瀹夎鍗曟満鐗圚adoop
    > 瀹夎Hadoop闆嗙兢



    絎?绔犺妭
    > HDFS鍛戒護(hù)琛屽熀鏈搷浣?
    > Namenode鐨勫伐浣滄満鍒?
    > HDFS鍩烘湰閰嶇疆綆$悊



    絎?绔犺妭
    > HDFS搴旂敤瀹炴垬錛氬浘鐗囨湇鍔″櫒(1) - 緋葷粺璁捐
    > 搴旂敤鐨勭幆澧冩惌寤?php + bootstrap + java
    > 浣跨敤Hadoop Java API瀹炵幇鍚慔DFS鍐欏叆鏂囦歡



    絎?绔犺妭
    > HDFS搴旂敤瀹炴垬錛氬浘鐗囨湇鍔″櫒(2)
    > 浣跨敤Hadoop Java API瀹炵幇璇誨彇HDFS涓殑鏂囦歡
    > 浣跨敤Hadoop Java API瀹炵幇鑾峰彇HDFS鐩綍鍒楄〃
    > 浣跨敤Hadoop Java API瀹炵幇鍒犻櫎HDFS涓殑鏂囦歡


    絎?绔犺妭
    > MapReduce鐨勫熀鏈師鐞?
    > MapReduce鐨勮繍琛岃繃紼?
    > 鎼緩MapReduce鐨刯ava寮鍙戠幆澧?
    > 浣跨敤MapReduce鐨刯ava鎺ュ彛瀹炵幇WordCount



    絎?绔犺妭
    > WordCount榪愮畻榪囩▼鍒嗘瀽
    > MapReduce鐨刢ombiner
    > 浣跨敤MapReduce瀹炵幇鏁版嵁鍘婚噸
    > 浣跨敤MapReduce瀹炵幇鏁版嵁鎺掑簭
    > 浣跨敤MapReduce瀹炵幇鏁版嵁騫沖潎鎴愮嘩璁$畻



    絎?绔犺妭
    > HBase璇︾粏浠嬬粛
    > HBase鐨勭郴緇熸灦鏋?
    > HBase鐨勮〃緇撴瀯錛孯owKey錛屽垪鏃忓拰鏃墮棿鎴?
    > HBase涓殑Master錛孯egion浠ュ強Region Server


    絎?绔犺妭
    > 浣跨敤HBase瀹炵幇寰崥搴旂敤錛?錛?
    > 鐢ㄦ埛娉ㄥ唽錛岀櫥闄嗗拰娉ㄩ攢鐨勮璁?
    > 鎼緩鐜 struts2 + jsp + bootstrap + jquery + HBase Java API
    > HBase鍜岀敤鎴風(fēng)浉鍏崇殑琛ㄧ粨鏋勮璁?
    > 鐢ㄦ埛娉ㄥ唽鐨勫疄鐜?



    絎?0绔犺妭
    > 浣跨敤HBase瀹炵幇寰崥搴旂敤錛?錛?
    > 浣跨敤session瀹炵幇鐢ㄦ埛鐧誨綍鍜屾敞閿
    > “鍏蟲敞"鍔熻兘鐨勮璁?
    > “鍏蟲敞"鍔熻兘鐨勮〃緇撴瀯璁捐
    > “鍏蟲敞"鍔熻兘鐨勫疄鐜?


    絎?1绔犺妭
    > 浣跨敤HBase瀹炵幇寰崥搴旂敤錛?錛?
    > “鍙戝井鍗?鍔熻兘鐨勮璁?
    > “鍙戝井鍗?鍔熻兘鐨勮〃緇撴瀯璁捐
    > “鍙戝井鍗?鍔熻兘鐨勫疄鐜?
    > 灞曠幇鏁翠釜搴旂敤鐨勮繍琛?



    絎?2绔犺妭
    > HBase涓嶮apReduce浠嬬粛
    > HBase濡備綍浣跨敤MapReduce



    絎?3绔犺妭

    > HBase搴旂敤瀹炴垬錛氳瘽鍗曟煡璇笌緇熻錛?錛?
    > 搴旂敤鐨勬暣浣撹璁?
    > 寮鍙戠幆澧冩惌寤?
    > 琛ㄧ粨鏋勮璁?



    絎?4绔犺妭
    > HBase搴旂敤瀹炴垬錛氳瘽鍗曟煡璇笌緇熻錛?錛?
    > 璇濆崟鍏ュ簱鍗曡璁′笌瀹炵幇
    > 璇濆崟鏌ヨ鐨勮璁′笌瀹炵幇



    絎?5绔犺妭
    > HBase搴旂敤瀹炴垬錛氳瘽鍗曟煡璇笌緇熻錛?錛?
    > 緇熻鍔熻兘璁捐
    > 緇熻鍔熻兘瀹炵幇



    絎?6绔犺妭
    > 娣卞叆MapReduce錛?錛?
    > split鐨勫疄鐜拌瑙?
    > 鑷畾涔夎緭鍏ョ殑瀹炵幇
    > 瀹炰緥璁茶В



    絎?7绔犺妭
    > 娣卞叆MapReduce錛?錛?
    > Reduce鐨刾artition
    > 瀹炰緥璁茶В



    絎?8绔犺妭
    > Hive鍏ラ棬
    > 瀹夎Hive
    > 浣跨敤Hive鍚慔DFS瀛樺叆緇撴瀯鍖栨暟鎹?
    > Hive鐨勫熀鏈嬌鐢?


    絎?9绔犺妭
    > 浣跨敤MySql浣滀負(fù)Hive鐨勫厓鏁版嵁搴?
    > Hive緇撳悎MapReduce



    絎?0绔犺妭
    > Hive搴旂敤瀹炴垬:鏁版嵁緇熻錛?錛?
    > 搴旂敤璁捐錛岃〃緇撴瀯璁捐



    絎?1绔犺妭
    > Hive搴旂敤瀹炴垬錛氭暟鎹粺璁★紙2錛?
    > 鏁版嵁褰曞叆涓庣粺璁$殑瀹炵幇 

    paulwong 2013-01-05 12:59 鍙戣〃璇勮
    ]]>
    HBase鐨勪竴浜涘簲鐢ㄨ璁iphttp://m.tkk7.com/paulwong/archive/2013/01/02/393701.htmlpaulwongpaulwongWed, 02 Jan 2013 15:09:00 GMThttp://m.tkk7.com/paulwong/archive/2013/01/02/393701.htmlhttp://m.tkk7.com/paulwong/comments/393701.htmlhttp://m.tkk7.com/paulwong/archive/2013/01/02/393701.html#Feedback0http://m.tkk7.com/paulwong/comments/commentRss/393701.htmlhttp://m.tkk7.com/paulwong/services/trackbacks/393701.html0XJJ{2%~G~[G]JBPMW}YE~A 

    2錛屼粠閫昏緫瀛樺偍緇撴瀯鍒板疄闄呯殑鐗╃悊瀛樺偍緇撴瀯瑕佺粡鍘嗕竴涓猣old榪囩▼錛屾墍鏈夌殑columnFamily涓嬬殑鍐呭琚湁搴忕殑鍚堝茍錛屽洜涓篐Base鎶婁竴涓狢olumnFamily瀛樺偍涓轟竴涓猄toreFile銆?

    3錛屾妸HBase鐨勬煡璇㈢瓑浠蜂負(fù)涓涓愬眰榪囨護(hù)鐨勮涓猴紝閭d箞鍦ㄨ璁″瓨鍌ㄦ椂灝卞簲璇ユ槑鐧斤紝浣胯璁¤秺瓚嬪悜鍗曚竴鐨刱eyvalue鎬ц兘浼?xì)瓒婂ソ锛涘鏋滄槸鍥犱负澶嶆潅鐨勪笟鍔¢昏緫瀵艱嚧鏌ヨ闇瑕佺‘瀹歳owkey銆乧olumn銆乼imestamp錛岀敋鑷蟲洿澶稿紶鐨勬槸鐢ㄥ埌浜咹Base鐨凢ilter鍦╯erver绔仛value鐨勫鐞嗭紝閭d箞鏁翠釜鎬ц兘浼?xì)闈炲告綆銆?nbsp;

    4錛屽洜姝ゅ湪琛ㄧ粨鏋勮璁℃椂錛孒Base閲屾湁tall narrow鍜宖lat wide涓ょ璁捐妯″紡錛屽墠鑰呰澶氬垪灝戯紝鏁翠釜琛ㄧ粨鏋勯珮涓旂獎錛涘悗鑰呰灝戝垪澶氾紝琛ㄧ粨鏋勫鉤涓斿錛涗絾鏄敱浜嶩Base鍙兘鍦ㄨ鐨勮竟鐣屽仛split錛屽洜姝ゅ鏋滈夋嫨flat wide鐨勭粨鏋勶紝閭d箞鍦ㄧ壒孌婅鍙樼殑瓚呯駭澶э紙瓚呰繃file鎴杛egion鐨勪笂闄愶級鏃訛紝閭d箞榪欑琛屼負(fù)浼?xì)瀵艰嚧compaction錛岃岃繖鏍峰仛鏄鎶妑ow璇誨唴瀛樼殑~~鍥犳錛屽己鐑堟帹鑽愪嬌鐢╰all narrow妯″紡璁捐琛ㄧ粨鏋勶紝榪欐牱緇撴瀯鏇磋秼榪戜簬keyvalue錛屾ц兘鏇村ソ銆?nbsp;

    5錛屼竴縐嶄紭闆呯殑琛岃璁″彨鍋歱artial row scan錛屾垜浠竴鑸瑀owkey浼?xì)璁捐湄?fù)<key1>-<key2>-<key3>...錛屾瘡涓猭ey閮芥槸鏌ヨ鏉′歡錛屼腑闂寸敤鏌愮鍒嗛殧絎﹀垎寮錛屽浜庡彧鎯蟲煡key1鐨勬墍鏈夎繖鏍風(fēng)殑鎯呭喌錛屽湪涓嶄嬌鐢╢ilter鐨勬儏鍐典笅錛堟洿楂樻ц兘錛夛紝鎴戜滑鍙互涓烘瘡涓猭ey璁懼畾涓涓搗濮嬪拰緇撴潫鐨勫鹼紝姣斿key1浣滀負(fù)寮濮嬶紝key1+1浣滀負(fù)緇撴潫錛岃繖鏍穝can鐨勬椂鍊欏彲浠ラ氳繃璁懼畾start row鍜宻top row灝辮兘鏌ュ埌鎵鏈夌殑key1鐨剉alue錛屽悓鐞嗚凱浠o紝姣忎釜瀛恔ey閮藉彲浠ヨ繖鏍瘋璁捐鍒皉owkey涓?nbsp;

    6錛屽浜庡垎欏墊煡璇紝鎺ㄨ崘鐨勮璁℃柟寮忎篃涓嶆槸鍒╃敤filter錛岃屾槸鍦╯can涓氳繃offset鍜宭imit鐨勮瀹氭潵妯℃嫙綾諱技RDBMS鐨勫垎欏點傚叿浣撹繃紼嬪氨鏄鍏堝畾浣峴tart row錛屾帴鐫璺寵繃offset琛岋紝璇誨彇limit琛岋紝鏈鍚庡叧闂璼can錛屾暣涓祦紼嬬粨鏉熴?nbsp;

    7錛屽浜庡甫鏈夋椂闂磋寖鍥寸殑鏌ヨ錛屼竴縐嶈璁℃槸鎶婃椂闂存斁鍒頒竴涓猭ey鐨勪綅緗紝榪欐牱璁捐鏈変釜寮婄灝辨槸鏌ヨ鏃朵竴瀹氳鍏堢煡閬撴煡璇㈠摢涓淮搴︾殑鏃墮棿鑼冨洿鍊鹼紝鑰屼笉鑳界洿鎺ラ氳繃鏃墮棿鏌ヨ鎵鏈夌淮搴︾殑鍊鹼紱鍙︿竴縐嶈璁℃槸鎶妕imestamp鏀懼埌鍓嶉潰錛屽悓鏃跺埄鐢╤ashcode鎴栬匨D5榪欐牱鐨勫艦寮忓皢鍏舵墦鏁o紝榪欐牱瀵逛簬瀹炴椂鐨勬椂搴忔暟鎹紝鍥犱負(fù)灝嗗叾鎵撴暎瀵艱嚧鑷姩鍒嗗埌鍏朵粬region鍙互鎻愪緵鏇村ソ鐨勫茍鍙戝啓浼樺娍銆?nbsp;

    8錛屽浜庤鍐欑殑騫寵 錛屼笅闈㈣繖寮犲浘鏇村ソ鐨勮鏄庝簡key鐨勮璁★細(xì)salting絳変環(huán)浜巋ash錛宲romoted絳変環(huán)浜庡湪key涓姞鍏ュ叾浠栫淮搴︼紝鑰宺andom灝辨槸MD榪欐牱鐨勫艦寮忎簡銆?/div>
      VN{YX`@[2P9AQ[@(2U8N9{0

    9錛岃繕鏈変竴縐嶉珮綰х殑璁捐鏂瑰紡鏄埄鐢╟olumn鏉ュ綋鍋歊DBMS綾諱技浜岀駭绱㈠紩鐨勫簲鐢ㄨ璁★紝rowkey鐨勫瓨鍌ㄨ揪鍒頒竴瀹氱▼搴﹀悗錛屽埄鐢╟olumn鐨勬湁搴忥紝瀹屾垚綾諱技绱㈠紩鐨勮璁★紝姣斿錛屼竴涓狢F鍙仛data瀛樻斁鏁版嵁鏈韓錛孋olumnQualifier鏄竴涓狹D5褰㈠紡鐨刬ndex錛岃寁alue鏄疄闄呯殑鏁版嵁錛涘啀寤轟竴涓狢F鍙仛index瀛樺偍鍒氭墠鐨凪D5錛岃繖涓猧ndex鐨凜F鐨凜olumnQualifier鏄湡姝g殑绱㈠紩瀛楁錛堟瘮濡傚悕瀛楁垨鑰呬換鎰忕殑琛ㄥ瓧孌碉紝榪欐牱鍙互鍏佽澶氫釜錛夛紝鑰寁alue鏄繖涓儲寮曞瓧孌電殑MD5銆傛瘡嬈℃煡璇㈡椂灝卞彲浠ュ厛鍦╥ndex閲屾壘鍒拌繖涓儲寮曪紙鏌ヨ鏉′歡涓嶅悓錛岄夋嫨鐨勭儲寮曞瓧孌典笉鍚岋級錛岀劧鍚庡埄鐢ㄨ繖涓儲寮曞埌data閲屾壘鍒版暟鎹紝涓ゆ鏌ヨ瀹炵幇鐪熸鐨勫鏉傛潯浠朵笟鍔℃煡璇€?/div>

    10錛屽疄鐜頒簩綰х儲寮曡繕鏈夊叾浠栭斿緞錛?/div>
    姣斿錛?/div>
    1錛屽鎴風(fēng)鎺у埗錛屽嵆涓嬈¤鍙栧皢鎵鏈夋暟鎹彇鍥烇紝鍦ㄥ鎴風(fēng)鍋氬悇縐嶈繃婊ゆ搷浣滐紝浼樼偣鑷劧鏄帶鍒跺姏姣旇緝寮猴紝浣嗘槸緙虹偣鍦ㄦц兘鍜屼竴鑷存х殑淇濊瘉涓婏紱
    2錛孖ndexed-Transactional HBase錛岃繖鏄釜寮婧愰」鐩紝鎵╁睍浜咹Base錛屽湪瀹㈡埛绔拰鏈嶅姟绔姞鍏ヤ簡鎵╁睍瀹炵幇浜嗕簨鍔″拰浜岀駭绱㈠紩錛?/div>
    3錛孖ndexed-HBase錛?/div>
    4錛孋oprocessor銆?nbsp;

    11錛孒Base闆嗘垚鎼滅儲鐨勬柟寮忔湁澶氱錛?錛屽鎴風(fēng)鎺у埗錛屽悓涓婏紱2錛孡ucene錛?錛孒Basene錛?錛孋oprocessor銆?nbsp;

    12錛孒Base闆嗘垚浜嬪姟鐨勬柟寮忥細(xì)1錛孖THBase錛?錛孼ooKeeper錛岄氳繃鍒嗗竷寮忛攣銆?nbsp;

    13錛宼imestamp铏界劧鍙繖涓悕瀛楋紝浣嗘槸瀹屽叏鍙互瀛樻斁浠諱綍鍐呭鏉ュ艦鎴愮敤鎴瘋嚜瀹氫箟鐨勭増鏈俊鎭?


    paulwong 2013-01-02 23:09 鍙戣〃璇勮
    ]]> 主站蜘蛛池模板: 美女黄频视频大全免费的| 亚洲国产精品综合久久久| 亚洲高清毛片一区二区| 午夜国产精品免费观看 | 边摸边吃奶边做爽免费视频99 | 亚洲一级视频在线观看| 最近2018中文字幕免费视频| 亚洲美女中文字幕| www.黄色免费网站| 亚洲精品无码久久久久秋霞 | 麻豆视频免费播放| 亚洲人成7777影视在线观看| 大学生一级毛片免费看| 亚洲日韩一区二区三区| 国产在线19禁免费观看| 国产免费久久精品丫丫| 亚洲AV人人澡人人爽人人夜夜| 99在线观看视频免费| 亚洲国产成人精品电影| 国产精品久久久久影院免费| 一级毛片试看60分钟免费播放| 在线观看亚洲av每日更新| 桃子视频在线观看高清免费视频| 亚洲精品视频久久| 日本不卡高清中文字幕免费| 色网站在线免费观看| 亚洲精品午夜国产VA久久成人| 国产成人精品免费久久久久 | 免费VA在线观看无码| 亚洲精品美女久久久久99| aⅴ免费在线观看| 国产亚洲精品美女2020久久| 亚洲精品成人片在线播放| 嘿嘿嘿视频免费网站在线观看| 亚洲av无码日韩av无码网站冲| 亚洲午夜无码AV毛片久久| 亚洲视频在线观看免费| 亚洲精品无码不卡在线播放| 亚洲精品成人网站在线观看| 美女网站免费福利视频| 一区二区免费电影|