??xml version="1.0" encoding="utf-8" standalone="yes"?>一区二区三区视频在线,jizzjizz在线观看,日韩一级免费一区http://www.aygfsteel.com/paulwong/category/53883.htmlzh-cnSun, 04 Jan 2015 17:23:29 GMTSun, 04 Jan 2015 17:23:29 GMT60HADOOP各种框架应用领域http://www.aygfsteel.com/paulwong/archive/2015/01/04/422020.htmlpaulwongpaulwongSun, 04 Jan 2015 04:57:00 GMThttp://www.aygfsteel.com/paulwong/archive/2015/01/04/422020.htmlhttp://www.aygfsteel.com/paulwong/comments/422020.htmlhttp://www.aygfsteel.com/paulwong/archive/2015/01/04/422020.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/422020.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/422020.html1. Real Time Analytics : Apache Storm
2. In-memory Analytics : Apache Spark
3. Search Analytics : Apache Elastic search, SOLR
4. Log Analytics : Apache ELK Stack,ESK Stack(Elastic Search, Log
Stash, Spark Streaming, Kibana)
5. Batch Analytics : Apache MapReduce

***** NO SQL DB *****
1. MongoDB
2. Hbase
3. Cassandra

***** SOA *****
1. Oracle SOA
2. JBoss SOA
3. TiBco SOA
4. SOAP, RESTful Webservices 

paulwong 2015-01-04 12:57 发表评论
]]>
最火爆的开源流式系lStorm vs 新星Samzahttp://www.aygfsteel.com/paulwong/archive/2014/12/02/420922.htmlpaulwongpaulwongTue, 02 Dec 2014 07:03:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/12/02/420922.htmlhttp://www.aygfsteel.com/paulwong/comments/420922.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/12/02/420922.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/420922.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/420922.html

