首页 文章 精选 留言 我的

精选列表

搜索[笔记软件],共10010篇文章
优秀的个人博客,低调大师

Android笔记:CoverFlow相关

====================效果一,修改getChildDrawingOrder方法================================= 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 26 27 28 29 30 31 32 // 重载视图显示顺序让左到中间显示,再到右到中间显示 protected int getChildDrawingOrder( int childCount, int i) { // long t = getSelectedItemId(); // int h = getSelectedItemPosition(); // if (i < childCount / 2) // { // return i; // } // return childCount - i - 1 + childCount / 2; // Reset the last position variable everytime we are starting a new // drawing loop if (i == 0 ) lastPosition = 0 ; int centerPosition = getSelectedItemPosition() - getFirstVisiblePosition(); if (i == childCount - 1 ) { return centerPosition; } else if (i >= centerPosition) { lastPosition++; return childCount - lastPosition; } else { return i; } } 修改后效果: ==============================参考资料=========================================== 1.Gallery重叠效果 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=97392&reltid=186440&pre_pos=8&ext= 2.Modifying Coverflow to use xml file http://stackoverflow.com/questions/16078716/modifying-coverflow-to-use-xml-file 3.使用Android自带Gallery组件实现CoverFlow,源码+解析 http://www.eoeandroid.com/thread-39709-1-1.html 4.Android实现CoverFlow效果 http://blog.csdn.net/jxsmallmouse/article/details/7732341 5.CoverFlow http://www.inter-fuser.com/2010/01/android-coverflow-widget.html http://www.inter-fuser.com/2010/02/android-coverflow-widget-v2.html 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1290635,如需转载请自行联系原作者

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

Android笔记:音量、AudioManager

相关代码: 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 26 27 28 29 30 31 32 private AudioManager audioManager; // 音量管理器 private int maxVolume; // 最大音量 private int currentVolume; // 当前音量 //监听音量控制进度条 private void listenVolumeSeekBar() { audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); //音量管理器 maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); // 获得最大音量 currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); // 获得当前音量 mVolumesetting_seekBar.setMax(maxVolume); mVolumesetting_seekBar.setProgress(currentVolume); mVolumesetting_seekBar.setOnSeekBarChangeListener( new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, AudioManager.FLAG_ALLOW_RINGER_MODES); } }); } 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1252250,如需转载请自行联系原作者

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

自学笔记:setTag、getTag

1.设置tag key的唯一性 官方的api文档:“The specified key should be an id declared in the resources of the application to ensure it is unique (see theID resource type). Keys identified as belonging to the Android framework or not associated with any package will cause anIllegalArgumentExceptionto be thrown.” 所以抛出IllegalArgumentException的原因就在于key不唯一,那么如何保证这种唯一性呢?定义一个final类型的int变量和硬编码一个值的方式都是行不通的。 如果只需要设置一个tag,那么直接调用setTag(Object tag)方法就可以轻松搞定,如果一定需要使用多个tag绑定,那么需要先在res/values/strings.xml中添加 <resources> <item type="id" name="tag_first"></item><item type="id" name="tag_second"></item> </resources> 使用的时候写成 imageView.setTag(R.id.tag_first,"Hello");imageView.setTag(R.id.tag_second,"Success"); 就可以了 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1215468,如需转载请自行联系原作者

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

Android菜单(个人笔记)

