分类目录归档:生活

环境变量导致的elasticsearch启动错误

网上的解决办法都是修改/etc/security/limits.conf文件,增加hadoop hard nofile 131072一行

vi /etc/security/limits.conf
hadoop soft nofile 65536
hadoop hard nofile 131072
hadoop soft nproc 2048
hadoop hard nproc 4096

可是,我的配置本来就已经设置成这样了的
网上找来找去,都是修改limits.conf文件这个答案,最怕这种了,所有的人都指向同一个答案,却不能解决自己的问题
后来突然想到是不是环境变量的问题,仔细检查了一遍,发现一个可疑的设置

vi /etc/profile
ulimit -n 65535

使用 ulimit -Hn 查看当前值,果然是65535,

ulimit -Hn
65535

也就是说每次更新环境变量的时候limits.conf的hard nofile 131072设置被覆盖掉了
这就好办了,vi /etc/profile 将 ulimit -n 65535 行注释掉,退出重新进入当前用户,再使用 ulimit -Hn 查看当前值,已经是131072了,设置成功!

vi /etc/profile
# ulimit -n 65535
ulimit -Hn
131072

1、切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf 

添加下面配置:

vm.max_map_count=655360

并执行命令:

sysctl -p

再去启动elasticsearch,OK!

HOME 20個優秀的 JavaScript 鍵盤事件處理庫

鍵盤事件是 Web 開發中最常用的事件之一,通過對鍵盤事件的捕獲和處理可以提高網站的易用性和交互體驗。下面,我們向大家介紹收集的20款優秀的 JavaScript 鍵盤事件處理庫,幫助開發人員輕鬆處理各種鍵盤事件,趕緊收藏吧!

您可能感興趣的相關文章

 

Keypress

Keypress 是個有着許多特別功能的輸入捕捉庫,它非常容易使用,有個極小的腳本(約9kb),而且沒有任何依賴。這個庫支持所有主流的瀏覽器和操作系統,但是沒在非英文的鍵盤上測試過。


 

Mousetrap

Mousetrap 是個沒有外部依賴的獨立庫,它最小約為 1.9kb,Mousetrap 非常容易擴展,只要頁面中包括 Mousetrap 和需要擴展的 JavaScript 庫就可以了。

Mousetrap支持的瀏覽器有: Internet Explorer 6+, Safari, Firefox 和 Chrome。

 

jQuery Hotkeys

jQuery.Hotkeys 允許用户在源代碼中添加或者刪除各種鍵盤事件,幾乎支持任何組合鍵。只需要一行代碼就可以綁定或者解綁快捷鍵。支持(Win/Mac/Linux)平台上 的瀏覽器: IE 6/7/8, FF 1.5/2/3, Opera-9, Safari-3 and Chrome-0.2。


 

Keymage

Keymage 是用 JavaScript 實現的極小的處理快捷鍵綁定的庫,它沒有任何的依賴項,非常容易擴展,用户很容易就能使用它開發一個新的庫。

 

KeyboardJS

KeyboardJS 是個 JavaScript 庫,用來綁定鍵盤組合鍵,不會有任何的鍵盤代碼和鍵盤組合鍵衝突。它可以作為一個獨立的庫也可以作為一個 AMD 模塊。它支持單一快捷鍵或者組合鍵,可以在任何地方使用。

 

kbNav

kbNav 可以很方便的使用鍵盤來進行用户友好的網站導航。kbNav 快捷鍵會出現在用户點擊的對象中。用户可以很方便的找到想要使用的快捷鍵。用户可以使用網站開發一些無意識的快捷鍵和一些行為的關聯,消除記憶快捷鍵和行 為的麻煩。kbNav 只需要點擊相應的鍵盤,按 Enter 就可以生效,而且快捷鍵可以包含字每和數字,用户可以為每個行為都製作相應的快捷鍵。

 

Keymaster.js

Keymaster 是個簡單的微型庫,用來定義和分配 web 應用的各種快捷鍵。Keymaster 沒有任何依賴項,可以完全獨立使用。它支持任何的 JavaScript 庫或者是框架。
Keymaster 可以在任何瀏覽器上定義 keyup 和 keydown 事件的快捷鍵。目前支持的瀏覽器有: IE (6+), Safari, Firefox 和 Chrome。

 

Jwerty

jwerty 是個 JS 庫,允許用户綁定,啟用和定義相關元素和世間的快捷鍵方式。它一般包括一些極小的標準 API ,非常容易使用和清除。它大小約為 1.5kb ,而且沒有任何依賴項,同時又兼容 jQuery,Zepto 或者其他 。

 

