Zookeeper安装以及Java在Ubuntu14.04上的编译运行

ZooKeeper的安装(本文档基于Ubuntu14.04)

1:验证Java安装(由于ZooKeeper服务器是用Java创建的,它在JVM上运行)

https://www.cnblogs.com/crazylqy/p/7119030.html

https://blog.csdn.net/ron03129596/article/details/68962448

https://www.cnblogs.com/wanghuaijun/p/5469437.html

https://blog.csdn.net/gaoqiao1988/article/details/51934773

http://www.blogjava.net/hello-yun/archive/2012/05/03/377250.html

https://www.w3cschool.cn/zookeeper/zookeeper_api.html
2、修改配置文件;
进入/opt/zookeeper-3.4.10/conf目录,将zoo_sample.cfg(样板配置文件)命名为zoo.cfg。
里面有两个比较重要的配置:
(1)、dataDir=/opt/zookeeper-3.4.10/data # 数据存放位置,可根据需要修改;
(2)、clientPort=2181 # 服务监听端口,可根据需要修改;
常用操作;
1、Zookeeper服务端启动;
# cd /opt/zookeeper-3.4.10/bin/
#./zkServer.sh start
2、Zookeeper服务端停止;
# cd /opt/zookeeper-3.4.10/bin/
#./zkServer.sh stop
3、Zookeeper服务端重启;
# cd /opt/zookeeper-3.4.10/bin/
#./zkServer.sh restart
4、查看Zookeeper进程;
#ps -ef|grep zookeeper;
5、查看Zookeeper服务端状态;
# cd /opt/zookeeper-3.4.10/bin/
#./zkServer.sh status
6、Zookeeper客户端登陆;
# cd /opt/zookeeper-3.4.10/bin/
#./zkCli.sh -server 127.0.0.1:2181

question:
1./etc/profile和~/.bashrc文件的区别?source /etc/profile命令作用?
环境变量配置原因
环境变量:指定一个目录,运行软件或程序的时候,相关程序会按照目录寻找相关文件
原因:使你可以在非安装目录运行软件

source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改过的初始化文件,使之立即生效,而不必注销并重新登录。
可是当我们打开一个新的命令行从窗口的时候,该/etc/profile里面设置的信息并不能生效。
“~”指当前账号的根目录
“.”表示bashrc是隐藏文件,可以用 ls -a 或 ls -la命令看到
/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系.

在测试的时候,重启登录时会读取/etc/profile和~/.profile文件的内容(此时并不读取/etc/bash.bashrc和~/.bashrc文件)。然后再打开终端时,会去读取/etc/bash.bashrc和 ~/.bashrc文件。这就出现了那种结果。
使用login和non login术语来说,就是使用login 方式是会读取/etc/profile 和 ~/.profile文件。使用non login方式的话,会读取/etc/bash.bashrc 和 ~/.bashrc文件的内容。

也就是说/etc/profile 和 ~/.profile文件是在login时才会读取。所以,在不使用su命令的情况下,只有在Linux启动登录的时候才会被读取(这也就导致了有些软件安装后,要重启才能生效)。
到讲安装软件时的修改这些文件的配置信息 了。安装软件修改这个文件,一般是为了在这个文件中添加用于那些软件的环境变量。在这些配置文件中都可以添加环境变量。但由于,有些文件会被读取,有些文件却不会被读取(这个上面已经说了),所以在不同文件下的配置信息的有效性或者说生效日期就有所不同了。这也导致了在这些文件添加配置信息,要不要重启的问题。

如果是在/etc/bash.bashrc 和 ~/.bashrc文件中添加配置信息,那么打开一个新的shell,就生效了,可以用了(因为打开新的shell会读取这个两个文件)。也可以输入 s o u r c e / e t c / b a s h . b a s h r c ./etc/bash.bashrc命令( .和/之间还有一个空格)来使得在本shell中,也可以生效使用。

    如果是在/etc/profile 和 ~/.profile 文件中添加配置信息。那么就只能重启了。因为这个两个文件只会在login 下才会读取。当然,也是可以使用$source /etc/profile 命令的。但也只能在使用过这个命令的shell才能使用。

2.jar包缺少的错误
3.在Linux终端如何编译和运行Java文件?
Java编译(假设test.java和ceshi.java文件放在/tmp/test/src目录下,依赖的jar文件放在/tmp/test/lib目录下)
1、如果没有依赖jar包,编译单个文件,执行:
javac /tmp/test/src/test.java /tmp/test/src/ceshi.java 或
cd /tmp/test/src
javac test.java ceshi.java
2、如果有依赖jar包需要引入,多个用:隔开 ,如下:
javac -cp /tmp/test/lib/commons-codec-1.4.jar:/tmp/test/lib/commons-httpclient-3.1.jar /tmp/test/src/test.java
Java执行(所以执行实际上执行一条就好,核心那一条会去关联)
1、普通执行
java test ceshi(不能两个里面都要主函数,这样的话只会执行第一个)
2、如有依赖jar包:
java -cp /tmp/test/lib/commons-codec-1.4.jar:/tmp/test/lib/commons-httpclient-3.1.jar:/tmp/test/src/ test ceshi
其中,“cp”表示classpath,后跟路径,创建的是什么就指定哪里,后面再跟包名.类名即可运行。

高级做法:java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个。前些日子找到(发现)-Djava.ext.dirs太好。
其实下面一个非常简单的指令就可以解决了:-D 是设置系统的属性
javac -Djava.ext.dirs=filePath .java//注意这里只需要指定到jar包所在的文件夹就可以了。其中.java表示可以一次编译所有的java文件。
如果想要把编译后的文件放到指定目录,只需要在java文件后加上 -d outputFilePath就可以了,例如下面:
javac -Djava.ext.dirs=filePath *.java -d outputFilePath
执行java程序页是同样,只需要把javac换成java,后面写上主函数所在的java文件的名称就可以了,不用加后缀。例如下面
javac -Djava.ext.dirs=filePath MainJavaName
但是,这种做法有个致命的问题需要引起注意,就是它会覆盖jdk/lib/ext自带的jar包,这里面存放了一些加密算法类的jar包,可以参考博客:
1.https://blog.csdn.net/scugxl/article/details/43240991
2.https://blog.csdn.net/u010900574/article/details/50792353
3.https://blog.csdn.net/github_36181466/article/details/54094408

猜你喜欢

转载自blog.csdn.net/weixin_38725737/article/details/80921459