Android系统提供三种菜单: 1.选项菜单(Option Menu) 1.1图标菜单(Icon Menu) 通过菜单键直接打开的是图标菜单,顾名思义,图标菜单就是能够同时显示文字和图标的菜单,最多支持6个子项,如果子项多于6个,则需要扩展菜单显示其它的子项。。哇哈哈 1.2扩展菜单(Expanded Menu) 扩展菜单是垂直的列表型菜单,仅在图标菜单子项多于6个时才出现,通过点击图标菜单最后的子项More才能打开。扩展菜单不能显示图标,但支持单选框和复选框;相反,图标菜单支持显示图标,但不支持单选框和复选框。 2.子菜单(Submenu) 子菜单是能够显示更加详细信息的菜单子项,Android采用了浮动窗体的形式显示菜单子项。吼吼。。 子期间不支持嵌套,也就是说不能够在子菜单中再使用子菜单。 3.快捷菜单(Context Menu) 为了能够在Android应用程序中使用选项菜单,必须重载Activity的onCreateOptionsMenu()函数,该函数在用户首次使用选项菜单时被调用,一般用来初始化菜单子项的相关内容,包括设置菜单子项自身的子项ID和组ID,菜单子项显示的文字和图片等信息。 如果希望打开菜单时,能够动态的添加、删除菜单子项,或修改菜单的标题、图标和可见性等内容,则需要重载onPrepareOptionsMenu()函数,onPrepareOptionsMenu()函数的返回值的含义与onCreateOptionsMenu()函数相同,返回true则显示菜单,否则不显示 本文转自华华世界 51CTO博客,原文链接:http://blog.51cto.com/mzh3344258/733342,如需转载请自行联系原作者

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

Android开源:SlidingMenu笔记

