- Spark scala api(一)RDD编程
weixin_42521881
spark学习
基础初始化sparkvalconf=newSparkConf().setAppName("wordcount")valsc=newSparkContext(conf)转化操作和行动操作的区别在于spark计算rdd的方式不同,只有在第一次在一个行动操作中用到转化操作中的rdd时,才会真正计算这些rdd。创建rdd//驱动器程序对一个集合进行并行化vallines=sc.parallelize(Li
- hadoop运行java程序命令_使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0
emi0wb
网上的MapReduceWordCount教程对于如何编译WordCount.java几乎是一笔带过…而有写到的,大多又是0.20等旧版本版本的做法,即javac-classpath/usr/local/hadoop/hadoop-1.0.1/hadoop-core-1.0.1.jarWordCount.java,但较新的2.X版本中,已经没有hadoop-core*.jar这个文件,因此编辑和打
- BB5112 Business Decision Modelling
后端
AssignmentBriefing(Level5)ModuleNameBusinessDecisionModellingModuleCodeBB5112AssignmentTitleAssignment2TypeofSubmissionOnlinethroughCanvasWeightingoftheassignmentintheoverallmodulegrade70%WordCount/Ti
- BB5112 Business Decision Modelling
后端
AssignmentBriefing(Level5)ModuleNameBusinessDecisionModellingModuleCodeBB5112AssignmentTitleAssignment2TypeofSubmissionOnlinethroughCanvasWeightingoftheassignmentintheoverallmodulegrade70%WordCount/Ti
- IntelliJ IDEA + Maven环境编写第一个hadoop程序
IT独白者
hadoophadoop
1.新建IntelliJ下的maven项目点击File->New->Project,在弹出的对话框中选择Maven,JDK选择你自己安装的版本,点击Next2.填写Maven的GroupId和ArtifactId你可以根据自己的项目随便填,点击Next这样就新建好了一个空的项目这里程序名填写WordCount,我们的程序是一个通用的网上的范例,用来计算文件中单词出现的次数3.设置程序的编译版本打开
- 第一个Hadoop程序
lqlj2233
hadoop大数据分布式
编写和运行第一个Hadoop程序是学习Hadoop的重要步骤。以下是一个经典的“WordCount”程序示例,它统计文本文件中每个单词出现的次数。我们将使用Java编写MapReduce程序,并在Hadoop集群上运行它。一、WordCount程序概述WordCount是Hadoop的“HelloWorld”程序。它的基本逻辑如下:Mapper:读取输入文件,将每一行文本拆分为单词,并输出每个单词
- 【自学笔记】Hadoop基础知识点总览-持续更新
Long_poem
笔记hadoop大数据
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Hadoop基础知识点总览1.Hadoop简介2.Hadoop生态系统3.HDFS(HadoopDistributedFileSystem)HDFS基本命令4.MapReduceWordCount示例(Java)5.YARN(YetAnotherResourceNegotiator)6.其他组件简介总结Hadoop基础知识点总
- 3.1初识Flink-wordcount
orange大数据技术探索者
flink废弃已迁移走flink
pom要注意scala版本和你的本地的scala的版本对不上可能会出问题<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-in
- 6 Flink 状态管理
TTXS123456789ABC
#Flinkflinkpython大数据
6Flink状态管理1.State-KeyedState2.State-OperatorState3.BroadcastState我们前面写的wordcount的例子,没有包含状态管理。如果一个task在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需要重新计算。从容错和消息处理的语义上(atleastonce,exactlyonce),Flink引入了state和checkpoin
- inux学习日志前传_基础命令
stevenux
Linux入门-自学Linux
Linux学习日志_基础命令Linux哲学:测试shell脚本是否有语法错误bash单步执行脚本hwclock(一般使用:hwclock-r读取硬件时间)文件系统:rm:删除cp:copy(默认只复制文件)mv:moveinstall:(复制后有执行权限)cut:文本排序:sort(不影响源文件,只影响显示)文本统计:wc(wordcount)字符处理:tr转换或删除字符bash及其特性:练习:用
- Spark 基本概念
Buutoorr
spark大数据分布式scala
#官网部分解释ClusterModeOverview-Spark3.3.0DocumentationApplication:指的是用户编写的Spark应用程序/代码,一个完整的main方法程序,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码,如main方法中有WordCount代码有哪些命令会产生一个Applicationspark/bin/pyspark【输入exi
- 4 Spark Streaming
TTXS123456789ABC
#Sparksparkajax大数据
4SparkStreaming一级目录1.整体流程2.数据抽象3.DStream相关操作4.SparkStreaming完成实时需求1)WordCount2)updateStateByKey3)reduceByKeyAndWindow一级目录SparkStreaming是一个基于SparkCore之上的实时计算框架,可以从很多数据源消费数据并对数据进行实时的处理,具有高吞吐量和容错能力强等特点。S
- 1-structedStreaming-基本流程(2.2.1)
github_28583061
javaspark大数据hadoophive
基本流程spark2.2.1StructuredNetworkWordCount统计来自socket的wordcount创建stream,指定数据源DataStreamReader--从外部存储加载流数据的接口lines=spark.readStream.format("socket").option("host",host).option("port",port).load()加载数据流为Dat
- 大数据手写面试题Scala语言实现大全(持续更新)
大模型大数据攻城狮
大数据数据结构算法面试题面试宝典
在大数据领域,Scala语言因其强大的函数式编程特性和对并发处理的良好支持而成为了开发者们的热门选择。有些面试官,为了考验面试者的基本功,需要让手写一些面试题,以数据结构和算法类的居多。本文将为您提供一些常见的Scala手写面试题及参考答案,帮助您在面试或工作中更好地运用Scala。目录1.冒泡排序2.二分查找3.快速排序4.归并排序5.手写Spark-WordCount6.手写Spark程序求平
- Spark集群的三种模式
MelodyYN
#Sparksparkhadoopbigdata
文章目录1、Spark的由来1.1Hadoop的发展1.2MapReduce与Spark对比2、Spark内置模块3、Spark运行模式3.1Standalone模式部署配置历史服务器配置高可用运行模式3.2Yarn模式安装部署配置历史服务器运行模式4、WordCount案例1、Spark的由来定义:Hadoop主要解决,海量数据的存储和海量数据的分析计算。Spark是一种基于内存的快速、通用、可
- Hadoop windows intelij 跑 MR WordCount
piziyang12138
一、软件环境我使用的软件版本如下:IntellijIdea2017.1Maven3.3.9Hadoop分布式环境二、创建maven工程打开Idea,file->new->Project,左侧面板选择maven工程。(如果只跑MapReduce创建java工程即可,不用勾选Creatfromarchetype,如果想创建web工程或者使用骨架可以勾选)image.png设置GroupId和Artif
- Hadoop之mapreduce -- WrodCount案例以及各种概念
lzhlizihang
hadoopmapreduce大数据
文章目录一、MapReduce的优缺点二、MapReduce案例--WordCount1、导包2、Mapper方法3、Partitioner方法(自定义分区器)4、reducer方法5、driver(main方法)6、Writable(手机流量统计案例的实体类)三、关于片和块1、什么是片,什么是块?2、mapreduce启动多少个MapTask任务?四、MapReduce的原理五、Shuffle过
- Spark分布式计算原理
NightFall丶
#Sparkapachesparkspark
目录一、RDD依赖与DAG原理1.1RDD的转换一、RDD依赖与DAG原理Spark根据计算逻辑中的RDD的转换与动作生成RDD的依赖关系,同时这个计算链也形成了逻辑上的DAG。1.1RDD的转换e.g.(以wordcount为例)packagesparkimportorg.apache.spark.{SparkConf,SparkContext}objectWordCount{defmain(a
- 【Hadoop】- MapReduce & YARN 初体验[9]
星星法术嗲人
hadoophadoopmapreduce
目录提交MapReduce程序至YARN运行1、提交wordcount示例程序1.1、先准备words.txt文件上传到hdfs,文件内容如下:1.2、在hdfs中创建两个文件夹,分别为/input、/output1.3、将创建好的words.txt文件上传到hdfs中/input1.4、提交MapReduce程序至YARN1.5、可通过node1:8088查看1.6、返回我们的服务器,检查输出文
- flink经典实战案例
不 爱吃肉肉
flinkbigdatajavascala
一、java版flink-wordcount-离线计算版1.1maven构建flink,加入依赖org.apache.flinkflink-java${flink.version}provided-->org.apache.flinkflink-clients_${scala.version}${flink.version}1.2java实现flinkwordCount的代码编写1.2.1代码编写
- Spark Streaming(二):DStream数据源
雪飘千里
1、输入DStream和Receiver输入(Receiver)DStream代表了来自数据源的输入数据流,在之前的wordcount例子中,lines就是一个输入DStream(JavaReceiverInputDStream),代表了从netcat(nc)服务接收到的数据流。除了文件数据流之外,所有的输入DStream都会绑定一个Receiver对象,该对象是一个关键的组件,用来从数据源接收数
- ros自定义srv记录
西木九
roboticROSsrv
文章目录自定义srv1.定义srv文件2.修改package.xml3.修改CMakeLists.txt4.sevice_server.py5.运行`catkinbuild`测试使用(rosservice命令)自定义srvros版本:kinetic自定义test包的文件结构如下|--test||--CMakeLists.txt||--srv||`--WordCount.srv||--package
- Hive使用双重GroupBy解决数据倾斜问题
黄土高坡上的独孤前辈
Hive/Kylin数据仓库hivehadoop数据仓库
文章目录1.数据准备2.双重groupby实现解决数据倾斜2.1第一层加盐groupby2.2第二层去盐groupby1.数据准备createtablewordcount(astring)rowformatdelimitedfieldsterminatedby‘,’;loaddatalocalinpath‘opt/2.txt’intotablewordcount;hive(default)>sel
- Scala基础教程--19--Actor
落空空。
javasparkscalajava开发语言
Scala基础教程–19–Actor章节目标了解Actor的相关概述掌握Actor发送和接收消息掌握WordCount案例1.Actor介绍Scala中的Actor并发编程模型可以用来开发比Java线程效率更高的并发程序。我们学习ScalaActor的目的主要是为后续学习Akka做准备。1.1Java并发编程的问题在Java并发编程中,每个对象都有一个逻辑监视器(monitor),可以用来控制对象
- 【Flink入门修炼】1-3 Flink WordCount 入门实现
flinkhadoop
本篇文章将带大家运行Flink最简单的程序WordCount。先实践后理论,对其基本输入输出、编程代码有初步了解,后续篇章再对Flink的各种概念和架构进行介绍。下面将从创建项目开始,介绍如何创建出一个Flink项目;然后从DataStream流处理和FlinkSQL执行两种方式来带大家学习WordCount程序的开发。Flink各版本之间变化较多,之前版本的函数在后续版本可能不再支持。跟随学习时
- 七天爆肝flink笔记
我才是真的封不觉
flink笔记大数据
一.flink整体介绍及wordcount案例代码1.1整体介绍从上到下包含有界无界流支持状态特点与spark对比应用场景架构分层1.2示例代码了解了后就整个demo吧数据源准备这里直接用的文本文件gradle中的主要配置group='com.example'version='0.0.1-SNAPSHOT'java{sourceCompatibility='11'}repositories{mav
- Hadoop手把手逐级搭建 第二阶段: Hadoop完全分布式(full)
郑大能
前置步骤:1).第一阶段:Hadoop单机伪分布(single)0.步骤概述1).克隆4台虚拟机2).为完全分布式配置ssh免密3).将hadoop配置修改为完全分布式4).启动完全分布式集群5).在完全分布式集群上测试wordcount程序1.克隆4台虚拟机1.1使用hadoop0克隆4台虚拟机hadoop1,hadoop2,hadoop3,hadoop41.1.0克隆虚拟机hadoop11.1
- FLink发布任务
卡门001
例子任务名:SocketWindowWordCount.jar开启客户端模拟发数据nc-lk9527命令行启动../../bin/flinkrun-corg.apache.flink.streaming.examples.socket.SocketWindowWordCountSocketWindowWordCount.jar--hostnamelocalhost--port9527参数--hos
- 【Flink入门修炼】1-3 Flink WordCount 入门实现
大数据王小皮
Flink入门修炼flink大数据
本篇文章将带大家运行Flink最简单的程序WordCount。先实践后理论,对其基本输入输出、编程代码有初步了解,后续篇章再对Flink的各种概念和架构进行介绍。下面将从创建项目开始,介绍如何创建出一个Flink项目;然后从DataStream流处理和FlinkSQL执行两种方式来带大家学习WordCount程序的开发。Flink各版本之间变化较多,之前版本的函数在后续版本可能不再支持。跟随学习时
- win10 spark scala 本地运行wordcount
疯琴
大数据java/scalaflink/spark
注意每次修改环境变量都要重启cmd本机运行需要hadoopcommon,可以从github下载zip,解包以后设置HADOOP_HOME环境变量指向它,然后在PATH里加上HADOOP_HOME\bin,特别注意,hadoopcommon的版本要和spark的hadoop版本匹配spark的scala和本机的scala大版本要匹配报错ExceptionwhiledeletingSparktempd
- 如何用ruby来写hadoop的mapreduce并生成jar包
wudixiaotie
mapreduce
ruby来写hadoop的mapreduce,我用的方法是rubydoop。怎么配置环境呢:
1.安装rvm:
不说了 网上有
2.安装ruby:
由于我以前是做ruby的,所以习惯性的先安装了ruby,起码调试起来比jruby快多了。
3.安装jruby:
rvm install jruby然后等待安
- java编程思想 -- 访问控制权限
百合不是茶
java访问控制权限单例模式
访问权限是java中一个比较中要的知识点,它规定者什么方法可以访问,什么不可以访问
一:包访问权限;
自定义包:
package com.wj.control;
//包
public class Demo {
//定义一个无参的方法
public void DemoPackage(){
System.out.println("调用
- [生物与医学]请审慎食用小龙虾
comsci
生物
现在的餐馆里面出售的小龙虾,有一些是在野外捕捉的,这些小龙虾身体里面可能带有某些病毒和细菌,人食用以后可能会导致一些疾病,严重的甚至会死亡.....
所以,参加聚餐的时候,最好不要点小龙虾...就吃养殖的猪肉,牛肉,羊肉和鱼,等动物蛋白质
- org.apache.jasper.JasperException: Unable to compile class for JSP:
商人shang
maven2.2jdk1.8
环境: jdk1.8 maven tomcat7-maven-plugin 2.0
原因: tomcat7-maven-plugin 2.0 不知吃 jdk 1.8,换成 tomcat7-maven-plugin 2.2就行,即
<plugin>
- 你的垃圾你处理掉了吗?GC
oloz
GC
前序:本人菜鸟,此文研究学习来自网络,各位牛牛多指教
1.垃圾收集算法的核心思想
Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。
垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别
- shiro 和 SESSSION
杨白白
shiro
shiro 在web项目里默认使用的是web容器提供的session,也就是说shiro使用的session是web容器产生的,并不是自己产生的,在用于非web环境时可用其他来源代替。在web工程启动的时候它就和容器绑定在了一起,这是通过web.xml里面的shiroFilter实现的。通过session.getSession()方法会在浏览器cokkice产生JESSIONID,当关闭浏览器,此
- 移动互联网终端 淘宝客如何实现盈利
小桔子
移動客戶端淘客淘寶App
2012年淘宝联盟平台为站长和淘宝客带来的分成收入突破30亿元,同比增长100%。而来自移动端的分成达1亿元,其中美丽说、蘑菇街、果库、口袋购物等App运营商分成近5000万元。 可以看出,虽然目前阶段PC端对于淘客而言仍旧是盈利的大头,但移动端已经呈现出爆发之势。而且这个势头将随着智能终端(手机,平板)的加速普及而更加迅猛
- wordpress小工具制作
aichenglong
wordpress小工具
wordpress 使用侧边栏的小工具,很方便调整页面结构
小工具的制作过程
1 在自己的主题文件中新建一个文件夹(如widget),在文件夹中创建一个php(AWP_posts-category.php)
小工具是一个类,想侧边栏一样,还得使用代码注册,他才可以再后台使用,基本的代码一层不变
<?php
class AWP_Post_Category extends WP_Wi
- JS微信分享
AILIKES
js
// 所有功能必须包含在 WeixinApi.ready 中进行
WeixinApi.ready(function(Api) {
// 微信分享的数据
var wxData = {
&nb
- 封装探讨
百合不是茶
JAVA面向对象 封装
//封装 属性 方法 将某些东西包装在一起,通过创建对象或使用静态的方法来调用,称为封装;封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题,增加代码的可读性和可维护性
在 Aname类中申明三个属性,将其封装在一个类中:通过对象来调用
例如 1:
//属性 将其设为私有
姓名 name 可以公开
- jquery radio/checkbox change事件不能触发的问题
bijian1013
JavaScriptjquery
我想让radio来控制当前我选择的是机动车还是特种车,如下所示:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"><
- AngularJS中安全性措施
bijian1013
JavaScriptAngularJS安全性XSRFJSON漏洞
在使用web应用中,安全性是应该首要考虑的一个问题。AngularJS提供了一些辅助机制,用来防护来自两个常见攻击方向的网络攻击。
一.JSON漏洞
当使用一个GET请求获取JSON数组信息的时候(尤其是当这一信息非常敏感,
- [Maven学习笔记九]Maven发布web项目
bit1129
maven
基于Maven的web项目的标准项目结构
user-project
user-core
user-service
user-web
src
- 【Hive七】Hive用户自定义聚合函数(UDAF)
bit1129
hive
用户自定义聚合函数,用户提供的多个入参通过聚合计算(求和、求最大值、求最小值)得到一个聚合计算结果的函数。
问题:UDF也可以提供输入多个参数然后输出一个结果的运算,比如加法运算add(3,5),add这个UDF需要实现UDF的evaluate方法,那么UDF和UDAF的实质分别究竟是什么?
Double evaluate(Double a, Double b)
- 通过 nginx-lua 给 Nginx 增加 OAuth 支持
ronin47
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGeek 在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口。我们通常为新的展示需求创建新模块,比如我们自己的博客、图表等。我们还定期开发内部工具来处理诸如部署、可视化操作及事件处理等事务。在处理这些事务中,我们使用了几个不同的接口来认证:
&n
- 利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法
bsr1983
session
在利用tomcat-redis-session-manager做session同步时,遇到了在session保存一个自定义对象时,修改该对象中的某个属性,session未进行序列化,属性没有被存储到redis中。 在 tomcat-redis-session-manager的github上有如下说明: Session Change Tracking
As noted in the &qu
- 《代码大全》表驱动法-Table Driven Approach-1
bylijinnan
java算法
关于Table Driven Approach的一篇非常好的文章:
http://www.codeproject.com/Articles/42732/Table-driven-Approach
package com.ljn.base;
import java.util.Random;
public class TableDriven {
public
- Sybase封锁原理
chicony
Sybase
昨天在操作Sybase IQ12.7时意外操作造成了数据库表锁定,不能删除被锁定表数据也不能往其中写入数据。由于着急往该表抽入数据,因此立马着手解决该表的解锁问题。 无奈此前没有接触过Sybase IQ12.7这套数据库产品,加之当时已属于下班时间无法求助于支持人员支持,因此只有借助搜索引擎强大的
- java异常处理机制
CrazyMizzz
java
java异常关键字有以下几个,分别为 try catch final throw throws
他们的定义分别为
try: Opening exception-handling statement.
catch: Captures the exception.
finally: Runs its code before terminating
- hive 数据插入DML语法汇总
daizj
hiveDML数据插入
Hive的数据插入DML语法汇总1、Loading files into tables语法:1) LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]解释:1)、上面命令执行环境为hive客户端环境下: hive>l
- 工厂设计模式
dcj3sjt126com
设计模式
使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。 工厂模式
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。
Example #1 调用工厂方法(带参数)
<?phpclass Example{
- mysql字符串查找函数
dcj3sjt126com
mysql
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在1到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或st
- jvm内存管理
easterfly
jvm
一、JVM堆内存的划分
分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。
工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中;
年老代满了之后会执行major gc,这个是stop the word模式,执行
- CentOS-6.3安装配置JDK-8
gengzg
centos
JAVA_HOME=/usr/java/jdk1.8.0_45
JRE_HOME=/usr/java/jdk1.8.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME
- 【转】关于web路径的获取方法
huangyc1210
Web路径
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项
- php里获取第一个中文首字母并排序
远去的渡口
数据结构PHP
很久没来更新博客了,还是觉得工作需要多总结的好。今天来更新一个自己认为比较有成就的问题吧。 最近在做储值结算,需求里结算首页需要按门店的首字母A-Z排序。我的数据结构原本是这样的:
Array
(
[0] => Array
(
[sid] => 2885842
[recetcstoredpay] =&g
- java内部类
hm4123660
java内部类匿名内部类成员内部类方法内部类
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类可以间接解决多继承问题,可以使用内部类继承一个类,外部类继承一个类,实现多继承。
&nb
- Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten
zhb8015
maven pom.xml关于hibernate的配置和异常信息如下,查了好多资料,问题还是没有解决。只知道是包冲突,就是不知道是哪个包....遇到这个问题的分享下是怎么解决的。。
maven pom:
<dependency>
<groupId>org.hibernate</groupId>
<ar
- Spark 性能相关参数配置详解-任务调度篇
Stark_Summer
sparkcachecpu任务调度yarn
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。
由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便
- css3滤镜
wangkeheng
htmlcss
经常看到一些网站的底部有一些灰色的图标,鼠标移入的时候会变亮,开始以为是js操作src或者bg呢,搜索了一下,发现了一个更好的方法:通过css3的滤镜方法。
html代码:
<a href='' class='icon'><img src='utv.jpg' /></a>
css代码:
.icon{-webkit-filter: graysc