首页 文章 精选 留言 我的

精选列表

搜索[渲染问题],共10000篇文章
优秀的个人博客,低调大师

elasticsearch不能以root运行的问题

当我们在使用elasticsearch的时候,如果是以root权限来执行elasticsearch ./elasticsearch 1 则会有以下报错 Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:94) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:160) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details. 1 2 3 4 5 6 7 这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行ElasticSearch 创建elsearch用户组及elsearch用户 groupadd elsearch useradd elsearch -g elsearch -p elasticsearch 1 2 更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch chown -R elsearch:elsearch elasticsearch 1 elasticsearch为你elasticsearch的目录名称 切换到elsearch用户再启动 su elsearch #切换账户 cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录 ./elasticsearch 1 2 3 启动后会打印正常启动日志信息如下 [elsearch@localhost elasticsearch-2.4.0]$ ./bin/elasticsearch [2016-11-30 09:00:07,658][INFO ][node ] [Black Bolt] version[2.4.0], pid[25504], build[ce9f0c7/2016-08-29T09:14:17Z] [2016-11-30 09:00:07,674][INFO ][node ] [Black Bolt] initializing ... [2016-11-30 09:00:08,248][INFO ][plugins ] [Black Bolt] modules [lang-groovy, reindex, lang-expression], plugins [elasticsearch-analysis-ik, head], sites [head] [2016-11-30 09:00:08,267][INFO ][env ] [Black Bolt] using [1] data paths, mounts [[/home (/dev/mapper/centos-home)]], net usable_space [172.1gb], net total_space [172.9gb], spins? [possibly], types [xfs] [2016-11-30 09:00:08,267][INFO ][env ] [Black Bolt] heap size [990.7mb], compressed ordinary object pointers [true] [2016-11-30 09:00:08,268][WARN ][env ] [Black Bolt] max file descriptors [4096] for elasticsearch process likely too low, consider increasing to at least [65536] [2016-11-30 09:00:09,561][INFO ][ik-analyzer ] [Dict Loading] ik/custom/mydict.dic [2016-11-30 09:00:09,579][INFO ][ik-analyzer ] [Dict Loading] ik/custom/single_word_low_freq.dic [2016-11-30 09:00:09,589][INFO ][ik-analyzer ] [Dict Loading] ik/custom/ext_stopword.dic [2016-11-30 09:00:09,935][INFO ][node ] [Black Bolt] initialized [2016-11-30 09:00:09,935][INFO ][node ] [Black Bolt] starting ... [2016-11-30 09:00:09,975][INFO ][transport ] [Black Bolt] publish_address {172.17.0.1:9300}, bound_addresses {[::]:9300} [2016-11-30 09:00:09,979][INFO ][discovery ] [Black Bolt] elasticsearch/YGWbxIWSRyejtiM4WqHwAA [2016-11-30 09:00:13,003][INFO ][cluster.service ] [Black Bolt] new_master {Black Bolt}{YGWbxIWSRyejtiM4WqHwAA}{172.17.0.1}{172.17.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received) [2016-11-30 09:00:13,010][INFO ][http ] [Black Bolt] publish_address {172.17.0.1:9200}, bound_addresses {[::]:9200} [2016-11-30 09:00:13,010][INFO ][node ] [Black Bolt] started [2016-11-30 09:00:13,323][INFO ][gateway ] [Black Bolt] recovered [1] indices into cluster_state [2016-11-30 09:00:15,576][INFO ][cluster.routing.allocation] [Black Bolt] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[sports][2]] ...]). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 之后如果再启动的话(如果是以root权限登录服务器),只需要执行切换账户,然后运行elasticsearch就可以了 su elsearch #切换账户 cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录 ./elasticsearch 1 2 3 ElasticSearch后台启动命令 ./elasticsearch -d 1 查看后台命令是否启动成功 ps aux|grep elasticsearch 1 结果 elsearch 3119 4.6 3.2 3535488 250876 pts/1 Sl 16:50 0:09 /opt/java/jdk1.7.0_75/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/home/py-project/elasticsearc-2.4.0 -cp /home/py-project/elasticsearch-2.4.0/lib/elasticsearch-2.4.0.jar:/home/py-project/elasticsearch-2.4.0/lib/* org.elasticsearch.bootstrap.Elasticsearch start -d elsearch 3254 0.0 0.0 110224 916 pts/1 S+ 16:54 0:00 grep --color=auto elasticsearch

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

