Kane Xie


  • 首页

  • 标签

  • 归档

  • 搜索

Scala入门(二):流程控制

发表于 2015-08-27 | | 阅读次数:

最近在做一个spark项目,顺便分享一下我的Scala入门过程。这一系列文章假定读者有一定的java或者其他面向对象编程语言基础。本文主要介绍Scala的流程控制和异常处理。

先上一段代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
object TestScala2 {  
def main(args: Array[String]): Unit = {
//test 'for'
for (i <- 1 to 10) println(i)
//test 'dowhile'
var line = ""
do {
line = StdIn.readLine()
println(line)
} while (line != "")
//test 'if else'
val a = (Math.random() * 10).toInt;
val result = if (a % 2 == 0) "even:" + a else "odd:" + a
println(result)
//test 'try catch finally'
try {
//....
throw new Exception("--exception message--")
} catch {
case e: Exception => println("the exception is " + e.getMessage)
} finally {
println("finally")
}
}
}
阅读全文 »

Scala入门(一):函数定义

发表于 2015-08-26 | | 阅读次数:

最近在做一个spark项目,顺便分享一下我的scala入门过程。这一系列文章假定读者有一定的java或者其他面向对象编程语言基础。本文主要介绍scala的函数定义。

按惯例,先来一段HelloWorld

1
2
3
4
5
6
7
8
9
object TestScala1 {  
def main(args: Array[String]): Unit = {
val s = "Hello World!";
show(s);
}
def show(s: String): Unit = {
println(s)
}
}
阅读全文 »

spark WARN TaskSchedulerImpl: Initial job has not accepted any resources

发表于 2015-08-06 | | 阅读次数:

在本地提交一个spark job,出现如下错误

1
WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory
阅读全文 »

rest service + spring boot + docker

发表于 2015-08-05 | | 阅读次数:

开发 -> 测试 -> 部署,这是软件开发一般的简化流程,作为开发者我们总是希望能专注于开发,但往往会被一些开发之外的问题所折磨,比如繁多的spring依赖和不同的环境配置。带着这个问题,本文介绍运用springboot和docker开发和构建一个rest风格的web应用。

阅读全文 »

kafka实时监控

发表于 2015-07-28 | | 阅读次数:

在kafka的开发和维护中,我们经常需要了解kafka topic以及连接在其上的consumer的实时信息,比如logsize,offset,owner等。为此kafka提供了ConsumerOffsetChecker,它的用法很简单

bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group <group>

输出结果类似于

Group Topic Pid Offset logSize Lag Owner
Group1 a.topic 0 2 2 0 none
Group1 a.topic 1 0 0 0 none
Group1 a.topic 2 2 2 0 none

阅读全文 »

Hbase Rest API : Hbase管理

发表于 2015-07-21 | | 阅读次数:

在上一篇关于Hbase Rest API的文章中介绍了如何查询数据,本章将介绍其Hbase Admin的功能。

查询软件版本

语法:GET /version

范例:curl http://localhost:8000/version

输出结果:

{“@Stargate”:”0.0.1”,”@OS”:”Linux 2.6.18-128.1.6.el5.centos.plusxen amd64”,”@
JVM”:”Sun Microsystems Inc. 1.6.0_13-11.3-b02”,”@Jetty”:”6.1.14”,”@Jersey”:”1
.1.0-ea”}

阅读全文 »

AspectJ+Javasist记录日志

发表于 2015-07-16 | | 阅读次数:

在项目中碰到这样一个需求,对一个服务类的每一个方法,在方法开始和结束的时候分别记录一条日志,内容包括方法名,参数名+参数值以及方法执行的时间。

1
2
3
4
5
6
7
8
@Override  
public String get(String key) {
// long start = System.currentTimeMillis();
// System.out.println("Begin Method = get, Args = [key=" + key + "]");
String value = props.getProperty(key);
// System.out.println("End Method = get, Args = [key=" + key + "], Cost=" + (System.currentTimeMillis() - start)+ "ms");
return value;
}
阅读全文 »

Hbase Rest API : 数据查询

发表于 2015-07-13 | | 阅读次数:

hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。

启动命令:./bin/hbase rest start -p <port>

默认端口8080.

阅读全文 »

Spring boot内嵌的tomcat启动失败

发表于 2015-07-10 | | 阅读次数:

根据这篇guide创建了一个简单的spring boot应用,能运行且成功的访问。但移植到现有项目(基于hbase)中的时候,却报出以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SEVERE: A child container failed during start  
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:801)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
... 6 more
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.addServlet(Ljava/lang/String;Ljavax/servlet/Servlet;)Ljavax/servlet/ServletRegistration$Dynamic;
at org.springframework.boot.context.embedded.ServletRegistrationBean.onStartup(ServletRegistrationBean.java:156)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext$1.onStartup(EmbeddedWebApplicationContext.java:219)
at org.springframework.boot.context.embedded.tomcat.ServletContextInitializerLifecycleListener.lifecycleEvent(ServletContextInitializerLifecycleListener.java:54)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5343)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
阅读全文 »

kafka consumer防止数据丢失

发表于 2015-07-07 | | 阅读次数:

kafka最初是被LinkedIn设计用来处理log的分布式消息系统,因此它的着眼点不在数据的安全性(log偶尔丢几条无所谓),换句话说kafka并不能完全保证数据不丢失。

尽管kafka官网声称能够保证at-least-once,但如果consumer进程数小于partition_num,这个结论不一定成立。

阅读全文 »
1…678
Kane Xie

Kane Xie

不吃早餐才是一件很嘻哈的事

74 日志
29 标签
GitHub E-Mail
© 2015 — 2019 Kane Xie
蚂蚁金服大量职位内推,请将简历投递至kane.xiejing@qq.com,欢迎你的加入!