分布计算pȝ框架Q按照数据集的特Ҏ_主要分ؓdata-flow和streaming两种。data-flow主要是以数据块ؓ数据源来处理数据Q代表有QMR、Spark{,我称作它们ؓ大数据,而streaming主要是处理单位内得到的数据,q种方式Q更注重于实时性,主要包括Strom、JStorm和Samza{,我称作它们ؓ快数据?/p>

在这文章中Q我主要谈论streaming相关的框架?/p>

W一个是StormQ一个实时计系l,它假定数据源是动态的Q可以向水一样处理数据?/p>

它的特点是:低gq、高性能、分布式、可扩展和容错性?/p>

架构如下图所C?/p>


 

Storm的具体概念可以参照:http://blog.csdn.net/hljlzc2007/article/details/12976211Q这里不做具体介l?/p>

Storm目前是最最E_的开源流式处理框Ӟ但是个h认ؓ它有两个问题?/p>

1. Storm虽然支持多个语言~写spout和bolt端的代码Q但是它的主要技术实现是clojureQ这l玩大数据、开源的朋友带来了极大的不变Q因为大家会的语a不是以java和C++{大众语aZQ这L话,变得不可控了Q难以深入了解、修改其l节?/p>

2. Storm可以支持在Yarn(Hadoop 2.0)上,可以和其他开源框架共享Hadoop集群的资源,但是性能不佳Q这个有待Storm改善

当然无论如何QStorm依然是目前开源流式处理框架的王者?/p>

W二个我惌的是JStormQ这个是阉K做的Q算是Storm的另一个实玎ͼ它用的语a是Java.

特点Q?/p>

1. 客户端的API与Storm基本上是一致的Q如果从Stormq移q来Q不需要修改bolt和spout的代?/p>

2. Jstrom比StromE_Q速度更快

3. 提供了一些新的特?/p>

大家有兴可以去玩玩Q项目地址https://github.com/alibaba/jstorm 

W三个是Samza

Samza是由LinkedIn开源的一个技术,它是一个开源的分布式流处理pȝQ非常类gStorm。不同的是它q行在Hadoop之上Qƈ且用了自己开发的Kafka分布式消息处理系l?/p>

q是Linkin开发的一个小而美的项目,如何呢Q?/p>

1. 只有几千行代码,完成的功能就可以和Storm媲美Q当然目前还有很多的不

2. 和Kafkal合紧密Q更方便的处理数?/p>

3. q行在Yarn?/p>

之前我做q的一个项目,是Kafka + Storm + ElasticSearchQ将来完全可以将Storm替换成SamzaQ这L话,q可以利用Hadoop集群的资源,做一些存储、离U分析的功能。将实时处理和离U分析都q行在Hadoop上,不得不说Samza是一个伟大的目Q这样可以减项目的增长复杂度,利于l护Q还是那句话Q小而美的东西,更受Ƣ迎一些?/p>

架构Q?/p>

Samza主要包含三层Q?/p>

1. 处理层 --> Kafka

2. 执行?    --> YARN

3. 处理?   --> Samza API

Samza的流处理层和执行层都是可插拔式的Q开发h员可以用其他框架来替代Q不局限于上述两种技术?/p>

Samza提供了一个YARN ApplicationMasterQ和YARN jobQ运行在集群之外Q下图中不同颜色代表不同的主机?/p>

Samza客户端告诉YARN的Resouce ManagerQ它惛_动一个Samza jobQ?YARN RM 告诉YARN Node managerQ分配空间给YARN ApplicationMasterQNM指定完空间后QYARN container会运行Samza Task Runner?/p>


Samza状态管?/p>

式处理数据对状态的理是很隄Q由于数据是动的,本n没有状态,q样需要靠历史数据来记录应用的场合QSamza提供了一个内部的key-value数据库,它是ZLevelDBQ运行的JVM之外的,使用它来存储历史数据。这L做的好处是:

1. 减少JVM的开销

2. 使用内部存储Q极大提高的吞吐?/p>

3. 减少q发操作

Samza处理程.

下图是Samza官方l的一例子Q根据Member ID分组Q计页面访问次数。入口消息分别来自Machine1?Q出口是Machine3Q我们可以这L解,消息分散在不同的消息pȝ中(KafkaQ,Samza从不同的Kafka中读取topicQ在topicq行处理后,发送到Machine3Q这里不做过多分解,具体可以参照官方文档?/p>



目地址Q?a target="_blank" style="color: #336699; text-decoration: none;">https://github.com/apache/incubator-samza

官方文gQ?a target="_blank" style="color: #336699; text-decoration: none;">http://samza.incubator.apache.org/

以上l了我们无限遐想QStorm是否会保持领先地位,Samza能否取而代之呢Q无论如何,作ؓ开发者来_几千行代码,我都q不及待去要M下了?/p>

paulwong 2014-12-02 15:03 发表评论
]]>
Auto rebalance Stormhttp://www.aygfsteel.com/paulwong/archive/2014/05/09/413479.htmlpaulwongpaulwongFri, 09 May 2014 15:48:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/05/09/413479.htmlhttp://www.aygfsteel.com/paulwong/comments/413479.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/05/09/413479.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/413479.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/413479.htmlhttp://stackoverflow.com/questions/15010420/storm-topology-rebalance-using-java-code


使用Nimbus获取STORM的信?br />http://www.andys-sundaypink.com/i/retrieve-storm-cluster-statistic-from-nimbus-java-mode/
TSocket tsocket = new TSocket("localhost", 6627);
TFramedTransport tTransport = new TFramedTransport(tsocket);
TBinaryProtocol tBinaryProtocol = new TBinaryProtocol(tTransport);
Nimbus.Client client = new Nimbus.Client(tBinaryProtocol);
String topologyId = "test-1-234232567";


try {

tTransport.open();
ClusterSummary clusterSummary = client.getClusterInfo();
StormTopology stormTopology = client.getTopology(topologyId);
TopologyInfo topologyInfo = client.getTopologyInfo(topologyId);
List<ExecutorSummary> executorSummaries = topologyInfo.get_executors();

List<TopologySummary> topologies = clusterSummary.get_topologies();
for(ExecutorSummary executorSummary : executorSummaries){

String id = executorSummary.get_component_id();
ExecutorInfo executorInfo = executorSummary.get_executor_info();
ExecutorStats executorStats = executorSummary.get_stats();
System.out.println("executorSummary :: " + id + " emit size :: " + executorStats.get_emitted_size());
}
catch (TTransportException e) {
e.printStackTrace();
catch (TException e) {
e.printStackTrace();
catch (NotAliveException e) {
e.printStackTrace();
}






paulwong 2014-05-09 23:48 发表评论
]]>
释STORMhttp://www.aygfsteel.com/paulwong/archive/2014/05/09/413476.htmlpaulwongpaulwongFri, 09 May 2014 14:56:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/05/09/413476.htmlhttp://www.aygfsteel.com/paulwong/comments/413476.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/05/09/413476.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/413476.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/413476.html
处理的方式有各种自定义:

  1. 可自定义消息处理的步?br />
  2. 可自定义每种cd的消息需要多个q程来处?br />
  3. 每个步骤里的消息是在某个q程里的U程来做处理?br />
  4. 可自定义每个步骤里的消息的线E数

  5. 可以增加和删除要处理的消息类?
如果要处理某U消息了Q要怎么办呢Q?br />
  1. 定义数据来源lg(SPOUT)

  2. 定义处理步骤(BOLT)

  3. l合成一个消息处理流E框架TOPOLOGY

  4. 定义处理消息的进E的数量、定义每个步骤ƈ发时可用的线E数

  5. 部vTOPOLOGY
当一个TOPOLOGY被部|到STORMӞSTORM会查N|对象的WORKER数量Q根据这个数量相应的启动N个JVMQ然后根据每个步骤配|的NUMTASKS生成相应个数的线E,然后每个步骤中配|的数量实例化相应个数的对象Q然后就启动一个线E不断的执行SPOUT中的nextTuple()ҎQ如果这个方法中有输出结果,启动另一U程Qƈ在此U程中将q个l果作ؓ参数传到下一个对象的excueҎ中?br />
如果此时又有一个步骤BOLT需要执行的话,也是新取一个线E去执行BOLT中的Ҏ启动的线E不会越qNUMTASKS的数量?br />




paulwong 2014-05-09 22:56 发表评论
]]>
Storm performancehttp://www.aygfsteel.com/paulwong/archive/2014/05/08/413391.htmlpaulwongpaulwongThu, 08 May 2014 01:19:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/05/08/413391.htmlhttp://www.aygfsteel.com/paulwong/comments/413391.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/05/08/413391.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/413391.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/413391.htmlThe configuration is used to tune various aspects of the running topology. The two configurations specified here are very common:

  1. TOPOLOGY_WORKERS (set with setNumWorkers) specifies how many processes you want allocated around the cluster to execute the topology. Each component in the topology will execute as many threads. The number of threads allocated to a given component is configured through the setBolt and setSpout methods. Those threadsexist within worker processes. Each worker process contains within it some number of threads for some number of components. For instance, you may have 300 threads specified across all your components and 50 worker processes specified in your config. Each worker process will execute 6 threads, each of which of could belong to a different component. You tune the performance of Storm topologies by tweaking the parallelism for each component and the number of worker processes those threads should run within.
  2. TOPOLOGY_DEBUG (set with setDebug), when set to true, tells Storm to log every message every emitted by a component. This is useful in local mode when testing topologies, but you probably want to keep this turned off when running topologies on the cluster.

There's many other configurations you can set for the topology. The various configurations are detailed on the Javadoc for Config.


Common configurations


There are a variety of configurations you can set per topology. A list of all the configurations you can set can be found here. The ones prefixed with "TOPOLOGY" can be overridden on a topology-specific basis (the other ones are cluster configurations and cannot be overridden). Here are some common ones that are set for a topology:

  1. Config.TOPOLOGY_WORKERS: This sets the number of worker processes to use to execute the topology. For example, if you set this to 25, there will be 25 Java processes across the cluster executing all the tasks. If you had a combined 150 parallelism across all components in the topology, each worker process will have 6 tasks running within it as threads.
  2. Config.TOPOLOGY_ACKERS: This sets the number of tasks that will track tuple trees and detect when a spout tuple has been fully processed. Ackers are an integral part of Storm's reliability model and you can read more about them onGuaranteeing message processing.
  3. Config.TOPOLOGY_MAX_SPOUT_PENDING: This sets the maximum number of spout tuples that can be pending on a single spout task at once (pending means the tuple has not been acked or failed yet). It is highly recommended you set this config to prevent queue explosion.
  4. Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS: This is the maximum amount of time a spout tuple has to be fully completed before it is considered failed. This value defaults to 30 seconds, which is sufficient for most topologies. SeeGuaranteeing message processing for more information on how Storm's reliability model works.
  5. Config.TOPOLOGY_SERIALIZATIONS: You can register more serializers to Storm using this config so that you can use custom types within tuples.

Reference:
http://storm.incubator.apache.org/documentation/Running-topologies-on-a-production-cluster.html

storm rebalance 命o调整topologyq行数及问题分析
http://blog.csdn.net/jmppok/article/details/17243857

flume+kafka+storm+mysql 数据?br />http://blog.csdn.net/jmppok/article/details/17259145



http://storm.incubator.apache.org/documentation/Tutorial.html

paulwong 2014-05-08 09:19 发表评论
]]>
安装STORMhttp://www.aygfsteel.com/paulwong/archive/2014/05/04/413230.htmlpaulwongpaulwongSun, 04 May 2014 10:01:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/05/04/413230.htmlhttp://www.aygfsteel.com/paulwong/comments/413230.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/05/04/413230.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/413230.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/413230.html
  • install ZeroMQ
    wget http://download.zeromq.org/historic/zeromq-2.1.7.tar.gz
    tar -xzf zeromq-2.1.7.tar.gz
    cd zeromq-2.1.7
    ./configure
     //在configure时可能会报缺包,安装卛_Qsudo apt-get install g++ uuid-dev
    make
    sudo make install
  • install JZMQ
    git clone https://github.com/nathanmarz/jzmq.git
    cd jzmq
    ./autogen.sh
    ./configure
    make
    sudo make install

  • 下蝲q解压STORM

  • ~辑conf/storm.yaml
    storm.zookeeper.servers:
    "1.2.3.5"
    "1.2.3.6"
    "1.2.3.7"
    storm.local.dir: "/opt/folder"
    nimbus.host: "54.72.4.92"
    supervisor.slots.ports:
    6700
    6701
    6702
  • ~辑/etc/profile
    export JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export STORM_HOME=/home/ubuntu/java/storm-0.8.1
    export KAFKA_HOME=/home/ubuntu/java/kafka_2.9.2-0.8.1.1
    export ZOOKEEPER_HOME=/home/ubuntu/java/zookeeper-3.4.6

    export PATH=$JAVA_HOME/bin:$STORM_HOME/bin:$KAFKA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

  • 制作启动命o: start-storm.sh
    storm nimbus &
    storm supervisor &
    storm ui &

  • 安装途中如果遇到问题
    http://my.oschina.net/mingdongcheng/blog/43009

    paulwong 2014-05-04 18:01 发表评论
    ]]>
    STORM启动与部|TOPOLOGYhttp://www.aygfsteel.com/paulwong/archive/2013/09/11/403942.htmlpaulwongpaulwongWed, 11 Sep 2013 03:00:00 GMThttp://www.aygfsteel.com/paulwong/archive/2013/09/11/403942.htmlhttp://www.aygfsteel.com/paulwong/comments/403942.htmlhttp://www.aygfsteel.com/paulwong/archive/2013/09/11/403942.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/403942.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/403942.html
  • 启动ZOOPKEEPER
    zkServer.sh start
  • 启动NIMBUS
    storm nimbus &
  • 启动SUPERVISOR
    storm supervisor &
  • 启动UI
    storm ui &
  • 部vTOPOLOGY
    storm jar /opt/hadoop/loganalyst/storm-dependend/data/teststorm-1.0.jar teststorm.TopologyMain /opt/hadoop/loganalyst/storm-dependend/data/words.txt
  • 删除TOPOLOGY
    storm kill {toponame}
  • ȀzTOPOLOGY
    storm active {toponame}
  • 不激zTOPOLOGY
    storm deactive {toponame}
  • 列出所有TOPOLOGY
    storm list





  • paulwong 2013-09-11 11:00 发表评论
    ]]>
    STORM资源http://www.aygfsteel.com/paulwong/archive/2013/09/08/403826.htmlpaulwongpaulwongSun, 08 Sep 2013 11:59:00 GMThttp://www.aygfsteel.com/paulwong/archive/2013/09/08/403826.htmlhttp://www.aygfsteel.com/paulwong/comments/403826.htmlhttp://www.aygfsteel.com/paulwong/archive/2013/09/08/403826.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/403826.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/403826.htmlhttp://www.jansipke.nl/installing-a-storm-cluster-on-centos-hosts/
    http://www.cnblogs.com/kemaswill/archive/2012/10/24/2737833.html
    http://abentotoro.blog.sohu.com/197023262.html
    http://www.cnblogs.com/panfeng412/archive/2012/11/30/how-to-install-and-deploy-storm-cluster.html


    使用 Twitter Storm 处理实时的大数据
    http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/


    Storm数据模型的分析及讨?br />http://www.cnblogs.com/panfeng412/archive/2012/07/29/storm-stream-model-analysis-and-discussion.html
    http://www.cnblogs.com/panfeng412/tag/Storm/


    storm-kafka
    https://github.com/nathanmarz/storm-contrib/tree/master/storm-kafka


    使用Storm实现实时大数据分析!
    http://www.csdn.net/article/2012-12-24/2813117-storm-realtime-big-data-analysis


    storm-deploy-aws
    https://github.com/nathanmarz/storm-deploy/wiki


    !!!知乎|站上的Twitter Storm
    http://www.zhihu.com/topic/19673110


    storm-elastic-search
    https://github.com/hmsonline/storm-elastic-search


    storm-examples
    https://github.com/stormprocessor/storm-examples


    kafka-aws
    https://github.com/nathanmarz/kafka-deploy


    Next Gen Real-time Streaming with Storm-Kafka Integration
    http://blog.infochimps.com/2012/10/30/next-gen-real-time-streaming-storm-kafka-integration/


    flume+kafka+storm+mysql 数据?
    http://blog.csdn.net/baiyangfu/article/details/8096088
    http://blog.csdn.net/baiyangfu/article/category/1244640


    Kafka学习W记
    http://blog.csdn.net/baiyangfu/article/details/8096084


    STORM+KAFKA
    https://github.com/buildlackey/cep


    STORM+KETTLE
    https://github.com/buildlackey/kettle-storm



    paulwong 2013-09-08 19:59 发表评论
    ]]>
    STORM与HADOOP的比?/title><link>http://www.aygfsteel.com/paulwong/archive/2013/09/08/403824.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 08 Sep 2013 11:49:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2013/09/08/403824.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/403824.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2013/09/08/403824.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/403824.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/403824.html</trackback:ping><description><![CDATA[对于一堆时d增长的数据,如果要统计,可以采取什么方法呢Q?br /><ol><li>{数据增长到一定程度的时候,跑一个统计程序进行统计。适用于实时性要求不高的场景?br />如将数据导到HDFSQ再q行一个MAP REDUCE JOB?br /></li><li>如果实时性要求高的,上面的方法就不行了。因此就带来W二U方法?br />在数据每ơ增长一W的时候,p行统计JOBQ结果放到DB或搜索引擎的INDEX中?br />STORM是完成q种工作的?/li></ol><br />HADOOP与STORM比较<br /><ol><li>数据来源QHADOOP是HDFS上某个文件夹下的可能是成TB的数据,STORM是实时新增的某一W数?/li><li>处理q程QHADOOP是分MAP阶段到REDUCE阶段QSTORM是由用户定义处理程Q?br />程中可以包含多个步骤,每个步骤可以是数据源(SPOUT)或处理逻辑(BOLT)</li><li>是否l束QHADOOP最后是要结束的QSTORM是没有结束状态,到最后一步时Q就停在那,直到有新<br />数据q入时再从头开?/li><li>处理速度QHADOOP是以处理HDFS上大量数据ؓ目的Q速度慢,STORM是只要处理新增的某一W数据即?br />可以做到很快?/li><li>适用场景QHADOOP是在要处理一Ҏ据时用的Q不讲究时效性,要处理就提交一个JOBQSTORM是要处理<br />某一新增数据时用的,要讲时效?br /></li><li>与MQҎQHADOOP没有Ҏ性,STORM可以看作是有N个步骤,每个步骤处理完就向下一个MQ发送消息,<br />监听q个MQ的消费者l处?br /><br /></li></ol><img src ="http://www.aygfsteel.com/paulwong/aggbug/403824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2013-09-08 19:49 <a href="http://www.aygfsteel.com/paulwong/archive/2013/09/08/403824.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">żҽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">ϸ</a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ĵ</a>| <a href="http://" target="_blank"> </a>| <a href="http://" target="_blank">Ɽ</a>| <a href="http://" target="_blank">ֲ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">żҿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>