incubator-s4-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthieu Morel <matth...@yahoo-inc.com>
Subject Re: Two problems about Running Twitter Trend Example in Cluster Mode
Date Thu, 22 Nov 2012 10:24:50 GMT
Hi,

I can't reproduce the errors you mention. It looks like the code you are running is not the
one from the master branch. (for instance there cannot be a NPE on Deploy.java line 73 with
the code from the master branch). 

I would recommend to clean and rebuild both s4 and s4-tools. Or you may download the source
release (master branch = latest release).

Also, which version of ZooKeeper are you using?

Regards,

Matthieu



  


On Nov 22, 2012, at 2:42 AM, Frank Zheng wrote:

> Hi,
> 
> I am using the updated S4 by "git clone https://git-wip-us.apache.org/repos/asf/incubator-s4.git",
on the master branch.
> And I used a full path, and "chmod 755" the counter.s4r and adapter.s4r.
> But I always got the error when I tried to deploy the application.
> 
> [root@testing s4]# ./s4 deploy -appName=twitter-counter -c=cluster1 -s4r=/usr/incubator-s4/test-apps/twitter-counter/build/libs/twitter-counter.s4r
-zk=testing.machine1:2181
> 09:31:39.755 [main] ERROR org.apache.s4.tools.Deploy - Cannot deploy app
> java.lang.NullPointerException: null
>     at org.apache.s4.tools.Deploy.main(Deploy.java:73) ~[s4-tools-0.5.0-incubating.jar:0.5.0-incubating]
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_22]
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
~[na:1.6.0_22]
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.6.0_22]
>     at java.lang.reflect.Method.invoke(Method.java:616) ~[na:1.6.0_22]
>     at org.apache.s4.tools.Tools$Task.dispatch(Tools.java:54) [s4-tools-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.tools.Tools.main(Tools.java:94) [s4-tools-0.5.0-incubating.jar:0.5.0-incubating]
> 
> 
> I checked the status.
> 
> 09:36:24.430 [main] WARN  org.apache.s4.tools.Status - /s4/clusters/cluster2/app/s4App
doesn't exist
> 09:36:24.438 [main] WARN  org.apache.s4.tools.Status - /s4/clusters/cluster1/app/s4App
doesn't exist
> 
> App Status
> ----------------------------------------------------------------------------------------------------------------------------------
>         Name              Cluster                                                  URI
                                           
> ----------------------------------------------------------------------------------------------------------------------------------
> ----------------------------------------------------------------------------------------------------------------------------------
> 
> 
> 
> Cluster Status
> ----------------------------------------------------------------------------------------------------------------------------------
>                                                                                     Active
nodes                                  
>         Name                App           Tasks   --------------------------------------------------------------------------------
>                                                    Number    Task id                
        Host                         Port    
> ----------------------------------------------------------------------------------------------------------------------------------
>       cluster2               --            1         1        Task-0                
  testing.machine1                   13000   
>       cluster1               --            2         2        Task-0                
  testing.machine1                   12000   
>                                                                    Task-1           
       testing.machine1                   12001   
> ----------------------------------------------------------------------------------------------------------------------------------
> 
> 
> Stream Status
> ----------------------------------------------------------------------------------------------------------------------------------
>         Name                               Producers                                
             Consumers                       
> ----------------------------------------------------------------------------------------------------------------------------------
> ----------------------------------------------------------------------------------------------------------------------------------
> 
> Then I created and deployed the application using this command "./s4 deploy -appName=twitter-counter
-c=cluster1 -b=/usr/incubator-s4/test-apps/twitter-counter/build.gradle -zk=testing.machine1:2181".
By this way, I can deployed applications.
> 
> [root@testing s4]# ./s4 deploy -appName=twitter-counter -c=cluster1 -b=/usr/incubator-s4/test-apps/twitter-counter/build.gradle
-zk=testing.machine1:218109:38:27.923 [main] DEBUG org.gradle.tooling.GradleConnector - Connecting
from tooling API consumer version 1.0
> 09:38:28.016 [main] INFO  org.apache.s4.tools.Deploy - [-stacktrace, -info, -PappClass=,
-PappsDir=/tmp/1353548307751-0, -PappName=twitter-counter]
> 09:38:28.152 [Connection worker] DEBUG o.g.t.i.c.l.DefaultToolingImplementationLoader
- Using tooling provider from Gradle distribution 'http://services.gradle.org/distributions/gradle-1.0-bin.zip'
> 09:38:28.153 [Connection worker] DEBUG o.g.t.i.c.l.DefaultToolingImplementationLoader
- Using tooling provider classpath: [/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/log4j-over-slf4j-1.6.4.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jansi-1.2.1.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/commons-io-1.4.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-launcher-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/asm-all-3.3.1.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jsch-0.1.46.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/commons-collections-3.2.1.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-open-api-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-base-services-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jna-posix-1.0.3.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-core-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-cli-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/guava-11.0.1.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/logback-core-1.0.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jcl-over-slf4j-1.6.4.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/ant-1.8.2.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-ui-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-native-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/ivy-2.2.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/ant-launcher-1.8.2.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/dom4j-1.6.1.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-wrapper-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/logback-classic-1.0.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jna-3.2.7.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jaxen-1.1.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/slf4j-api-1.6.4.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jul-to-slf4j-1.6.4.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/jcip-annotations-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/commons-lang-2.6.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-tooling-api-1.0.jar,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/groovy-all-1.8.6.jar]
> 09:38:28.625 [Connection worker] DEBUG o.g.t.i.provider.DefaultConnection - Provider
implementation created.
> 09:38:28.776 [Connection worker] DEBUG o.g.t.i.provider.DefaultConnection - Embedded
executer support created.
> 09:38:28.784 [Connection worker] DEBUG o.g.t.i.provider.DefaultConnection - Configuring
logging to level: INFO
> Tooling API uses target gradle version: 1.0.
> Starting Gradle daemon
> Starting daemon process: workingDir = /root/.gradle/daemon/1.0, daemonArgs: [/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/java,
-XX:MaxPermSize=256m, -XX:+HeapDumpOnOutOfMemoryError, -Xmx1024m, -Dfile.encoding=UTF-8, -cp,
/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/gradle-launcher-1.0.jar,
org.gradle.launcher.daemon.bootstrap.GradleDaemon, 1.0, /root/.gradle/daemon, 10800000, fff3fc59-3334-4a05-a1e2-85b42c5ebecb,
-XX:MaxPermSize=256m, -XX:+HeapDumpOnOutOfMemoryError, -Xmx1024m, -Dfile.encoding=UTF-8]
> Connected to the daemon. Dispatching Build{id=1353548309353-1, currentDir=/usr/incubator-s4}
request.
> The client will now receive all logging from the daemon (pid: 4095). The daemon log file:
/root/.gradle/daemon/1.0/daemon-4095.out.log
> Closing daemons standard input as requested by received command: CloseInput[id=1353548310241-2]
...
> Executing build with daemon context: DefaultDaemonContext[uid=fff3fc59-3334-4a05-a1e2-85b42c5ebecb,javaHome=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64,daemonRegistryDir=/root/.gradle/daemon,pid=4095,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8]
> The daemon will no longer process any standard input.
> Starting Build
> Settings evaluated using empty settings script.
> Projects loaded. Root project using build file '/usr/incubator-s4/test-apps/twitter-counter/build.gradle'.
> Included projects: [root project 'twitter-counter']
> Evaluating root project 'twitter-counter' using build file '/usr/incubator-s4/test-apps/twitter-counter/build.gradle'.
> Found app class name: org.apache.s4.example.twitter.TwitterCounterApp
> All projects evaluated.
> Selected primary task 'installS4R'
> Tasks to be executed: [task ':compileJava', task ':processResources', task ':classes',
task ':jar', task ':buildProjectJar', task ':cleanBuildProjectJar', task ':cleanCopyDependenciesToLib',
task ':copyDependenciesToLib', task ':s4r', task ':installS4R']
> :compileJava
> :: loading settings :: url = jar:file:/root/.gradle/wrapper/dists/gradle-1.0-bin/3712n820lsda7ntccvm5qn52st/gradle-1.0/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
> Skipping task ':compileJava' as it is up-to-date.
> Skipping task ':compileJava' as it is up-to-date
> :compileJava UP-TO-DATE
> :processResources
> Skipping task ':processResources' as it has no source files.
> :processResources UP-TO-DATE
> :classes
> Skipping task ':classes' as it has no actions.
> :classes UP-TO-DATE
> :jar
> Skipping task ':jar' as it is up-to-date.
> Skipping task ':jar' as it is up-to-date
> :jar UP-TO-DATE
> :buildProjectJar
> Skipping task ':buildProjectJar' as it has no actions.
> :buildProjectJar UP-TO-DATE
> :cleanBuildProjectJar
> Task ':cleanBuildProjectJar' has not declared any outputs, assuming that it is out-of-date.
> :cleanBuildProjectJar UP-TO-DATE
> :cleanCopyDependenciesToLib
> Task ':cleanCopyDependenciesToLib' has not declared any outputs, assuming that it is
out-of-date.
> :copyDependenciesToLib
> Executing task ':copyDependenciesToLib' due to:
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib for task ':copyDependenciesToLib'
has changed.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/asm-3.2.jar has
been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/commons-codec-1.4.jar
has been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/commons-digester-1.8.jar
has been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/slf4j-api-1.6.1.jar
has been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/guava-12.0.1.jar
has been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/s4-comm-0.5.0-incubating.jar
has been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/gson-1.6.jar has
been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/guice-multibindings-3.0.jar
has been removed for task ':copyDependenciesToLib'.
> Output file /usr/incubator-s4/test-apps/twitter-counter/build/libs/lib/log4j-1.2.15.jar
has been removed for task ':copyDependenciesToLib'.
> 31 more ...
> :s4r
> Skipping task ':s4r' as it is up-to-date.
> Skipping task ':s4r' as it is up-to-date
> :s4r UP-TO-DATE
> :installS4R
> Executing task ':installS4R' due to:
> No history is available for task ':installS4R'.
> 
> BUILD SUCCESSFUL
> 
> Total time: 12.159 secs
> 09:38:40.260 [main] INFO  org.apache.s4.tools.Deploy - uploaded application [twitter-counter]
to cluster [cluster1], using zookeeper znode [/s4/clusters/cluster1/app/twitter-counter],
and s4r file [file:/tmp/1353548307751-0/twitter-counter.s4r]
> 
> And if I started node before deploying applications, when I deployed applications, the
counter node could not work.
> [root@testing s4]# ./s4 node -c=cluster1 -zk=testing.machine1:218109:29:01.491 [main]
INFO  org.apache.s4.core.Main - Initializing S4 node with : 
> - comm module class [org.apache.s4.comm.DefaultCommModule]
> - comm configuration file [default.s4.comm.properties from classpath]
> - core module class [org.apache.s4.core.DefaultCoreModule]
> - core configuration file[default.s4.core.properties from classpath]
> - extra modules: []
> - inline parameters: []
> 09:29:01.531 [main] DEBUG org.apache.s4.core.Main - Adding named parameters for injection
: [s4.cluster.zk_address=testing.machine1:2181]
> 09:29:02.098 [main] INFO  org.apache.s4.core.Main - Starting S4 node. This node will
automatically download applications published for the cluster it belongs to
> 09:29:02.217 [main] INFO  o.a.s.comm.topology.AssignmentFromZK - New session:88706097629298692;
state is : SyncConnected
> 09:29:02.300 [main] INFO  o.a.s.comm.topology.AssignmentFromZK - Successfully acquired
task:Task-0 by testing.machine1
> 09:38:40.275 [ZkClient-EventThread-13-testing.machine1:2181] DEBUG o.a.s4.deploy.FileSystemS4RFetcher
- Fetching uri through the file system : file:/tmp/1353548307751-0/twitter-counter.s4r
> 09:38:40.298 [ZkClient-EventThread-13-testing.machine1:2181] INFO  org.apache.s4.core.Server
- Loading application [twitter-counter] from file [/tmp/tmp2682006735846123295s4r]
> 09:38:40.298 [ZkClient-EventThread-13-testing.machine1:2181] WARN  o.a.s4.base.util.S4RLoaderFactory
- s4.tmp.dir not specified, using temporary directory [/tmp/1353548320298-0] for unpacking
S4R. You may want to specify a parent non-temporary directory.
> 09:38:40.298 [ZkClient-EventThread-13-testing.machine1:2181] INFO  o.a.s4.base.util.S4RLoaderFactory
- Unzipping S4R archive in [/tmp/1353548320298-0]
> 09:38:40.428 [ZkClient-EventThread-13-testing.machine1:2181] INFO  org.apache.s4.core.Server
- App class name is: org.apache.s4.example.twitter.TwitterCounterApp
> 09:38:40.515 [ZkClient-EventThread-13-testing.machine1:2181] INFO  o.a.s4.comm.topology.ClusterFromZK
- Changing cluster topology to { nbNodes=2,name=cluster1,mode=unicast,type=,nodes=[{partition=0,port=12000,machineName=testing.machine1,taskId=Task-0},
{partition=1,port=12001,machineName=testing.machine1,taskId=Task-1}]} from null
> 09:38:40.615 [ZkClient-EventThread-13-testing.machine1:2181] INFO  o.a.s4.comm.topology.ClusterFromZK
- Adding topology change listener:org.apache.s4.comm.tcp.TCPEmitter@2a8ab08f
> 09:38:40.693 [ZkClient-EventThread-13-testing.machine1:2181] INFO  o.a.s4.comm.topology.ClustersFromZK
- New session:88706097629298704
> 09:38:51.607 [ZkClient-EventThread-13-testing.machine1:2181] ERROR org.apache.s4.core.Server
- Could not load s4 application form s4r file [{/tmp/tmp2682006735846123295s4r}]
> com.google.inject.ProvisionException: Guice provision errors:
> 
> 1) Error injecting constructor, org.I0Itec.zkclient.exception.ZkTimeoutException: Unable
to connect to zookeeper server within timeout: 10000
>   at org.apache.s4.comm.topology.ClustersFromZK.<init>(ClustersFromZK.java:57)
>   while locating org.apache.s4.comm.topology.ClustersFromZK
>   while locating org.apache.s4.comm.topology.Clusters
>     for field at org.apache.s4.core.RemoteSenders.topologies(RemoteSenders.java:43)
>   while locating org.apache.s4.core.RemoteSenders
>     for field at org.apache.s4.core.App.remoteSenders(App.java:47)
>   while locating org.apache.s4.example.twitter.TwitterCounterApp
> 
> 1 error
>     at com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944) ~[guice-3.0.jar:na]
>     at org.apache.s4.core.Server.loadApp(Server.java:120) ~[s4-core-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.deploy.DistributedDeploymentManager.deployApplication(DistributedDeploymentManager.java:132)
[s4-core-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.deploy.DistributedDeploymentManager$AppChangeListener.handleDataChange(DistributedDeploymentManager.java:172)
[s4-core-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.I0Itec.zkclient.ZkClient$6.run(ZkClient.java:547) [zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71) [zkclient-0.1.jar:na]
> Caused by: org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper
server within timeout: 10000
>     at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:876) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:92) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:80) ~[zkclient-0.1.jar:na]
>     at org.apache.s4.comm.topology.ZkClient.<init>(ZkClient.java:48) ~[s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.ClustersFromZK.<init>(ClustersFromZK.java:61)
~[s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.ClustersFromZK$$FastClassByGuice$$7a883668.newInstance(<generated>)
~[guice-3.0.jar:0.5.0-incubating]
>     at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54) ~[guice-3.0.jar:na]
>     at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:94)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
~[guice-3.0.jar:na]
>     at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
~[guice-3.0.jar:na]
>     ... 6 common frames omitted
> 1 [ZkClient-EventThread-13-testing.machine1:2181] ERROR org.I0Itec.zkclient.ZkEventThread
 - Error handling event ZkEvent[Data of /s4/clusters/cluster1/app/s4App changed sent to org.apache.s4.deploy.DistributedDeploymentManager$AppChangeListener@67071c84]