浅谈Java多线程的同步问题

多线程的同步依靠的是对象锁机制,synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。 下面以一个简单的实例来进行对比分析。实例要完成的工作非常简单,就是创建10个线程,每个线程都打印从0到99这100个数字,我们希望线程之间不会出现交叉乱序打印,而是顺序地打印。 先来看第一段代码,这里我们在run()方法中加入了synchronized关键字,希望能对run方法进行互斥访问,但结果并不如我们希望那样,这是因为这里synchronized锁住的是this对象,即当前运行线程对象本身。代码中创建了10个线程,而每个线程都持有this对象的对象锁,这不能实现线程的同步。 复制代码 代码 package com.vista; class MyThread implements java.lang.Runnable { private int threadId; public MyThread(int id) { this.threadId = id; } @Override public synchronized void run() { for (int i = 0; i < 100; ++i) { System.out.println("Thread ID: " + this.threadId + " : " + i); } } } public class ThreadDemo { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { for (int i = 0; i < 10; ++i) { new Thread(new MyThread(i)).start(); Thread.sleep(1); } } } 复制代码 从上述代码段可以得知,要想实现线程的同步,则这些线程必须去竞争一个唯一的共享的对象锁。 基于这种思想,我们将第一段代码修改如下所示,在创建启动线程之前,先创建一个线程之间竞争使用的Object对象,然后将这个Object对象的引用传递给每一个线程对象的lock成员变量。这样一来,每个线程的lock成员都指向同一个Object对象。我们在run方法中,对lock对象使用synchronzied块进行局部封锁,这样就可以让线程去竞争这个唯一的共享的对象锁,从而实现同步。 复制代码 代码 package com.vista; class MyThread implements java.lang.Runnable { private int threadId; private Object lock; public MyThread(int id, Object obj) { this.threadId = id; this.lock = obj; } @Override public void run() { synchronized(lock) { for (int i = 0; i < 100; ++i) { System.out.println("Thread ID: " + this.threadId + " : " + i); } } } } public class ThreadDemo { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { Object obj = new Object(); for (int i = 0; i < 10; ++i) { new Thread(new MyThread(i, obj)).start(); Thread.sleep(1); } } } 复制代码 从第二段代码可知,同步的关键是多个线程对象竞争同一个共享资源即可,上面的代码中是通过外部创建共享资源,然后传递到线程中来实现。我们也可以利用类成员变量被所有类的实例所共享这一特性,因此可以将lock用静态成员对象来实现,代码如下所示: 复制代码 代码 package com.vista; class MyThread implements java.lang.Runnable { private int threadId; private static Object lock = new Object(); public MyThread(int id) { this.threadId = id; } @Override public void run() { synchronized(lock) { for (int i = 0; i < 100; ++i) { System.out.println("Thread ID: " + this.threadId + " : " + i); } } } } public class ThreadDemo { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { for (int i = 0; i < 10; ++i) { new Thread(new MyThread(i)).start(); Thread.sleep(1); } } } 复制代码 再来看第一段代码,实例方法中加入sychronized关键字封锁的是this对象本身,而在静态方法中加入sychronized关键字封锁的就是类本身。静态方法是所有类实例对象所共享的,因此线程对象在访问此静态方法时是互斥访问的,从而可以实现线程的同步,代码如下所示: 复制代码 代码 package com.vista; class MyThread implements java.lang.Runnable { private int threadId; public MyThread(int id) { this.threadId = id; } @Override public void run() { taskHandler(this.threadId); } private static synchronized void taskHandler(int threadId) { for (int i = 0; i < 100; ++i) { System.out.println("Thread ID: " + threadId + " : " + i); } } } public class ThreadDemo { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { for (int i = 0; i < 10; ++i) { new Thread(new MyThread(i)).start(); Thread.sleep(1); } } } 复制代码 本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2010/03/13/1684877.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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文件系统,支持十年生命周期更新。

用户登录
用户注册