首页 文章 精选 留言 我的

精选列表

搜索[异步方法],共10000篇文章
优秀的个人博客,低调大师

android AsyncTask 使用方法

/** * Http请求 * */ public class HttpAsyncTask extends AsyncTask<String, Void, String> { public HttpAsyncTask(Context context) { } private OnResponseListener onResponseListener; @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... params) { // 获取网页html数据 String result = HttpUtil.httpGet(params[0]); return result; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); if (null != onResponseListener) { if (null == result) { onResponseListener.onResponse(null); } else { onResponseListener.onResponse(result); } } } public OnResponseListener getResponseListener() { return onResponseListener; } public void setOnResponseListener(OnResponseListener onResponseListener) { this.onResponseListener = onResponseListener; } } 捐助开发者 在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。 谢谢您的赞助,我会做的更好!

优秀的个人博客,低调大师

Flume数据导入ODPS方法

一、简介 Apache Flume是一个分布式的、可靠的、可用的系统,可用于从不同的数据源中高效地收集、聚合和移动海量日志数据到集中式数据存储系统。 ODPS Sink是基于ODPS DataHub Service开发的Flume插件,可以将Flume的Event数据导入到ODPS中。插件兼容Flume的原有功能特性,支持ODPS表自定义分区、且可以自动创建分区。 二、环境要求1、JDK(1.6以上,推荐1.7)2、Flume-NG 1.x 三、插件部署1、下载ODPS Sink插件并解压:aliyun-odps-flume-plugin2、Flume-NG 1.x下载:https://flume.apache.org/download.html(1)下载 apache-flume-1.6.0-bin.tar.gz(2)下载apache-flume-1.6.0-src.tar.gz3、Flume的安装 (1) 解压apache-flume-1.6.0-src.tar.gz和apache-flume-1.6.0-bin.tar.gz (2) 将apache-flume-1.6.0-src中的文件复制到apache-flume-1.6.0-bin中4、部署ODPS Sink插件:将文件夹odps_sink移动到Apache Flume安装目录下:$ mkdir {YOUR_APACHE_FLUME_DIR}/plugins.d$mv odps_sink/ { YOUR_APACHE_FLUME_DIR }/plugins.d/移动后,核验ODPS Sink插件是否已经在相应目录:$ ls { YOUR_APACHE_FLUME_DIR}/plugins.dodps_sink部署完成后,只需要在Flume的配置文件中将sink的type字段配置为:com.aliyun.odps.flume.sink.OdpsSink即可使用 四、配置示例例:将日志文件中的结构化数据进行解析,并上传到ODPS表中需要上传的日志文件格式如下(每行为一条记录,字段之间逗号分隔): test_basic.log some,log,line1some,log,line2...第一步、在ODPS 的 project创建ODPS Datahub表建表语句如下所示:CREATE TABLE hub_table_basic (col1 STRING, col2 STRING) PARTITIONED BY (pt STRING) INTO 1 SHARDS HUBLIFECYCLE 1; 第二步、创建Flume作业配置文件:在Flume安装目录的conf/文件夹下创建名为odps_basic.conf的文件,并输入内容如下: odps_basic.conf A single-node Flume configuration for ODPS Name the components on this agent a1.sources = r1a1.sinks = k1a1.channels = c1 Describe/configure the source a1.sources.r1.type = execa1.sources.r1.command = cat {YOUR_LOG_DIRECTORY}/test_basic.log Describe the sink a1.sinks.k1.type = com.aliyun.odps.flume.sink.OdpsSinka1.sinks.k1.accessID = {YOUR_ALIYUN_ODPS_ACCESS_ID}a1.sinks.k1.accessKey = {YOUR_ALIYUN_ODPS_ACCESS_KEY}a1.sinks.k1.odps.endPoint = http://service.odps.aliyun.com/apia1.sinks.k1.odps.datahub.endPoint = http://dh.odps.aliyun.coma1.sinks.k1.odps.project = {YOUR_ALIYUN_ODPS_PROJECT}a1.sinks.k1.odps.table = hub_table_basica1.sinks.k1.odps.partition = 20150814a1.sinks.k1.batchSize = 100a1.sinks.k1.serializer = DELIMITEDa1.sinks.k1.serializer.delimiter = ,a1.sinks.k1.serializer.fieldnames = col1,,col2a1.sinks.k1.serializer.charset = UTF-8a1.sinks.k1.shard.number = 1a1.sinks.k1.shard.maxTimeOut = 60a1.sinks.k1.autoCreatePartition = true Use a channel which buffers events in memory a1.channels.c1.type = memorya1.channels.c1.capacity = 1000a1.channels.c1.transactionCapacity = 1000 Bind the source and sink to the channel a1.sources.r1.channels = c1a1.sinks.k1.channel = c1 第三步:启动Flume启动Flume并指定agent的名称和配置文件路径,-Dflume.root.logger=INFO,console选项可以将日志实时输出到控制台。$ cd { YOUR_APACHE_FLUME_DIR}$ bin/flume-ng agent -n a1 -c conf -f conf/odps_basic.conf -Dflume.root.logger=INFO,console写入成功,显示日志如下:...Write success. Event count: 2...在ODPS Datahub表中即可查到数据; 多数据源上传到ODPS多个数据上传到odps,只需要配置对应的source和channel,可以有一下几种上传方式:(1) 多个source和一个channel和一个sink (2) 多个source和多个channel和一个sink (3) 多个source,多个channel和多个sink,输出到多个地方存储 (4)多个agent的复杂情况: 下面给出(1)中情况的配置: odps_basic.conf A single-node Flume configuration for ODPS Name the components on this agent a1.sources = r1 r2a1.sinks = k1a1.channels = c1 Describe/configure the source a1.sources.r1.type = execa1.sources.r1.command = cat {YOUR_LOG_DIRECTORY}/test_basic.log source2的配置 a1.sources.r2.type = execa1.sources.r2.command = cat {YOUR_LOG_DIRECTORY}/test_basic2.log Describe the sink a1.sinks.k1.type = com.aliyun.odps.flume.sink.OdpsSinka1.sinks.k1.accessID = {YOUR_ALIYUN_ODPS_ACCESS_ID}a1.sinks.k1.accessKey = {YOUR_ALIYUN_ODPS_ACCESS_KEY}a1.sinks.k1.odps.endPoint = http://service.odps.aliyun.com/apia1.sinks.k1.odps.datahub.endPoint = http://dh.odps.aliyun.coma1.sinks.k1.odps.project = {YOUR_ALIYUN_ODPS_PROJECT}a1.sinks.k1.odps.table = hub_table_basica1.sinks.k1.odps.partition = 20150814a1.sinks.k1.batchSize = 100a1.sinks.k1.serializer = DELIMITEDa1.sinks.k1.serializer.delimiter = ,a1.sinks.k1.serializer.fieldnames = col1,,col2a1.sinks.k1.serializer.charset = UTF-8a1.sinks.k1.shard.number = 1a1.sinks.k1.shard.maxTimeOut = 60a1.sinks.k1.autoCreatePartition = true Use a channel which buffers events in memory a1.channels.c1.type = memorya1.channels.c1.capacity = 1000a1.channels.c1.transactionCapacity = 1000 Bind the source and sink to the channel a1.sources.r1.channels = c1a1.sinks.k1.channel = c1 source2的channel a1.sources.r2.channels = c2 可能遇到的问题:1、在数据sink阶段报错,数据无法传递这个错误是由于数据的最上面加了一行注释,它默认读取改行导致数据的行数与配置文件中 配置的行数不一致,所以报上面这个错,删出上面的注释行问题就解决了。 2、OOM 问题:flume 报错:java.lang.OutOfMemoryError: GC overhead limit exceeded或者:java.lang.OutOfMemoryError: Java heap spaceException in thread "SinkRunner-PollingRunner-DefaultSinkProcessor" java.lang.OutOfMemoryError: Java heap spaceFlume 启动时的最大堆内存大小默认是 20M,线上环境很容易 OOM,因此需要你在 flume-env.sh 中添加 JVM 启动参数: JAVA_OPTS="-Xms8192m -Xmx8192m -Xss256k -Xmn2g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit"然后在启动 agent 的时候一定要带上 -c conf 选项,否则 flume-env.sh 里配置的环境变量不会被加载生效

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册