> org.apache.s4.deploy.DeploymentFailedException: Cannot deploy application [twitter-counter]
from URI [file:/tmp/1353548307751-0/twitter-counter.s4r] : cannot start application
>     at org.apache.s4.deploy.DistributedDeploymentManager.deployApplication(DistributedDeploymentManager.java:138)
>     at org.apache.s4.deploy.DistributedDeploymentManager$AppChangeListener.handleDataChange(DistributedDeploymentManager.java:172)
>     at org.I0Itec.zkclient.ZkClient$6.run(ZkClient.java:547)
>     at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)
> 09:39:29.604 [ZkClient-EventThread-24-testing.machine1:2181] INFO  o.a.s4.comm.topology.ClustersFromZK
- Detected new stream [RawStatus]
> 09:39:29.618 [ZkClient-EventThread-24-testing.machine1:2181] WARN  o.a.s4.comm.topology.ClustersFromZK
- Exception in tryToAcquireTask
> org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException:
KeeperErrorCode = NoNode for /s4/streams/RawStatus/producers
>     at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:47) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:685) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:413) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:409) ~[zkclient-0.1.jar:na]
>     at org.apache.s4.comm.topology.RemoteStreams.update(RemoteStreams.java:172) [s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.RemoteStreams.refreshStreams(RemoteStreams.java:166)
[s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.RemoteStreams.doProcess(RemoteStreams.java:124) [s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.RemoteStreams.handleChildChange(RemoteStreams.java:152)
[s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568) [zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71) [zkclient-0.1.jar:na]
> Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode
for /s4/streams/RawStatus/producers
>     at org.apache.zookeeper.KeeperException.create(KeeperException.java:102) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.apache.zookeeper.KeeperException.create(KeeperException.java:42) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1243) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1271) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.I0Itec.zkclient.ZkConnection.getChildren(ZkConnection.java:99) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:416) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:413) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:675) ~[zkclient-0.1.jar:na]
>     ... 8 common frames omitted
> 09:39:29.636 [ZkClient-EventThread-24-testing.machine1:2181] WARN  o.a.s4.comm.topology.ClustersFromZK
- Exception in tryToAcquireTask
> org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException:
KeeperErrorCode = NoNode for /s4/streams/RawStatus/consumers
>     at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:47) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:685) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:413) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:409) ~[zkclient-0.1.jar:na]
>     at org.apache.s4.comm.topology.RemoteStreams.update(RemoteStreams.java:172) [s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.RemoteStreams.refreshStreams(RemoteStreams.java:167)
[s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.RemoteStreams.doProcess(RemoteStreams.java:124) [s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.apache.s4.comm.topology.RemoteStreams.handleChildChange(RemoteStreams.java:152)
[s4-comm-0.5.0-incubating.jar:0.5.0-incubating]
>     at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568) [zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71) [zkclient-0.1.jar:na]
> Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode
for /s4/streams/RawStatus/consumers
>     at org.apache.zookeeper.KeeperException.create(KeeperException.java:102) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.apache.zookeeper.KeeperException.create(KeeperException.java:42) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1243) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1271) ~[zookeeper-3.3.1.jar:3.3.1-942149]
>     at org.I0Itec.zkclient.ZkConnection.getChildren(ZkConnection.java:99) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:416) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:413) ~[zkclient-0.1.jar:na]
>     at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:675) ~[zkclient-0.1.jar:na]
>     ... 8 common frames omitted
> 
> The S4 Status is like this.
> App Status
> ----------------------------------------------------------------------------------------------------------------------------------
>         Name              Cluster                                                  URI
                                           