SlidingMenu简介: SlidingMenu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作.目前有大量的应用都在使用这一效果。如Evernote、Google+、Foursquare等,国内的豌豆夹,人人,360手机助手等都使用SlidingMenu的界面方案。 项目下载地址:https://github.com/jfeinstein10/SlidingMenu注意: SlidingMenu依赖于另一个开源项目ActionBarSherlock,所以需要将ActionBarSherlock添加作为SlidingMenu的库工程,否则会报资源找不到错误。然后再将SlidingMenu添加到自己的工程中去。 SlidingMenu集成常见错误: Jar mismatch! Fix your dependencies:引用的工程和自身工程以来的jar包版本不一致导致的冲突。确保SlidingMenu和ActionBarSherLock所使用的jar包版本一致 如果使用到ActionBarSherLock的相关api,可能报找不到getSupportActionBar等ActionBarSherLock的方法。原因是使用ActionBarSherLock的Activity需继承于SherlockActivity,修改SlidingMenu library中的SlidingFragmentActivity,让它继承于SherlockFragmentActivity,重新编译library导入。SlidingMenu 常用属性介绍: menu.setMode(SlidingMenu.LEFT);//设置左滑菜单 menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都可以滑动 menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片 menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度 menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度 menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度 menu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度 menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上 menu.setMenu(R.layout.menu_layout);//设置menu的布局文件 menu.toggle();//动态判断自动关闭或开启SlidingMenu menu.showMenu();//显示SlidingMenu menu.showContent();//显示内容 menu.setOnOpenListener(onOpenListener);//监听slidingmenu打开 关于关闭menu有两个监听,简单的来说,对于menu close事件,一个是when,一个是after menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭时事件 menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭后事件 左右都可以划出SlidingMenu菜单只需要设置 menu.setMode(SlidingMenu.LEFT_RIGHT);属性,然后设置右侧菜单的布局文件 menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片 使用Fragment实现SlidingMenu: 1.首先Activity继承自SlidingMenu包下的SlidingFragmentActivity 2. setContentView(R.layout.content_frame);//该layout为一个全屏的FrameLayout 3. setBehindContentView(R.layout.menu_frame);//设置SlidingMenu使用的布局,同样是一个全屏的FrameLayout 4.设置SlidingMenu左侧菜单的Fragment 1 2 3 4 5 setBehindContentView(R.layout.menu_frame); FragmentTransactiont= this .getSupportFragmentManager().beginTransaction(); leftMenuFragment= new MenuFragment(); t.replace(R.id.menu_frame,leftMenuFragment); t.commit(); MenuFragment其实就是一个Fragment,显示一个ListView然后点击ListView的每一项的时候,通知Activity切换不同的Fragment为了看清效果,我们新建5个Frament,分别是Fragment1, Fragment2, Fragment3, Fragment4, Fragment5在SlidingMenu中用ListView显示。设置主页面显示的Fragment: 1 2 3 4 5 6 7 8 9 10 11 if (savedInstanceState== null ){ //==null的时候新建Fragment1 contentFragment= new Fragment1(); } else { //不等于null,直接get出来 //不等于null,找出之前保存的当前Activity显示的Fragment contentFragment=getSupportFragmentManager().getFragment(savedInstanceState, "contentFragment" ); } //设置内容Fragment getSupportFragmentManager() .beginTransaction() .replace(R.id.content_frame,contentFragment) .commit(); 在Activity的onSaveInstanceState中保存当前显示的FragmentgetSupportFragmentManager().putFragment(outState, "contentFragment", contentFragment);设置SlidingMenu属性sm = getSlidingMenu();//如果只显示左侧菜单就是用LEFT,右侧就RIGHT,左右都支持就LEFT_RIGHTsm.setMode(SlidingMenu.LEFT_RIGHT);//设置菜单滑动模式,菜单是出现在左侧还是右侧,还是左右两侧都有sm.setShadowDrawable(R.drawable.shadow);//设置阴影的图片资源sm.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度//sm.setBehindWidth(200);//设置菜单的宽sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的区域 支持右侧划出菜单: //SlidingMenu可以同时支持划出左右两侧的菜单,互不冲突,而且动画优美,体验良好。 sm.setSecondaryMenu(R.layout.menu_frame2);//设置右侧菜单 sm.setSecondaryShadowDrawable(R.drawable.shadowright);//设置右侧菜单阴影的图片资源 //右侧SlidingMenu的Fragment getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame2, new SampleListFragment()).commit(); 设置ActionBar可以被点击: getSupportActionBar().setHomeButtonEnabled(true);//actionbar主按键可以被点击 getSupportActionBar().setDisplayHomeAsUpEnabled(true);//显示向左的图标 setSlidingActionBarEnabled(false);//左右两侧slidingmenu的fragment是否显示标题栏 切换主页面显示的Fragment: public void switchContent(Fragment f) { //给内容Fragment赋值,并在onSaveInstanceState时保存这个Fragment contentFragment = f; FragmentTransaction t = getSupportFragmentManager().beginTransaction(); t.replace(R.id.content_frame, f); t.commit(); sm.showContent(); 使用普通Activity实现SlidingMenu: 1 2 3 4 5 6 7 8 9 10 11 slidingMenumenu= new SlidingMenu( this ); //直接new,而不是getSlidingMenu menu.setMode(SlidingMenu.LEFT); menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowDrawable(R.drawable.shadow); menu.setShadowWidthRes(R.dimen.shadow_width); menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); menu.setBehindWidth( 400 ); //设置SlidingMenu菜单的宽度 menu.setFadeDegree( 0 .35f); menu.attachToActivity( this ,SlidingMenu.SLIDING_CONTENT); //必须调用 menu.setMenu(R.layout.menu_layout_left); //就是普通的layout布局 menu.setBehindCanvasTransformer(mTransformer); 相应SlidingMenu里的点击事件,因为SlidingMenu已经被包含在了Activity中了,所以直接findViewById(id),拿到view之后就可以进行相应的处理。 支持左右两侧都能划出菜单 menu.setSecondaryMenu(R.layout.menu_layout_right); menu.setSecondaryShadowDrawable(R.drawable.shadowright); 右侧菜单一样直接findViewById(id),拿到view之后就可以任意处理了 更换SlidingMenu的动画 SlidingMenu支持左滑或者右滑时定义不同的动画,包括拉伸,缩放,旋转等动画。就是在滑动的过程中,SlidingMenu如何出现的动画。 动画使用也很简单 首先定义CanvasTransformer mTransformer;变量: 1 2 3 4 5 6 7 mTransformer= new CanvasTransformer(){ @Override public void transformCanvas(Canvascanvas, float percentOpen){ float scale=( float )(percentOpen* 0.25 + 0.75 ); canvas.scale(scale,scale,canvas.getWidth()/ 2 ,canvas.getHeight()/ 2 ); } }; 然后将mTransformer对象设置给SlidingMenu即可,这个是缩放动画: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private void initSlidUpCanvasTransformer(){ mTransformer= new CanvasTransformer(){ @Override public void transformCanvas(Canvascanvas, float percentOpen){ canvas.translate( 0 ,canvas.getHeight()*( 1 -interp.getInterpolation(percentOpen))); } }; } private static Interpolatorinterp= new Interpolator(){ @Override public float getInterpolation( float t){ t-= 1 .0f; return t*t*t+ 1 .0f; } }; 拉伸动画: 1 2 3 4 5 6 mTransformer= new CanvasTransformer(){ @Override public void transformCanvas(Canvascanvas, float percentOpen){ canvas.scale(percentOpen, 1 , 0 , 0 ); } }); 参考资料: 1.Android开源项目SlidingMenu深入剖析 http://blog.csdn.net/t12x3456/article/details/12798157 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1542072,如需转载请自行联系原作者

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

