- 常见的js前端框架、组件和插件
加油小吃货
JavaScript前端框架前端插件前端组件
转载文章js前端ui框架此处列举出个人认为最好的几个框架(排序即排名),现在好点的框架商用都需要付费,以下几个也不例外,但是由于组件丰富,都可以作为企业应用的完整解决方案。KendoUI商用收费,组件丰富,界面简洁美观,有jquery和angular两个js的版本Webix商用收费,组件丰富,界面特别美观JQwidgets商用收费,丰富的组件,有angular2、react、jquery以及ASP
- [入门到吐槽系列] Webix 10分钟入门 二 表单Form的使用
辰
前言继续接着上一篇的webix入门:https://www.cnblogs.com/zc22/p/15912342.html。今天完成剩下两个最重要的控件,表单和表格的使用。掌握了这两个,整个Webix就入门完成了,就会进入吐槽模式。Webix表单Form的使用表单的初始化布局本章节介绍表单的获取、设置、验证;表单控件的数据绑定。表单和一般控件,最大的区别,就是提供了批量操作。包括批量的设置取值、
- [入门到吐槽系列] Webix 10分钟入门 一 管理后台制作
辰
前言本人是服务端程序员,同时需要兼职前端开发。常用的就是原生态的HTML、Javascript,也用过ExtJS、Layui。可是ExtJS变公司后非常难用。Layui上手还行,用过一段时间,会觉得html+css+js的混杂编程感觉很乱。所以想寻找纯JavascriptUI框架。搜了半天,终于发现Webix这款成熟度比较高的框架,所以就这么开始了踩坑。Webix入门Webix是个Javascri
- easy-mock 本地部署(挤需体验三番钟,里造会干我一样,爱象节款mock)
敏哥
javascriptvue.js
前言很多小伙伴问我怎么在自己公司的项目里面添加配置mock,在vue项目里面都知道怎么配置mock,在大型前端项目里面就一脸疑惑了。我就回答他,你今天会在vue项目里面用,那天换公司是用angular、react,webix...等等还是不会配置使用mock,就推荐用easymock,所有前端项目都可以用管你啥jb框架,统统都搞定ojbk。就有人问了,easymock,为啥要本地部署啊,在线用不行
- Webix-Layout header
奋斗的牛鱼
Webix
//Accordion可以折叠的布局控件,header/body标题和内容控件webix.ui({container:"layout_div",multi:true,view:"accordion",//可以折叠的控件height:600,width:700,cols:[{header:"col1",body:"content1",width:150},{body:"Content2"},//没有
- Webix-Layout resizer
奋斗的牛鱼
Webixlayoutcomponentjavascriptwebixresizer
//resizer调整不同区域的大小webix.ui({container:"layout_div",id:"layout",height:550,width:700,rows:[{template:"row1",height:35},{template:"row2"},{view:"resizer"},//设置resizer,作为不同区域之间的分隔符,可以调整区域大小{template:"row
- Webix学习笔记-创建一个基本应用程序-04-和服务器交互之Delete
weixin_34306446
2019独角兽企业重金招聘Python工程师标准>>>上一篇从后台获取的数据并显示在list组件中,这一篇通过ajax提交需要删除的数据给后台,后台删除后返回一个json字符串给页面,页面使用消息将json字符串显示返回的提示第一步:在服务器端创建delMovWithJson闭包这个闭包从客户端获取需要删除的对象,根据对象id删除数据库中的记录,并返回一个json字符串defdelMovWithJ
- Webix学习笔记-创建一个基本应用程序-00-简介
weixin_34217773
2019独角兽企业重金招聘Python工程师标准>>>在开始学习Webix之前,没有什么比使用一个实例更容易理解一个框架的用法。下面的步骤将引导我们开始使用Webix,Webix的开发不需要任何特殊的工具,使用一个带语法着色的文本即可。引入库文件创建一个带DOCTYPEHTML标签的标准html5页面下载Webix,在页面中引入webix.css和webix.js两个文件,下面是一个标准模板标准模
- 四个Webix实例:生成多种类型的JavaScript列表
weixin_34092370
在这篇文章中,我们将介绍如何创建使用各种类型列表显示数据的Web组件。具体而言,我们采用的是WebixUI库。要理解WebixUI的工作机制,我们将会创建一个简单的小组件,以列表形式显示JSON数据,然后为已有数据添加编辑功能,以此来学习如何为组件添加交互能力。我们还会学习如何从已有的Webix部件(Widget)创建满足特定需求的Web组件。最后,我们会介绍一些由Webix提供的更高级类型列表,
- Webix合集
weixin_34056162
2019独角兽企业重金招聘Python工程师标准>>>type类型有:"line"(default),"head","space","wide"and"clean"(borderless){view:"label",label:"Layout"}{view:"text",name:"url",label:"URL"},{view:"textarea",name:"json",label:"JSON
- Webix学习笔记-创建一个基本应用程序-02-让组件交互
weixin_33726318
2019独角兽企业重金招聘Python工程师标准>>>在01中创建了一个简单的框架,里面放置了几个组件。在这一节中使用一些基本的方法和事件功能,让组件可以交互。在上一节例子中,界面上增加了一个表单和一个列表。现在增加一个功能,填写表单,将内容保存到列表。选择列表中的信息,在表单中修改。和删除列表中的信息这几个功能。第一步:设置ID和增加事件首先分别给4个按钮增加单击事件{view:"button"
- webix前端架构的项目应用(项目框架为Web API+autofac+ioc+mysql+webix)
weixin_30906185
webix框架兼容javascript、HTML、CSS,应用比较灵活,应用框架时,配合后台webAPI,整个web项目里面,App文件夹保存前台的多语言文件,图片文件,webix原代码js、css,视图文件等,视图文件里面全是使用js文件编写页面布局与功能实现,文件开头使用define(["locale","/app/views/shared/components.js"],function(_
- webix源码阅读
weixin_30580943
最近在用webix,需要一个类似九宫格的监控界面。自带的控件里没有,于是萌生出做一个CustomComponent的需求。不过webix关于自定义控件的文档比较少,官方只有一篇《CreatingaCustomComponent》讲基本的构建过程,但内容比较浅,和《DIY-CustomIntegrationPatter》讲的是怎么与第三方组件集成。对着文档看了几遍,还是觉得没有思路,少不得要去看源码
- Webix-Layout resizer limit
奋斗的牛鱼
Webix
//resizer在制定范围之内调整不同区域的大小webix.ui({container:"layout_div",id:"layout",height:600,width:700,rows:[{template:"row1",height:30},{template:"row1",minHeight:50},//设置最小高度,限制调整范围{view:"resizer"},{template:"r
- webIx之表单提交
敲代码也可以开心
webix
本文主要介绍了如何创建一个表单,以及如何提交数据,这里当然指的是传统方式的提交数据,webix的请求是post请求,做出来的效果如下,代码在下面表单/*我理解的webix实际上就是一个控制样式的东西,比如下面的表单就是以上面的div作为容器,所以它必须依附于div,所以要写在script里面*/webix.ui({//webix类似一个javascript里面的函数,在里面声明的变量,出了这个范围
- webix学习1
不如不遇的我
JavaScript
在CSDN某一期新闻中看到了webix的介绍,看了一下,觉得很有趣,想学习一下,简单记录一下的学习过程(其实基本上都是官网的教程和demo中的代码......)webix通过rows来定义行:webix/*placeforwebix.ui*/webix.ui({width:800,rows:[{view:"template",type:"header",template:"MyApp!"},{vi
- webix学习2
不如不遇的我
JavaScript
webix的tab页效果,用tabbar确定tab页,用cells确定tab的内容,通过id绑定1:简单的tab页和表单绑定webix09#areaA,#areaB{margin:50px10px;width:320px;height:400px;float:left;}.webix_layout_space{background-color:#fff;}varsmall_film_set=[{i
- 使用 Webix 创建 Email 客户端
_waylau
Webix
Webix是一个JavaScriptUI库,提供了多达88个UI小部件和功能丰富的CSS/HTML5JavaScript控件。使用Webix可以有效地加快Web应用的开发。文本将演示了如何通过Webix框架,来创建一个Email客户端原型。安装Webix可以下载Webix的JS、CSS文件,但最快的方式是使用Webix的CDN,如下:...快速开始我们为我们的第一个应用创建第一个页面index.h
- 关于webix数据表格用法完整示例
isscollege
网页设计webix前端
一、概要本文解决webix环境简单实现数据表格显示,内容有1、多条记录垂直滚动时,锁住标题行2、数据表格,每个字段自动排序3、数据翻页4、数据分组统计(求和、记录数、最大值、最小值)5、中文字符集6、浏览器运行环境二、处理效果处理二、webix组件引入三、浏览器及中文汉字要求1、html5字符集要求如果没有这行代码,在所有浏览器中,汉字乱码,不支持html4及以下字符集设置2、webix可以正常运
- Webix入门()
isscollege
jswebix
一、Webix介绍Webix是Xb软件概述发布的JSUI库应用程序,包含80个完全可定制的组件,可以和CSS、HTML5构建交互式Web应用程序。其拥有以下特性而得以在很短的时间内圈粉无数。跨浏览器跨设备(PC、IOS、Android、Blackberry)能访问离线Web存储、地理位置API、画布绘图集成了JQuery和BackBone.js提供了简单的服务端集成控件,可以和PHP、.NET、J
- webix透视图
忽胖忽瘦
前端
使用webix创建数据透视图官网文档地址:https://docs.webix.com/api__refs__ui.pivot_props.htmlhttps://docs.webix.com/desktop__pivot.html数据源有多种方式:本地数据源:即从后端获取数据到js中再初始化外联数据源:通过属性url加载文本数据源(csv、json、xml等)或者初始化的同时从后端加载数据。数据
- Webix框架介绍
dingshi7798
如今,有许多框架,每个框架都有其独特之处。我们有AngularJS,Ember和Aurelia.io。在SitePoint上,我们已经在许多场合介绍了这些框架:使用Aurelia创建下一代JavaScript应用程序,使用AngularJS构建Twitter应用程序,以及使用Torii将Twitter身份验证添加到Ember.js应用程序中。在本文中,我想介绍Webix框架。为了演示它的工作原理,
- 使用Webix框架创建表单-4个实用示例
dingshi7798
本文由SimonCodrington和MalloryvanAchterberg进行同行评审。感谢所有SitePoint的同行评审人员使SitePoint内容达到最佳状态!作为Web设计师,您很有可能必须定期创建Web表单。这通常是一项艰巨的任务,并且头疼不已(尤其是如果您正在做更复杂的事情,例如创建多步骤表单)。在这种情况下,最好使用UI框架来减轻痛苦并加快开发过程。在本文中,我将概述各种技巧,使
- Webix label字太多需要自动换行的问题
90后逆袭
网站设计框架webixlabel自动换行
需要达到如下效果:1、第一步:将label控件的高度调整到60,并添加自定义类autoLine用于定位:cols:[{view:"label",label:"框架名称:",labelWidth:100,height:60,width:100},{view:"label",id:"confirm_frame_name",label:"傻傻的232@#*&@!#……*vvv傻傻傻傻的232@#*&@!
- Webix官网全站资源下载
90后逆袭
网站设计
Webix用户手册免费下载:webix官网用户手册离线镜像:扫描下面公众号二维码,关注微信公众号后,点击历史消息,找到文章《Webix官网全站资源下载》可查阅下载链接:Webix简介:Webix是一种JavaScriptUI库,其中包含的组件超过45个,用这些组件可以构建跟HTML5和CSS3兼容的程序,这些程序不仅能在个人电脑上运行,还能用在iOS、Android和Blackberry设备上运行
- Webix 控件自定义验证条件
90后逆袭
网站设计webixvalidate
转自:http://fire.lvzmen.cn/index.php?app=article&ac=show&id=5在webix中,只提供了四种控件内容有效性验证,如下所示:webix.ui({view:"form1",elements:[{view:"text",label:'Username',name:"login"},{view:"text",label:'E-mailaddress',
- Webix 常用控件使用实例
90后逆袭
网站设计
原文及更多教程请查看:http://fire.lvzmen.cn/index.php?app=article&ac=show&id=31、文本框示例默认条件:不能为空,不大于64个字符,出错提示(红色字体,红色文本边框){id:“add_frame_name”,name:“frame_name”,view:“text”,label:“框架名称:”,labelWidth:150,width:450,
- webix Tab页面装换
有事才不会无聊
webix.ui({view:"form",elements:[{view:"tabview",tabbar:{options:["A","B","C"]},animate:false,cells:[{id:"A",rows:[{view:"text",name:"value1",label:"value1"},{}]},{id:"B",rows:[{view:"text",name:"value
- webix.ui 对象原生方法(一)
ancuosu0220
引言webix.js被压缩后很多字母不清楚是什么用处,看源码整理了部分出来,以button为例1、button代码测试页面webix.ui({container:"layout_div",view:"button",id:"myButton",label:"按钮"});效果2、以下代码在F12的console中测试myButton=$$("myButton")define:方法(可以定义对象属性的
- webix overview
adam_De
webix
OverviewWebixisacross-browser,cross-deviceJavaScriptframeworkforbuildinginteractivewebapplicationsusingJavaScript,CSS,HTML5techniques.Thelibrarydeliversover80fullycustomizablecomponents,providesJQuery
- 算法 单链的创建与删除
换个号韩国红果果
c算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
- 《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
- zeus持久层spring事务单元测试
deng520159
javaDAOspringjdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
- Rss 订阅 开发
周凡杨
htmlxml订阅rss规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
- 分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
- spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
- highCharts柱状图
布衣凌宇
hightCharts柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
springmvcSpring 教程spring3 教程Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- TLS java简单实现
antlove
javasslkeystoretlssecure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
- Zip解压压缩文件
百合不是茶
Zip格式解压Zip流的使用文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
- underscore.js 学习(一)
bijian1013
JavaScriptunderscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
- java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
javajvmjstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
- 【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
- 我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
- nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
- java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
- 正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
- [JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
- 自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
- Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
- 如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
- 单一功能原则
dcj3sjt126com
面向对象的程序设计软件设计编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
- POJO、VO和JavaBean区别和联系
fanmingxing
VOPOJOjavabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
- SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
- mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
- 设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
- 评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
- scala如何读取和写入文件内容?
qindongliang1922
javajvmscala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
- C语言算法之百元买百鸡
qiufeihu
c算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,