> ----------------------------------------------------------------------------------------------------------------------------------
>   twitter-adapter         cluster2      file:/tmp/1353548366674-0/twitter-adapter.s4r
                                            
>   twitter-counter         cluster1      file:/tmp/1353548307751-0/twitter-counter.s4r
                                            
> ----------------------------------------------------------------------------------------------------------------------------------
> 
> 
> 
> Cluster Status
> ----------------------------------------------------------------------------------------------------------------------------------
>                                                                                     Active
nodes                                  
>         Name                App           Tasks   --------------------------------------------------------------------------------
>                                                    Number    Task id                
        Host                         Port    
> ----------------------------------------------------------------------------------------------------------------------------------
>       cluster2        twitter-adapter      1         1        Task-0                
  testing.machine1                   13000   
>       cluster1        twitter-counter      2         2        Task-0                
  testing.machine1                   12000   
>                                                                          Task-1     
             testing.machine1                   12001   
> ----------------------------------------------------------------------------------------------------------------------------------
> 
> 
> 
> Stream Status
> ----------------------------------------------------------------------------------------------------------------------------------
>         Name                               Producers                                
             Consumers                       
> ----------------------------------------------------------------------------------------------------------------------------------
>      RawStatus                    cluster2(twitter-adapter)                         
                --                           