KeyCode.js

KeyCode.js 是個跨瀏覽器的 JavaScript 常規鍵盤快捷鍵庫。這個庫圍繞鍵盤對象來運行,還有一些 { Int code, bool shift, bool alt, bool ctrl } JavaScript 對象,記錄用户按下的鍵盤對象。translate_event() 方法會返回其中一個對象; hot_key() 獲取其中一個然後返回一個符合 JQuery HotKey 插件或者  Binny V A’s shortcut.js 庫的字符串。

 

Handling Keyboard Shortcuts in JavaScript

使用這個庫,用户可以添加鍵盤快捷鍵到 JavaScript 應用中,它支持Mac 的 Meta Key,但是目前只是測試版,需要小心使用。

 

keyboard.backbone.js

keyboard.backbone.js 依賴於 domEvents.backbone.js,domEvents.backbone.js 又依賴於 jQuery 和 Backbone。keyboard.backbone.js 主要是依賴 domEvents 的 keyDown 和 keyUp(也叫做:key:down 和 key:up),所以如果用户想執行不一樣的 key:press 需要另外一個不同的庫。

 

Kibo

Kibo 是個簡單的 JavaScript 庫,用來處理各種鍵盤事件,沒有任何依賴,而且完全開源。

 

JavaScript Shortcuts Library

這是個令人印象深刻,而且又容易使用的 JavaScript 快捷鍵庫,可以處理各種鍵盤事件。


 

User Keyboard Shortcuts

UserKeyboardShortcuts 是重構了 mootools-more 提供的鍵盤類,提供給用户本地自定義的鍵盤快捷鍵,不需要用户做過多的操作。
用 户只需要用 Keyboard.addShortcuts ( Keyboard.Extras提供的 )來改變他們的快捷鍵。UserKeyboardShortcuts 使用 localStorage (對 cookie 失效)來存儲用户所做的修改,當頁面重新加載的時候恢復原狀。

 

okShortcut

okShortcut 包括兩個方法: jQuery.shortcut.add 和 jQuery.shortcut.remove ,分別用來添加和刪除快捷鍵綁定。兩者都可以綁定組合鍵和進行回調。 jQuery.shortcut.add 可以選擇接收一個選項 hash。

 

jQuery Beeline
Beeline 是用最直接的方式去綁定快捷鍵,為 Web 應用提供鍵盤導航。它是基於 jQuery Hotkeys.


 

jQuery Shortcuts

jQuery Shortcuts 是個超輕量級的方法,使用 jQuery 來綁定快捷鍵(熱鍵)。

 

KEY-BOARD-SHORT-CUTS

key-board-short-cuts 是用 JavaScript 實現的簡單鍵盤快捷鍵示例,它不是一個複雜的 JavaScript 綁定事件。綁定快捷鍵之後所有的行為都需要開發者自己去自定義。


 

jKey

jKey 是另一個非常有用的 JavaScript 快捷鍵庫,用來處理鍵盤事件。它使用 jQuery,所以可以選擇任何可用的元素來設置快捷鍵命令。基本上,任何元素,比如一個輸入框或者文本框,都會有一款適用的快捷鍵命令。


 

Keys.js

Keys.js 是個卓越的瀏覽器應用快捷鍵綁定工具,它可以使用 localStorage 來進行串行化持久性綁定,或者上傳到服務器中,對用户的 Web 應用進行個性化設置。使用相同的 API 就可以很方便的反串行化。
Key.js 擁有 CommonJS 和 AMD 模塊的支持,可以跟 require.js 或者其他模塊加載器一起使用,目前支持的瀏覽器有: IE7+, Firefox 21+, Safari 6+ and Chrome 27+。

欣賞完這麼多方便又驚豔的鍵盤事件處理工具,跟大家分享一下你的感受吧:)

Ubuntu16.04 使用PPA安装JDK8

安装Java 8 ( 支持 Ubuntu 10.04 – Ubuntu 16.04 )

1、如果你在 Ubuntu 软件中心安装过 OpenJDK,请先使用如下命令将其删除:

sudo apt-get purge openjdk*

2、添加 PPA 源

sudo add-apt-repository ppa:webupd8team/java

3、更新下源数据库

sudo apt-get update

4、安装 Oracle Java 8

sudo apt-get install oracle-java8-installer

5、查看版本:

java -version

