首页 文章 精选 留言 我的

精选列表

搜索[接口文档],共10000篇文章
优秀的个人博客,低调大师

Android 3.1 r1 中文API文档 (121) —— ResourceCursorTreeAdapter

结构 继承关系 public abstract classtResourceCursorTreeAdapterextendsCursorTreeAdapter java.lang.Object android.widget.BaseExpandableListAdapter android.widget.CursorTreeAdapter android.widget.ResourceCursorTreeAdapter 直接子类 SimpleCursorTreeAdapter 类概述 一个简单的可扩展的ExpandableListAdapter,通过在XML文件来创建views。你可以指定一个定义了views外观的XML文件。 构造函数 publicResourceCursorTreeAdapter(Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, int childLayout, int lastChildLayout) 构造函数。 参数 context和正在运行的SimpleListItemFactory关联的ListView的上下文 cursor数据库游标 collapsedGroupLayout定义了收缩组的视图布局文件的资源标识 expandedGroupLayout定义了展开组的视图布局文件的资源标识 childLayout定义了除了最后一个的所有子视图的布局文件的资源标识 lastChildLayout定义了一组中最后一个子视图的布局文件的资源标识 publicResourceCursorTreeAdapter(Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, int childLayout) 构造函数。 参数 context和正在运行的SimpleListItemFactory关联的ListView的上下文 cursor数据库游标 collapsedGroupLayout定义了收缩组的视图布局文件的资源标识 expandedGroupLayout定义了展开组的视图布局文件的资源标识 childLayout定义了除了最后一个的所有子视图的布局文件的资源标识 publicResourceCursorTreeAdapter(Context context, Cursor cursor, int groupLayout, int childLayout) 构造函数。 参数 context和正在运行的SimpleListItemFactory关联的ListView的上下文 cursor数据库游标 groupLayout为所有组定义了视图布局文件的资源标识 expandedGroupLayout 定义了展开组的视图布局文件的资源标识 childLayout定义了除了最后一个的所有子视图的布局文件的资源标识 公共方法 protected abstract ViewnewChildView(Context context, Cursor cursor, booleanisLastChild, ViewGroup parent) 创建一个新的子元素视图并持有指向数据的游标cursor。 参数 context应用程序上下文对象 cursor获取数据的游标对象,它已经移动到正确的位置 IsLastChild子元素是否处于组中的最后一个 parent新视图(View)所依附于的父对象。 返回值 新创建的视图 protected abstract ViewnewGroupView(Context context, Cursor cursor, booleanisExpanded, ViewGroup parent) 创建一个新的组视图并持有组中指向数据的游标cursor。 参数 context应用程序上下文对象 cursor获取数据的游标对象,它已经移动到正确的位置 isExpanded该组是否展开状态 parent新视图(View)所依附于的父对象。 返回值 新创建的视图 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582335,如需转载请自行联系原作者

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

Android2.2 API 中文文档系列(9) —— ZoomButton