iOS开发学习笔记

1常用的第三方工具 1.1 iPhone Simulator 测试程序需要模拟器iPhone Simulator 1.2 设计界面需要Interface Builder,Interface Builder(IB)中将视图拖拽到窗口上并将各种视图连接到插座变量和动作上, 这样它们就能以编程方式与代码交互。IB使用Nib文件储存GUI资源,同时适用于Cocoa和Carbon程序。在需要的时候,Nib文件可以被快速地载入内存。 2iOS的常用开发框架 2.1 Foundation框架,该框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组、字典和集合,还有其他功能,包括处理日期和时间、自动化的 内存管理、处理基础文件系统、存储(或归档)对象、处理集合数据结构(如点和长方形)等。 2.2 Cocoa框架,术语Cocoa(适合开发桌面应用程序)是指Foundation框架和Application Kit框架(窗口、按钮、列表等能够开发交互式图形应用程序)。术语Cocoa Touch(适合iPhone和iTouch的应用程序开发)是指Foundation框架和UIKit框架。 3iOS程序框架 3.1 典型的iOS程序包含一个Window(窗口)和几个UIViewController(视图控制器),每个UIViewController可以管理多高UIView(在iPhone里看到的、摸到的都是UIView, 可能是UITableView、UIWebView、UIImageView等)。这些UIView之间如何进行层次叠放、显示、隐藏、旋转、移动等都由UIViewController进行管理,而 UIViewcontroller之间的切换,通常情况是通过UINavigationController(当程序具有层次化的工作流时,比较适合)、UITabBarController(当应用程序需要分为几个 相对比较独立的部分时,比较适合,比如tab)或UISplitViewController(适合用于“主-从”界面的情况,比如左菜单,右明细)进行。 4MVC 4.1 MVC的处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理;然后模型用业务逻辑来处理用户的请求并返回数据;最后控制器用相应的视图格式化 模型返回的数据,并通过表示层呈现给用户。 5创建并连接输出口和操作 在Assistant Edit模式下,将视图控件拖拽到包含控件ViewController.h的代码编辑器中,当鼠标位于@interface行下时松开。 创建IBOutlet,是指输出口,用于实例变量/属性; 创建IBAction,是指操作,用于事件。 本文转自SharkBin博客园博客,原文链接:http://www.cnblogs.com/SharkBin/p/5268086.html,如需转载请自行联系原作者

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