> ----------------------------------------------------------------------------------------------------------------------------------
> 
> 
> 
> On Wed, Nov 21, 2012 at 6:17 PM, Yahoo <matthieu@yahoo-inc.com> wrote:
> Hi,
> 
> Which version of S4 are you using? I can't figure how you can get an NPE here 
>> java.lang.NullPointerException: null
>>     at org.apache.s4.tools.Deploy.main(Deploy.java:73) ~[s4-tools-0.5.0-incubating.jar:0.5.0-incubating]
> 
> I'd recommend using a full path anyway (you can use `pwd`). Indeed, this is what is used
to create a URL so that nodes can know how to fetch the app code.
> 
> 
> Regarding the error on Counter 2, that is usually due to the application not being deployed
on that node. Checking the initial logs at deployment time should help identify the problem.
My guess is that the app cannot be fetched because the URL is not pointing to a correct location.
> 
> I would also recommend using ./s4 status and checking whether the s4r file URL can actually
be accessed from both testing.machine1 and testing.machine2.
> 
> 
> Note that if you have issues with your shared file system, you can also serve the s4r
files through a web server.
> 
> 
> Let us know and thanks for the feedback!
> 
> Matthieu
> 
> 
> 
>> Hi all,
>> 
>> I am using zookeeper-3.3.6 (stable).
>> I tried to run the twitter trend example in two machines: testing.machine1 and testing.machine2.
>> In testing.machine1, I ran 3 zk servers, named zoo1, zoo2 and zoo3. 
>> In testing.machine2, I ran 2 zk servers, named zoo4 and zoo5.
>> I was sure that the zk server cluster was set up successfully.
>> 
>> Then I followed the instructions step by step in "S4 Piper walkthrough" page.
>> However I tried to create and deploy applications separately, but I failed to deploy
after created the applications. 
>> The error logs are as follows.
>> 
>> [root@testing s4]# ./s4 deploy -appName=twitter-counter -c=cluster1 -s4r=./test-apps/twitter-counter/build/libs/twitter-counter.s4r
-zk=testing.machine1:2181
>> 09:57:03.628 [main] ERROR org.apache.s4.tools.Deploy - Cannot deploy app
>> java.lang.NullPointerException: null
>>     at org.apache.s4.tools.Deploy.main(Deploy.java:73) ~[s4-tools-0.5.0-incubating.jar:0.5.0-incubating]
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_22]
>>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
~[na:1.6.0_22]
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.6.0_22]
>>     at java.lang.reflect.Method.invoke(Method.java:616) ~[na:1.6.0_22]
>>     at org.apache.s4.tools.Tools$Task.dispatch(Tools.java:54) [s4-tools-0.5.0-incubating.jar:0.5.0-incubating]
>>     at org.apache.s4.tools.Tools.main(Tools.java:94) [s4-tools-0.5.0-incubating.jar:0.5.0-incubating]
>> 
>> 
>> Then I ran the command "./s4 deploy -appName=twitter-counter -c=cluster1 -b=`pwd`/test-apps/twitter-
>> counter/build.gradle" to create and deploy at one step.
>> At this time, I succeed.
>> And the adapter was working properly. One of the counter applications was working
properly, however, there was always one counter applications unable to work well.
>> 
>> Counter1:
>> 11:14:23.980 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[techschool]
>> 11:14:24.011 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[Windows8yHP]
>> 11:14:24.011 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[fiesta]
>> 11:14:24.937 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[Hola]
>> 11:14:24.945 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[itsokay]
>> 11:14:26.943 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[Enerooooooooo!.]
>> 11:14:26.977 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[BUnation]
>> 11:14:28.224 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[nisekoi]
>> 11:14:28.943 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[nobullshit]
>> 11:14:29.210 [TopicSeen] INFO  o.a.s.e.t.TopicCountAndReportPE - Handling new topic
[somethingiwillneversay]
>> 
>> 
>> Counter2:
>> 11:14:28.221 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.223 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.226 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.228 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.230 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.239 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.299 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.666 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.933 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.942 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.943 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=TopicSeen
>> 11:14:28.947 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.955 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 11:14:28.990 [Receiver] ERROR org.apache.s4.core.Receiver - Could not find target
stream for event with appId=-1 and streamId=RawStatus
>> 
>> Adapter:
>> ^C11:14:33.975 [Twitter4J Async Dispatcher[0]] DEBUG twitter4j.StatusStreamImpl -
Received:{"contributors":null,"text":"Antonio Eduar....... juro que não, estou há 15 ano
morando aqui e quando vou ao Brasil para visitor tenho ataques de... http://t.co/XTNnYY6v","geo":null,"retweeted":false,"in_reply_to_screen_name":null,"possibly_sensitive":false,"truncated":false,"entities":{"urls":[{"expanded_url":"http://noticias.terra.com.br/mundo/noticias/0,,OI6318900-EI308,00-Judeus+protestam+em+SP+por+direito+de+Israel+se+defender.html","indices":[120,140],"display_url":"noticias.terra.com.br/mundo/noticias\u2026","url":"http://t.co/XTNnYY6v"}],"hashtags":[],"user_mentions":[]},"in_reply_to_status_id_str":null,"id":271089234113351680,"in_reply_to_user_id_str":null,"source":"<a
href=\"http://www.terra.com.br\" rel=\"nofollow\">Terra Brasil<\/a>","favorited":false,"in_reply_to_status_id":null,"created_at":"Wed
Nov 21 03:14:44 +0000 2012","retweet_count":0,"in_reply_to_user_id":null,"possibly_sensitive_editable":true,"id_str":"271089234113351680","place":null,"user":{"location":"","default_profile":true,"statuses_count":205,"profile_background_tile":false,"lang":"en","profile_link_color":"0084B4","id":500403658,"following":null,"favourites_count":0,"protected":false,"profile_text_color":"333333","description":"","contributors_enabled":false,"verified":false,"name":"Tahani
Dias","profile_sidebar_border_color":"C0DEED","profile_background_color":"C0DEED","created_at":"Thu
Feb 23 03:18:38 +0000 2012","default_profile_image":true,"followers_count":0,"geo_enabled":false,"profile_image_url_https":"https://si0.twimg.com/sticky/default_profile_images/default_profile_6_normal.png","profile_background_image_url":"http://a0.twimg.com/images/themes/theme1/bg.png","profile_background_image_url_https":"https://si0.twimg.com/images/themes/theme1/bg.png","follow_request_sent":null,"url":null,"utc_offset":null,"time_zone":null,"notifications":null,"profile_use_background_image":true,"friends_count":1,"profile_sidebar_fill_color":"DDEEF6","screen_name":"TahaniDias","id_str":"500403658","profile_image_url":"http://a0.twimg.com/sticky/default_profile_images/default_profile_6_normal.png","is_translator":false,"listed_count":0},"coordinates":null}
>> 11:14:33.975 [Twitter4J Async Dispatcher[0]] DEBUG twitter4j.StatusStreamImpl - Received:{"contributors":null,"text":"なんかまだまだあまちゃんだってさ!いー年してんのにさぁ~( ̄∇ ̄)オレ!!","geo":null,"retweeted":false,"in_reply_to_screen_name":null,"truncated":false,"entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_status_id_str":null,"id":271089234109149184,"source":"<a
href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android<\/a>","in_reply_to_user_id_str":null,"favorited":false,"in_reply_to_status_id":null,"created_at":"Wed
Nov 21 03:14:44 +0000 2012","retweet_count":0,"in_reply_to_user_id":null,"id_str":"271089234109149184","place":null,"user":{"location":"","default_profile":true,"statuses_count":574,"profile_background_tile":false,"lang":"ja","profile_link_color":"0084B4","profile_banner_url":"https://si0.twimg.com/profile_banners/589547664/1349184536","id":589547664,"following":null,"favourites_count":180,"protected":false,"profile_text_color":"333333","description":"BLとT&Bにハマった遅咲き主腐(○´∀`○)漫画・アニメ大好きです♪恋する暴君に恋して腰乃キャラに萌えて明日美子センセを知ってレオパードに埋もれ純情シリーズは王道!","contributors_enabled":false,"verified":false,"name":"にえ(∂ε∂)","profile_sidebar_border_color":"C0DEED","profile_background_color":"C0DEED","created_at":"Thu
May 24 22:14:33 +0000 2012","default_profile_image":false,"followers_count":13,"geo_enabled":false,"profile_image_url_https":"https://si0.twimg.com/profile_images/2316208106/YJ73GkSI_normal","profile_background_image_url":"http://a0.twimg.com/images/themes/theme1/bg.png","profile_background_image_url_https":"https://si0.twimg.com/images/themes/theme1/bg.png","follow_request_sent":null,"url":null,"utc_offset":null,"time_zone":null,"notifications":null,"profile_use_background_image":true,"friends_count":44,"profile_sidebar_fill_color":"DDEEF6","screen_name":"nienieshufoo","id_str":"589547664","profile_image_url":"http://a0.twimg.com/profile_images/2316208106/YJ73GkSI_normal","is_translator":false,"listed_count":0},"coordinates":null}
>> 11:14:33.976 [Twitter4J Async Dispatcher[0]] DEBUG twitter4j.StatusStreamImpl - Received:{"contributors":null,"text":"الصدق
منجاة","geo":null,"retweeted":false,"in_reply_to_screen_name":null,"truncated":false,"entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_status_id_str":null,"id":271089234104971264,"source":"web","in_reply_to_user_id_str":null,"favorited":false,"in_reply_to_status_id":null,"created_at":"Wed
Nov 21 03:14:44 +0000 2012","retweet_count":0,"in_reply_to_user_id":null,"id_str":"271089234104971264","place":null,"user":{"location":"مواطنون
بلا هوية","default_profile":false,"statuses_count":4724,"profile_background_tile":false,"lang":"en","profile_link_color":"1F98C7","id":325234803,"following":null,"favourites_count":24,"protected":false,"profile_text_color":"663B12","description":"لا
تخف من مواجهة الحياة، فإن بدا عليك الخوف زادت عليك
الصعاب ","contributors_enabled":false,"verified":false,"name":"فيصل العنزي","profile_sidebar_border_color":"C6E2EE","profile_background_color":"C6E2EE","created_at":"Mon
Jun 27 23:37:02 +0000 2011","default_profile_image":false,"followers_count":1133,"geo_enabled":true,"profile_image_url_https":"https://si0.twimg.com/profile_images/2355004472/wxcpi93w2l6iywq0own4_normal.jpeg","profile_background_image_url":"http://a0.twimg.com/images/themes/theme2/bg.gif","profile_background_image_url_https":"https://si0.twimg.com/images/themes/theme2/bg.gif","follow_request_sent":null,"url":"http://bedoon.org/ar/","utc_offset":-18000,"time_zone":"Quito","notifications":null,"profile_use_background_image":true,"friends_count":1935,"profile_sidebar_fill_color":"DAECF4","screen_name":"moutfael","id_str":"325234803","profile_image_url":"http://a0.twimg.com/profile_images/2355004472/wxcpi93w2l6iywq0own4_normal.jpeg","is_translator":false,"listed_count":0},"coordinates":null}
>> 11:14:33.976 [Twitter4J Async Dispatcher[0]] DEBUG twitter4j.StatusStreamImpl - Received:{"contributors":null,"text":"is
Wendy ignoring me ;n; I'm sorry, Wendy, if I made you mad. ;n;","geo":null,"retweeted":false,"in_reply_to_screen_name":null,"truncated":false,"entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_status_id_str":null,"id":271089234100764672,"source":"web","in_reply_to_user_id_str":null,"favorited":false,"in_reply_to_status_id":null,"created_at":"Wed
Nov 21 03:14:44 +0000 2012","retweet_count":0,"in_reply_to_user_id":null,"id_str":"271089234100764672","place":null,"user":{"location":"New
Mexico, USA","default_profile":false,"statuses_count":30563,"profile_background_tile":true,"lang":"en","profile_link_color":"B40B43","profile_banner_url":"https://si0.twimg.com/profile_banners/34846556/1349300474","id":34846556,"following":null,"favourites_count":64,"protected":false,"profile_text_color":"362720","description":"Evil
Princess. 48family. Nogizaka46. Hello!Project. Jpop. Kpop. Gravure. Super Sentai. Animanga.
Britney. No Doubt.","contributors_enabled":false,"verified":false,"name":"Haru","profile_sidebar_border_color":"CC3366","profile_background_color":"FF6699","created_at":"Fri
Apr 24 04:24:50 +0000 2009","default_profile_image":false,"followers_count":184,"geo_enabled":true,"profile_image_url_https":"https://si0.twimg.com/profile_images/2707610162/2b6b8c6b6e3fa9f0210e961951703946_normal.png","profile_background_image_url":"http://a0.twimg.com/profile_background_images/61266557/59479d9d.jpg","profile_background_image_url_https":"https://si0.twimg.com/profile_background_images/61266557/59479d9d.jpg","follow_request_sent":null,"url":"http://flavors.me/romanceirane","utc_offset":-25200,"time_zone":"Mountain
Time (US & Canada)","notifications":null,"profile_use_background_image":true,"friends_count":302,"profile_sidebar_fill_color":"E5507E","screen_name":"romanceirane","id_str":"34846556","profile_image_url":"http://a0.twimg.com/profile_images/2707610162/2b6b8c6b6e3fa9f0210e961951703946_normal.png","is_translator":false,"listed_count":8},"coordinates":null}
>> 
>> 
>> Thanks.
>> Yu
> 
> 
> 
> -- 
> Sincerely,
> Zheng Yu
> Mobile:  (852) 60670059
> Email:    bearzheng2011@gmail.com
> 
> 
> 


Mime
View raw message