正文 一、类结构 java.lang.Object android.view.View android.widget.ImageView android.widget.ImageButton android.widget.ZoomButton public class ZoomButton extends ImageButton implements View.OnLongClickListener 二、概述 缩放按钮,实际上是很普通的两个按钮,可以简单的理解为一个ImageButton加上一张缩放的图标。如下代码: 三、公共方法 public boolean dispatchUnhandledMove (View focused, int direction) 对于获得焦点的View,这个方法是捕获箭头事件最后的机会。这就是在获取焦点的View没有在内部处理、系统在要求的方向也不能找到一个新的View让其获得焦点时调用。 参数 focused 当前焦点View direction焦点移动的方向。其中之一:FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT和FOCUS_RIGHT. 返回值 如果为true,将清除这个View未处理的事件。 (注:从源码中可看出ZoomButton覆盖了父类的该方法,在super之前调用了一下clearFocus,如下代码: public boolean onKeyUp (int keyCode, KeyEvent event) 默认实现至KeyEvent.Callback.onKeyMultiple():当点击执行时KEYCODE_DPAD_CENTER或KEYCODE_ENTER被释放。 参数 keyCode按下按钮代表的键值,属于KeyEvent (注:KeyEvent的静态属性)。 event 该KeyEvent对象,定义按钮动作 返回值 如果您处理这一事件中,返回true。如果你想允许事件被下一个接收器处理,返回false。 public boolean onLongClick (View v) 当一个View被长按时调用。 参数 v 被长按的View。 返回值 如果返回true,这个回调在长按时被执行了,反之返回false. public boolean onTouchEvent (MotionEvent event) 实现这个方法处理触摸屏移动事件。 参数 event 该移动事件. 返回值 如果是true,该事件是触摸,反之返回false。 public void setEnabled (boolean enabled) 设置这个View启用状态。 参数 enabled设置true表示启用,反之表示禁用。 public void setZoomSpeed (long speed) (注:单独使用无实际意义,可以用来存放临时数据) 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582701,如需转载请自行联系原作者

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

Android2.2 API 中文文档系列(5) —— View

正文 一、结构 java.lang.Object android.view.View 已知直接子类: AnalogClock, ImageView, KeyboardView, ProgressBar, SurfaceView,TextView, ViewGroup, ViewStub 已知间接子类: AbsListView, AbsSeekBar, AbsSpinner, AbsoluteLayout, AdapterView<T extends Adapter>, AppWidgetHostView, AutoCompleteTextView, Button, CheckBox, CheckedTextView, Chronometer, CompoundButton, DatePicker, DialerFilter, DigitalClock,EditText, ExpandableListView, ExtractEditText, FrameLayout, GLSurfaceView, Gallery, GestureOverlayView, GridView, HorizontalScrollView, ImageButton, ImageSwitcher, LinearLayout, ListView, MediaController, MultiAutoCompleteTextView, QuickContactBadge, RadioButton, RadioGroup, RatingBar, RelativeLayout, ScrollView, SeekBar, SlidingDrawer, Spinner, TabHost, TabWidget, TableLayout, TableRow, TextSwitcher, TimePicker, ToggleButton, TwoLineListItem, VideoView, ViewAnimator, ViewFlipper, ViewSwitcher, WebView, ZoomButton, ZoomControls 二、xml属性 属性名称 描述 android:background 设置背景色/背景图片。可以通过以下两种方法设置背景为透明:"@android:color/transparent"和"@null"。注意TextView默认是透明的,不用写此属性,但是Buttom/ImageButton/ImageView想透明的话就得写这个属性了。 android:clickable 是否响应点击事件。 android:contentDescription 设置View的备注说明,作为一种辅助功能提供,为一些没有文字描述的View提供说明,如ImageButton。这里在界面上不会有效果,自己在程序中控制,可临时放一点字符串数据。 android:drawingCacheQuality 设置绘图时半透明质量。有以下值可设置:auto(默认,由框架决定)/high(高质量,使用较高的颜色深度,消耗更多的内存/low(低质量,使用较低的颜色深度,但是用更少的内存)。 android:duplicateParentState 如果设置此属性,将直接从父容器中获取绘图状态(光标,按下等)。见下面代码部分,注意根据目前测试情况仅仅是获取绘图状态,而没有获取事件,也就是你点一下LinearLayout时Button有被点击的效果,但是不执行点击事件。 android:fadingEdge 设置拉滚动条时,边框渐变的放向。none(边框颜色不变),horizontal(水平方向颜色变淡),vertical(垂直方向颜色变淡)。参照fadingEdgeLength的效果图 android:fadingEdgeLength 设置边框渐变的长度。 android:fitsSystemWindows 设置布局调整时是否考虑系统窗口(如状态栏) android:focusable 设置是否获得焦点。若有requestFocus()被调用时,后者优先处理。注意在表单中想设置某一个如EditText获取焦点,光设置这个是不行的,需要将这个EditText前面的focusable都设置为false才行。在Touch模式下获取焦点需要设置focusableInTouchMode为true。 android:focusableInTouchMode 设置在Touch模式下View是否能取得焦点。 android:hapticFeedbackEnabled 设置触感反馈。(译者注:按软键以及进行某些UI交互时振动,暂时不知道用法,大家可以找找performHapticFeedback或HapticFeedback这个关键字的资料看看。) android:id 给当前View设置一个在当前layout.xml中的唯一编号,可以通过调用View.findViewById()或Activity.findViewById()根据这个编号查找到对应的View。不同的layout.xml之间定义相同的id不会冲突。格式如”@+id/btnName” android:isScrollContainer 设置当前View为滚动容器。这里没有测试出效果来,ListView/ GridView/ ScrollView根本就不用设置这个属性,而EdidText设置android:scrollbars也能出滚动条。 android:keepScreenOn View在可见的情况下是否保持唤醒状态。常在LinearLayout使用该属性,但是模拟器这里没有效果。 android:longClickable 设置是否响应长按事件. android:minHeight 设置视图最小高度 android:minWidth 设置视图最小宽度度 android:nextFocusDown 设置下方指定视图获得下一个焦点。焦点移动是基于一个在给定方向查找最近邻居的算法。如果指定视图不存在,移动焦点时将报运行时错误。可以设置imeOptions= actionDone,这样输入完即跳到下一个焦点。 android:nextFocusLeft 设置左边指定视图获得下一个焦点。 android:nextFocusRight 设置右边指定视图获得下一个焦点。 android:nextFocusUp 设置上方指定视图获得下一个焦点。 android:onClick 点击时从上下文中调用指定的方法。这里指定一个方法名称,一般在Activity定义符合如下参数和返回值的函数并将方法名字符串指定为该值即可: public void onClickButton(View view) android:onClick=” onClickButton” android:padding 设置上下左右的边距,以像素为单位填充空白。 android:paddingBottom 设置底部的边距,以像素为单位填充空白。 android:paddingLeft 设置左边的边距,以像素为单位填充空白。 android:paddingRight 设置右边的边距,以像素为单位填充空白。 android:paddingTop 设置上方的边距,以像素为单位填充空白。 android:saveEnabled 设置是否在窗口冻结时(如旋转屏幕)保存View的数据,默认为true,但是前提是你需要设置id才能自动保存,参见这里。 android:scrollX 以像素为单位设置水平方向滚动的的偏移值,在GridView中可看的这个效果。 android:scrollY 以像素为单位设置垂直方向滚动的的偏移值 android:scrollbarAlwaysDraw HorizontalTrack 设置是否始终显示垂直滚动条。这里用ScrollView、ListView测试均没有效果。 android:scrollbarAlwaysDraw VerticalTrack 设置是否始终显示垂直滚动条。这里用ScrollView、ListView测试均没有效果。 android:scrollbarDefault DelayBeforeFade 设置N毫秒后开始淡化,以毫秒为单位。 android:scrollbarFadeDuration 设置滚动条淡出效果(从有到慢慢的变淡直至消失)时间,以毫秒为单位。Android2.2中滚动条滚动完之后会消失,再滚动又会出来,在1.5、1.6版本里面会一直显示着。 android:scrollbarSize 设置滚动条的宽度。 android:scrollbarStyle 设置滚动条的风格和位置。设置值:insideOverlay、insideInset、outsideOverlay、outsideInset。这里没有试出太多效果,以下依次是outsideOverlay与outsideInset效果截图比较: android:scrollbarThumbHorizontal 设置水平滚动条的drawable。 android:scrollbarThumbVertical 设置垂直滚动条的drawable. android:scrollbarTrackHorizontal 设置水平滚动条背景(轨迹)的色drawable android:scrollbarTrackVertical 设置垂直滚动条背景(轨迹)的drawable注意直接 设置颜色值如”android:color/white”将得出很难看的效果, 甚至都不理解这个属性了,这里可以 参见ApiDemos里res/drawable/ scrollbar_vertical_thumb.xml和 scrollbar_vertical_track.xml,设置代码为: android:scrollbarTrackVertical ="@drawable/scrollbar_vertical_track" android:scrollbars 设置滚动条显示。none(隐藏),horizontal(水平),vertical(垂直)。见下列代码演示使用该属性让EditText内有滚动条。但是其他容器如LinearLayout设置了但是没有效果。 android:soundEffectsEnabled 设置点击或触摸时是否有声音效果 android:tag 设置一个文本标签。可以通过View.getTag()或for with View.findViewWithTag()检索含有该标签字符串的View。但 一般最好通过ID来查询View,因为它的速度更快,并且允 许编译时类型检查。 android:visibility 设置是否显示View。设置值:visible(默认值,显示),invisible(不显示,但是仍然占用空间),gone (不显示,不占用空间) 四、代码 4.1 android:duplicateParentState < LinearLayout android:clickable ="true" android:background ="#ff0fff" android:layout_width ="100dp" android:layout_height ="100dp" > < Button android:duplicateParentState ="true" android:layout_width ="wrap_content" android:layout_height ="wrap_content" /> </ LinearLayout > 4.2 android:scrollbars < EditText android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:minHeight ="50dp" android:background ="@android:drawable/editbox_background" android:scrollbars ="vertical" android:maxLines ="4" > </ EditText > 五、遗留问题 5.1 以下几个属性翻遍了资料试了很多次都没有效果,只能暂时搁置,以后补上,也欢迎的大家提供意见和线索,分享大家的经验: android:scrollbarAlwaysDrawHorizontalTrack android:scrollbarAlwaysDrawVerticalTrack android:isScrollContainer 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582718,如需转载请自行联系原作者

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

Android2.2 API 中文文档系列(7) —— ImageButton

正文 一、结构 java.lang.Objectandroid.view.Viewandroid.widget.ImageView android.widget.ImageButton 已知直接子类: ZoomButton 二、类摘要 显示一个可以被用户点击的图片按钮,默认情况下,ImageButton看起来像一个普通的按钮,在不同状态(如按下)下改变背景颜色。按钮的图片可用通过<ImageButton> XML元素的android:src属性或setImageResource(int)方法指定。 要删除按钮的背景,可以定义自己的背景图片或设置背景为透明。(注:请看 原图和图片按钮,默认图片周围有按钮的背景,选中之后为黄色) 为了表示不同的按钮状态(焦点,选择等),你可以为各种状态定义不同的图片。例如,定义蓝色图片为默认图片,黄色图片为获取时焦点时显示的图片,黄色图片为按钮被按下时显示的图片。一个简单的方法可以做到这点——通过XML的"selector."配置,如下: 保存上面的XML到res/drawable/文件夹下(注:注意文件名大小写!),将该文件名作为一个参数设置到ImageButton的android:src属性(注:如xml文件名为myselector.xml,那么这里设置为"@drawable/myselector",设置android:background也是可以的,但效果不太一样)。Android根据按钮的状态改变会自动的去XML中查找相应的图片以显示。 <item>元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressed和focused都判断失败之后才会被采用。(注:例如按钮被按下时是同时获得焦点的,但是获得焦点并不一定按了按钮,所以这里会按顺序查找,找到合适的就不往下找了。这里按钮被点击了,那么第一个将被选中,且不再在后面查找其他状态。) 参见Form Stuff tutorial。 三、 继承自父类的方法 public void setAlpha (int alpha) 设置ImageButton图片的透明度(注意不是背景图片的)。效果如图: 参数 alpha 透明值0~255,0为完全透明,255为完全不透明 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582708,如需转载请自行联系原作者

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

Androids含文档erver结束(工具包 Httputils)两

在同server在...的基础上,本文client还登录界面 Andriod简单http get请求基础上,用户注冊后跳转到下载界面,本文下载界面仅仅有两个View,一个是textView显示注冊后username(本文未做登录界面,方法与注冊类似。仅仅是在server端查询数据库中username,password是否正确)。还有一个为下载button。点击后下载到sd卡中。 以下先将工具包,该类封装了Http请求,本文使用get方法,使用HttpURLConnection类来负责详细请求。 httpUtils类中加入sendDownloadPost方法 详细代码例如以下: public static void sendDownloadPost(URL urls) { InputStream inputStream=null; //String path="http://192.168.0.179:8080/Myweb/download.do"; OutputStream outputStream=null; try { //url = new URL(urls); //本文採用HttpURLConnection,HttpClient一样能够 HttpURLConnection connection=(HttpURLConnection) urls.openConnection(); connection.setRequestMethod("GET"); //超时请求设置为3s connection.setConnectTimeout(3000); //设置响应时间10s connection.setReadTimeout(10000); connection.setDoInput(true); connection.setDoOutput(true); //获取返回码 int responseCode=connection.getResponseCode(); //请求正确 if(responseCode==200) { Log.d(TAG, "返回正确!。"); inputStream=new BufferedInputStream(connection.getInputStream()); //生成sd卡文件路径 File file=new File(Environment.getExternalStorageDirectory()+File.separator +"A.pdf"); outputStream=new BufferedOutputStream(new FileOutputStream(file)); byte[] str=new byte[2048]; int len=-1; if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { Log.d(TAG, "有权限"); //将inpustream写入到sd卡 while((len=inputStream.read(str))!=-1) { outputStream.write(str, 0, len); } } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(inputStream!=null) { try { inputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(outputStream!=null) { try { outputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return; } 友情提示:本文须要加入的权限有:internet訪问权限,SD卡文件读写权限,SD卡文件创建权限 详细在manifest.xml 加入例如以下: <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> ps:若想下载文件名称与server上文件名称同样,可在文件名称之前,中间处理了中文乱码问题 String filename = connection.getHeaderField("Content-Disposition"); filename=new String(filename.getBytes("iso8859-1"), "gbk"); filename=filename.split("filename=")[1]; 加入到 File file=new File(Environment.getExternalStorageDirectory()+File.separator +"A.pdf"); A.pdf阅读filename能够 版权声明:本文博客原创文章,博客,未经同意,不得转载。 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4676439.html,如需转载请自行联系原作者

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

Android2.2 API 中文文档系列(8) —— QuickContactBadge

正文 一、结构 java.lang.Object android.view.View android.widget.ImageView android.widget.QuickContactBadge 二、截图 说明:在andorid自带的ApiDomos的例子中有这个的代码:App/Activity/QuickContacktsDemo。注意需要android.permission.READ_CONTACTS权限,并且联系人里面有数据,并且联系人需要有手机号码,不然出来是一个空的(看代码可知)。 三、公共方法 public void assignContactFromEmail (String emailAddress, boolean lazyLookup) 指定联系人的电子邮箱地址。(注:它会先搜索这个号码,如果没有会提醒你是否添加到联系人,参见文章1) 参数 emailAddress 联系人的电子邮箱地址 lazyLookup 如果设置为true,将不会立即查找这个邮箱地址,直到View被点击时。(注:是否延迟匹配电子邮件) public void assignContactFromPhone (String phoneNumber, boolean lazyLookup) 为联系人指定一个电话号码。(注:参见文章1) 参数 phoneNumber联系人的电话号码 lazyLookup如果设置为true,将不会立即查找这个电话号码,直到View被点击时。 public void assignContactUri (Uri contactUri) 指定和QuickContactBadge关联的联系人URI。注意,这里只是显示QuickContact窗口,并不为你绑定联系人图片。 参数 contactUri CONTENT_URI或CONTENT_LOOKUP_URI其中一种风格的URI. public void onClick (View v) 当View被点击时调用。 参数 v 被点击的View. public void setExcludeMimes (String[] excludeMimes) 设置一组要排除不显示的MIMI类型列表。例如,可以隐藏Contacts.CONTENT_ITEM_TYPE类型的图标。(注:如果像如下设置: setExcludeMimes(new String[] { Contacts.CONTENT_ITEM_TYPE }) 即隐藏了上面截图的第二个,仅显示电话和短信两个图标) public void setMode (int size) 设置QuickContact的窗口模式。如下选项:MODE_SMALL、MODE_MEDIUM、MODE_LARGE。(注:默认为QuickContact.MODE_MEDIUM,设置为MODE_LARGE时会同时显示联系人名称) 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582706,如需转载请自行联系原作者

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

Hadoop-2.2.0中文文档—— Common - CLI MiniCluster

目的 使用 CLI MiniCluster, 用户能够简单地仅仅用一个命令就启动或关闭一个单一节点的Hadoop集群,不须要设置不论什么环境变量或管理配置文件。 CLI MiniCluster 同一时候启动一个YARN/MapReduce和HDFS集群。 这对那些想要高速体验一个真实的Hadoop集群或是測试依赖明显的Hadoop函数的非Java程序 的用户非常实用。 Hadoop Tarball 你须要从公布页获取tar包。或者。你能够从源代码中自己编译。 $ mvn clean install -DskipTests $ mvn package -Pdist -Dtar -DskipTests -Dmaven.javadoc.skip 注意:你须要事先安装有 protoc 2.5.0 。 tar包应该在hadoop-dist/target/文件夹. 执行 MiniCluster 从解压出的tar包的根文件夹。你能够用以下的命令启动 CLI MiniCluster : $ bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.2.0-tests.jar minicluster -rmport RM_PORT -jhsport JHS_PORT 在上面的命令演示样例中,RM_PORT和JHS_PORT应该由用户的port号替换。假设不指定。会随机使用空暇的port。 命令行參数中有一个数字,用户能够用来控制启动哪个服务。或者传递别的属性。可用的命令行參数例如以下: $ -D <property=value> Options to pass into configuration object $ -datanodes <arg> 启动多少个 datanodes (默认是 1) $ -format 格式化 DFS (默认是 false) $ -help 打印帮助选项 $ -jhsport <arg> JobHistoryServer 端口 (默认是 0--我们选的) $ -namenode <arg> namenode 的 URL (默认 要么是 DFS 集群,要么是暂时文件夹) $ -nnport <arg> NameNode 端口 (默认是 0--我们选的) $ -nodemanagers <arg> 要启动多少个 nodemanagers(默认是 1) $ -nodfs 不启动一个 mini DFS 集群 $ -nomr Don't start a mini MR cluster $ -rmport <arg> ResourceManager 端口 (默认是 0--我们选的) $ -writeConfig <path> 保存配置文件到这个XML文件中。 $ -writeDetails <path> 写出基本信息到这个JSON文件中。 要显示可用的參数的全列表。用户能够传-help參数给上面的命令。 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5389794.html,如需转载请自行联系原作者

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

Apache Storm 官方文档 —— 在生产环境中运行拓扑

在生产环境集群中运行拓扑的方式与本地模式非常相似,主要包括以下几个步骤: 1) 定义拓扑(如果使用 Java 进行开发就可以使用TopologyBuilder) 2) 使用StormSubmitter向集群提交拓扑。StormSubmitter接收拓扑名称、拓扑配置信息以及拓扑对象本身作为参数,如下所示: Config conf = new Config(); conf.setNumWorkers(20); conf.setMaxSpoutPending(5000); StormSubmitter.submitTopology("mytopology", conf, topology); 3) 将你的拓扑程序以及相关依赖库(除了 Storm 本身的依赖 —— 这些依赖已经添加到 Storm 的工作节点的 classpath 中了)打包为一个 jar 文件。 如果你使用 Maven 进行开发,可以使用Maven Assembly Plugin来打包,你需要做的仅仅是将下述插件配置添加到你的 pom.xml 中: <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.path.to.main.Class</mainClass> </manifest> </archive> </configuration> </plugin> 然后就可以运行mvn assembly:assembly来打包。请确保你已经在 dependencies 中排除了 Storm 本身的 jar 包。 4) 使用storm客户端向集群提交拓扑,在提交时需要指定好你的 jar 包的相关路径、主函数所在类名称以及其他一些需要的参数,下面是一个提交拓扑的例子: storm jar path/to/allmycode.jar org.me.MyTopology arg1 arg2 arg3 storm jar会将 jar 提交到集群中,同时配置StormSubmitter类来与正确的集群建立连接。在上面的例子里,上传 jar 包之后,storm jar就会使用 “arg1”、“arg2”、“arg3” 三个参数来运行org.me.MyTopology的 main 函数。 关于如何配置 Storm 客户端与 Storm 集群的交互的详细信息,请参阅配置开发环境一文。 常用配置 拓扑中有很多参数可以设置。你可以在这里找到完整的配置项列表。其中,以 “TOPOLOGY” 开头的参数可以被拓扑中的对应配置项覆盖(其他参数是集群的配置参数,不能被直接覆盖)。以下是拓扑中的一些常用参数: Config.TOPOLOGY_WORKERS:此项设置了可以用于执行拓扑的 worker 进程数。例如,如果你将该参数值设置为 25,那么在集群中就会有 25 个可以执行任务的 Java 进程。另外,如果你将拓扑的并行度设置成了 150,那么每个 worker 进程就会执行 6 个任务线程。 Config.TOPOLOGY_ACKERS:此项设置了用于跟踪 spout 发送的 tuple 树的 ack 任务数。Ackers 是 Storm 可靠性模型的重要组成部分,你可以在消息的可靠性保障一文中了解更多相信信息。 Config.TOPOLOGY_MAX_SPOUT_PENDING:此项设置了单个 Spout 任务能够挂起的最大的 tuple 数(tuple 挂起表示该 tuple 已经被发送但是尚未被 ack 或者 fail)。强烈建议设置此参数来防止消息队列的爆发性增长。 Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS:此项设置了 ackers 跟踪 tuple 的超时时间。默认值是 30 秒,对于大部分拓扑而言这个值基本上是不需要改动的。关于 Storm 的消息可靠性模型请参考消息的可靠性保障一文。 Config.TOPOLOGY_SERIALIZATIONS:此项用于在 Storm 中注册更多的序列化工具,这样你就可以使用自定义的序列化类型来处理 tuple。 Kill 拓扑 执行以下命令来 kill 拓扑: storm kill {topologyname} 其中topologyname就是你提交拓扑时使用的拓扑名称。 不过,在执行该命令后 Storm 不会马上 kill 掉该拓扑。Storm 会先停止所有 spouts 的活动,使得他们不能继续发送 tuple,然后 Storm 会等待Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS参数表示的一段时间,然后才会结束所有的 worker 进程。这可以保证拓扑在被 kill 之前可以有足够的时间完成已有的 tuple 的处理。 更新运行中的拓扑 目前只能通过先 kill 掉当前的拓扑再重新提交新拓扑的方式来更新运行中的拓扑。不过社区计划在将来实现一个storm swap命令来将一个运行中的拓扑替换为一个新的拓扑,尽可能减少停机时间,同时确保不会有两个拓扑同时处理 tuple 的情况发生。 监控拓扑 监控拓扑运行的最好方式是使用 Storm UI。Storm UI 可以显示任务中的错误信息以及每个运行中拓扑中每个组件的吞吐量与端到端延时的性能信息。 当然,你也可以通过查看在工作节点机器上的日志信息来了解拓扑运行情况。 转载自并发编程网 - ifeve.com

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

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等操作系统。

用户登录
用户注册