6、设置 Java 8 环境变量:

sudo apt-get install oracle-java8-set-default

7、java版本切换

sudo update-java-alternatives -s java-8-oracle

8、卸载jdk

sudo apt-get remove oracle-java8-installer

解决安装devstack时从github下载代码速度过慢

将下载源从git://git.openstack.org改为 git://github.com

搜索

openstack4@openstack4-Tecal-RH1288-V2-8S:/opt/devstack$ grep -n -r “openstack.org”  ./stackrc
165:# Another option is https://git.openstack.org
166:GIT_BASE=${GIT_BASE:-git://git.openstack.org}
613:    IMAGE_URL=”http://tarballs.openstack.org/trove/images/ubuntu/mysql.qcow2
openstack4@openstack4-Tecal-RH1288-V2-8S:/opt/devstack$

修改

166:GIT_BASE=${GIT_BASE:-git://git.openstack.org} 将这一行的源地址改为git://github.com

k8s镜像:安装kubernetes,访问不了gcr.io怎么办?

之前在安装k8s的时候,我们提到了依赖的gcr.io/google_containers里的镜像因为GFW的原因取不到,但是暂时没有gcr.io的国内镜像,怎么办呢?

方法1:如果有aws上的EC2虚拟机,远程到虚拟机上docker pull gcr.io/google_containers/xxx,然后tag为docker hub(也就是删掉gcr.io/google_containers/前缀),最后再docker push 到docker hub上自己的namespace下。

方法2:如果没有aws虚拟机,可以去docker hub上去捡垃圾淘宝,找到别人push上去的镜像,取下来打tag。

方法2更可行,但受制于人毕竟是不爽的,比如kubernetes 1.6.0发布了,还得去等着。有没有更好的办法呢?我从同事fenghan那里学到了一个办法。

docker hub提供了一个很棒的功能,Automated Build。

简单来说就是,你可以把你想要build的Docker Image的Dockerfile文件放到github上,然后github上开启对docker hub的授权(读权限就可以了),之后就可以在docker hub上根据这个Dockerfile来自动编译了。换句话说就是,Docker hub为我们提供了一个build的环境,你不需要本地build再push了。

这样,我可以在Github上编写一个简单的只是FROM gcr.io/google_containers/xxx的Dockerfile,然后让docker hub来build Github上的Dockerfile,他们都在墙外,build自然没有问题;然后我再通过docker hub加速器取下来,这样就可以保证是官方发布的了,速度质量都可靠。

详细说明,请参见官方文档。下面简单记录下过程。

github开启对docker hub的读授权

略。

Dockerfile上github

github上新建一个工程,比如我的Dockerfile4k8s,clone到本地。

然后在工程中新增: ./etcd-amd64/Dockerfile,Dockerfile内容为:

FROM gcr.io/google_containers/etcd-amd64:2.2.5
MAINTAINER silenceshell <silenceshell@datastart.cn>

git add/commit/push到github。

想知道google_containers里有哪些镜像,可以查询这里

Docker Hub上创建Automated build

到docker hub上,Create -> Create Automated Build,新增一个Github类型的自动编译,选择Dockerfile4k8s项目;修改Repository的Name为etcd-amd64,简单填下描述,这样就创建了一个Automated Build。

进到Repository etcd-amd64,Build Setting中填写Dockerfile Location为etcd-amd64,修改Docker Tag Name为2.2.5,Save Change and Trigger;然后点Build Details,可以看到build的过程,状态切为Success就可以了。

取到本地并push到private Registry

我们在本地用Harbor搭了一个Private Registry,所以可以给image打tag并push到自己的Registry。顺便推荐一下Harbor,很不错,vmware出品,必属精品。

docker pull silenceshell/etcd-amd64:2.2.5
docker tag silenceshell/etcd-amd64:2.2.5 {your domain}/{your namespace}/etcd-amd64:2.2.5
docker push {your domain}/{your namespace}/etcd-amd64:2.2.5

最后在k8s用的时候,别忘了tag为gcr.io/google_containers/etcd-amd64:2.2.5。

btw,如果你用的是kubeadm 1.6.0正式版本(not alpha),那么恭喜,新版本支持自定义registry了,可以不用再自己去tag了。

发现安家:Google Container Registry(gcr.io) 中国可用镜像(长期维护)做的非常好了,推荐大家直接用anjia0532,非常方便,更新也比较及时。。

如何使用

将 gcr.io/google-containers 替换为 anjia0532 即可.