Android笔记:Wake Lock

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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 import android.app.Service; import android.content.Context; import android.os.PowerManager; /** *WakeLock是一种锁的机制,只要有人拿着这个锁,系统就无法进入休眠, *可以被用户态程序和内核获得.这个锁可以是有超时的或者是没有超时的, *超时的锁会在时间过去以后自动解锁.如果没有锁了或者超时了,内核就 *会启动休眠的那套机制来进入休眠. * *一、关于intflags各种锁的类型对CPU、屏幕、键盘的影响: *1.PARTIAL_WAKE_LOCK:保持CPU运转,屏幕和键盘灯有可能是关闭的。 *2.SCREEN_DIM_WAKE_LOCK:保持CPU运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯 *3.SCREEN_BRIGHT_WAKE_LOCK:保持CPU运转,允许保持屏幕高亮显示,允许关闭键盘灯 *4.FULL_WAKE_LOCK:保持CPU运转,保持屏幕高亮显示,键盘灯也保持亮度 *5.ACQUIRE_CAUSES_WAKEUP:Normalwakelocksdon't *actuallyturnontheillumination.Instead,theycausetheilluminationto *remainononceitturnson(e.g.fromuseractivity).Thisflagwillforce *thescreenand/orkeyboardtoturnonimmediately,whentheWakeLockis *acquired.Atypicalusewouldbefornotificationswhichareimportantfor *theusertoseeimmediately. *6.ON_AFTER_RELEASE:fthisflagisset,theuser *activitytimerwillberesetwhentheWakeLockisreleased,causingthe *illuminationtoremainonabitlonger.Thiscanbeusedtoreduceflickerif *youarecyclingbetweenwakelockconditions. * *你能加两个以上的标志,这些仅能影响屏幕的行为。这些标志当组合中有一个PARTIAL_WAKE_LOCK时将没有效果。 * *二、权限获取要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。 *<uses-permissionandroid:name="android.permission.WAKE_LOCK"/> *你可能还需要 *<uses-permissionandroid:name="android.permission.DEVICE_POWER"/> * *三、WakeLock的设置是Activiy级别的,不是针对整个Application应用的。 * **/ abstract class WakeLockService extends Service { private android.os.PowerManager.WakeLockmWakeLock; WakeLockService() { } /** *获取锁,保持屏幕亮度。Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。 *一般使用:这个函数在Activity的onResume中被调用。releaseWakeLock()方法则是释放该锁,在Activity的onPause中被调用。 */ protected void acquireWakeLock() { if (mWakeLock== null ) { //通过PowerManager的newWakeLock((intflags,Stringtag)方法来生成WakeLock实例。 //intFlags指示要获取哪种WakeLock,不同的Lock对cpu、屏幕、键盘灯有不同影响。 PowerManagerpm=(PowerManager)getSystemService(Context.POWER_SERVICE); mWakeLock=pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK,getClass().getCanonicalName()); mWakeLock.setReferenceCounted( false ); mWakeLock.acquire(); } } protected void acquireWakeLock( long timeout) { if (mWakeLock== null ) { PowerManagerpm=(PowerManager)getSystemService(Context.POWER_SERVICE); mWakeLock=pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK,getClass().getCanonicalName()); mWakeLock.setReferenceCounted( false ); mWakeLock.acquire(timeout); } } /** *释放锁,显示的释放,如果申请的锁不释放系统就不会进入休眠。 */ protected void releaseWakeLock() { if (mWakeLock== null ||!mWakeLock.isHeld()) { mWakeLock.release(); mWakeLock= null ; } } } 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1610983,如需转载请自行联系原作者

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

SWIFT学习笔记01

1、Swift。用来推断option是不是nil,相当于OC的 if(option) if let name = option{ greeting = “if=====“ }else{ greeting = "else===" } 2、执行switch中匹配到的子句之后。程序会退出switch语句,并不会继续向下执行,所以不须要在每一个子句结尾写break。 3、//使用..创建的范围不包括上界,假设想包括的话须要使用...,集合上,就是[)与[]的关系 for i in 0..3{ println("i===\(i)")//仅仅经历0,1,2三次循环 } 4、//传入数组參数 func sumOf(numbers:Int...) -> Int{ var sum = 0 for number in numbers{ sum += number } return sum } 5、//函数嵌套,函数里面定义并使用函数 func returnFifteen() -> Int{ var y = 10 func add(){ y+=5 } add() return y } 6、处理变量的可选值时。你能够在操作(比方方法、属性和子脚本)之前加? 。假设?之前的值是nil,? 后面的东西都会被忽略。而且整个表达式返回nil。否则,?之后的东西都会被执行。 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5180947.html,如需转载请自行联系原作者

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

学习笔记 十六 : Docker

一 docker简介 docker是一个轻量级的,运行在用户内核的一组进程,与主机系统想隔离。它有自己的进程,文件系统和其它资源,它可以和其它主机共享物理主机内核。 二 安装配置 yum install docker systemctl start docker systemctl enable docker docker pull registry.access.redhat.com/redhat/rhel7 docker load -i rhel-server-docker-7.0.tar.gz docker images docker run -i -t --rm rhel7 cat /etc/hosts docker ps -a docker start -ai silly_fermi3 2.创建docker镜像 docker run -i rhel7 bash -c "yum install -y httpd;" docker ps -l docker commit -m "RHEL7+httpd" dreamy_goodall1 rhel_httpd docker images docker run -p 8080:80 -d rhel_httpd /usr/sbin/httpd -DFOREGROUND yum install docker-registry systemctl start docker-registry systemctl enable docker-registry firewall-cmd --add-port=5000/tcp firewall-cmd --add-port=5000/tcp --permanent docker tag rhel_httpd registry.example.com:5000/usr/httpd docker push registry.example.com:5000/user/httpd 三 案例 3.1 docker 私有仓库搭建 3.2 docker 发布一个web应用 3.3 docker 发布一个mysql服务 3.4 docker高可用 本文转自 woshiwei201 51CTO博客,原文链接:http://blog.51cto.com/chenwei/1841979

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

Hadoop学习笔记一

第一个hands-on入门程序: 参考 http://blog.csdn.net/sim_szm/article/details/12578055 搭建环境并跑WordCount程序,区别是我安装的是最新的hadoop版本0.23.11,JDK我使用的是Sun JDK,Linux使用的是国产的Kylin。 问题一:Error: JAVA_HOME is not set and could not be found. 解决方案: /etc/profile 文件中export JAVA_HOME ${HADOOP_HOME}/libexec/hadoop-config.sh 显式export JAVA_HOME ${HADOOP_HOME}/etc/hadoop/yarn-env.sh显式export JAVA_HOME 问题二:NameNode 没有启动 解决方案: 删除core-site.xml文件中配置的tmp目录 运行 hadoop namenode -format 命令 再运行sbin目录下的start-dfs.sh脚步启动NameNode和datanode 问题三:为何需要SSH 解决方案:Hadoop集 群成员的通讯机制都是使用SSH,即使是单机环境,内部脚本也会运行 ssh localhost进行处理,所以安装SSH是必须的。 本文转自sarchitect 51CTO博客,原文链接:http://blog.51cto.com/stevex/1535193,如需转载请自行联系原作者

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

docker学习笔记(1)

(1)Docker介绍 关于Docker的介绍,我就不列举出来了。到百度、谷歌搜索。非常多介绍文章。以下我给出官网的介绍:https://www.docker.com/whatisdocker/ (2)体验Docker Docker官网提供了一个体验的交互教程:https://www.docker.com/tryit/ 想要尝尝鲜的能够去试一试。对docker有个大概了解。 (3)Ubuntu下Docker的安装 不同系统下docker的安装有些不一样,以下我是在ubuntu14.04 x64系统下安装。Docker官方推荐最佳的系统是Ubuntu x64。 $ sudo apt-get update $ sudo apt-get install docker.io $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker $ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.i 假设想要使用最新的Docker,要检查APT系统能处理https,文件 /usr/lib/apt/methods/https 应该存在,假设不存在。则须要安装包 apt-transport-https apt-get update apt-get install apt-transport-https 然后。加入docker repositor $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21 $ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list" $ sudo apt-get update $ sudo apt-get install lxc-docker 到这里,docker安装完毕,要检验docker是否成功安装,能够输入以下命令检查: $ sudo docker run -i -t ubuntu /bin/bas 备注:其它操作系统。如Centos、Debian的安装见官网教程:https://docs.docker.com/installation/#installation (4)经常使用命令 在上面的安装完毕后。在终端命令行下输入:docker,会列出非常多命令,以下我列举几个最经常使用的命令。 A、docker images--------------查看images B、docker ps--------------------查看正在执行的container C、docker pull ----------------下载image活repository D、docker commit------------创建新的image E、docker rm-------------------删除container F、docker rmi-------------------删除image G、docker run-----------------在新的container中执行image或command (5)在docker下安装ubuntu A、docker pull ubuntu:14.04 这个命令表示下载ubuntu 14.04版镜像 下载完毕后。我们能够输入docker images查看全部镜像。能够看到我们刚刚下载的ubuntu镜像。 B、执行ubuntu 14.04 镜像 docker run -i -t ubuntu:14.04 输入docker run命令能够查看run下的參数意义。成功执行后,我们会进入例如以下的终端显示界面: b2a2e188ae57表示HOSTNAME。这里你执行的结果可能和我不一样,以下你就能够在这个ubuntu系统下操作。 C、保存操作记录 在进入到虚拟系统后。我们在里面做一些操作,比如在根文件夹下创建一个test.txt文件。 touch test.txt。 然后退出系统:exit。 在下次我们再次执行这个系统时,会发如今根文件夹下不存在test.txt,也就是说我们之前的操作没有保存。要想保存在虚拟系统里的操作。要用到docker commit命令 在我们运行了touch test.txt创建了文件后,使用exit退出系统。 然后输入:docker commit b2a2 ubuntu:14.04,这里b2a2是之前执行的image的标示ID。不用输入所有。仅仅需4个左右字符就可以。 这个命令表示将之前对镜像的操作保存到ubuntu:14.04下。也就是我们执行的镜像,下次再次执行docker run -t -i ubuntu:14.04,就能够看到根文件夹下的test.txt文件。假设想对保存到新的镜像。仅仅需将ubuntu:14.04改成你想要的名称就可以。 如:docker commit b2a2 myubuntu,输入docker iamges。就能够看到myubuntu,当然之前的ubuntu:14.04还在。 參考: (1)https://docs.docker.com/installation/#installation 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5227674.html,如需转载请自行联系原作者

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

vSphere笔记01~02

Vmware vsphere 虚拟化 云和大数据的底层!!!! 分类 1.开源:openstack:Linux:难(无图形化) nosqleasystack公司 2.企业版本:vsphere sdn!!!(基于openstack) vsphere套件6.5 esxi主机(vkernel) 装在物理服务器 基于Linux的系统(裁剪版)(严格意义上就叫系统而不叫操作体统) !!!!物理机——esxi——vm——os——app(openstack省掉了os) client web client Windows client vcenter 数据中心虚拟化需要 装在os上(有要求) DC域控制器(依赖)(Windows创造) 部署高级特性 vmotion:迁移HA高可用性:测量服务器性能使用率FT容错(镜像) sso hp公司 登录单点认证 清单服务器(任务服务器) 转换器:物理服务器的系统变虚拟机 vipsan vsphere 拓扑和网络 client管理esxiserver 容器的嵌套关系 端口组(类似vlan) vm-network vss虚拟标准交换机(包含端口组虚拟机 物理网卡) vds虚拟分布式交换机(需要vcenter高级特性) 作用:简化vss部署类似vtp 、简化端口组的管理 最底层物理,上面几层全是虚拟化 有时,vcenter上再装esxi,,,, 存储 sds!!!! nas网络区域存储(已经淘汰) ipsan IP存储 Linux中:lvm逻辑卷管理:pv物理卷(硬盘)vg卷组lv逻辑卷 DC 域控制器 域:计算机组成的可信任网络 域的结构 workstation创建esxi虚拟机,选择桥接模式::虚拟机和外机在同一网段!! 然后在外机上通过vsphereclient链接esxiserver!!!! vcenter部署流程 也是esxi? Dns 正向和反向的域名查找 udp dc vcenter上常规配置:(client(openfiler)远程登录vcenter主机?) 1.创建数据中心 2.添加esxi主机进入数据中心 3.利用ipsan实现共享存储 选择物理卷,添加逻辑卷文件系统:scasi esxi主机设置链接ipsan的接口 消耗物理接口1用于ipsan的连接 vcenter上设置存储适配器

资源下载

更多资源
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应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册