我是Ubutu(linux)+ Cassandra的新手.
我用OpenJdk在我的ubuntu机器上测试了Cassandra.有一些很好的文章可以解释如何在ubuntu上安装Cassandra,所以我可以这样做.我更改了一些配置值并检查它是否正确运行.
并且,我决定删除cassandra并重新安装以获得干净的cassandra.
[我所做的]
我通过以下步骤卸载Cassandra:
使用apt-get卸载Cassandra
apt-get删除cassandra
删除数据/日志/目录
rm -rf/var/lib/cassandra
rm -rf/var/log/cassandra
rm -rf/etc/cassandra
之后我尝试安装新的cassandra
apt-get install cassandra
[错误信息]
sudo cassandra -f线程"main"中的异常java.lang.ExceptionInInitializerError引起:java.lang.RuntimeException:无法找出log4j配置:log4j-server.properties
在org.apache.cassandra.service.AbstractCassandraDaemon.initLog4j(AbstractCassandraDaemon.java:86)
在org.apache.cassandra.thrift.CassandraDaemon.(CassandraDaemon.java:62)找不到主类:org.apache.cassandra.thrift.CassandraDaemon.程序将退出
并且"/ var/lib/cassandra","/ var/log/cassandra"和"/ etc/cassandra"目录下没有文件OTL.
我想知道,我想念的是什么.
小智 9
通过执行以下操作,我能够完全卸载Cassandra:
apt-get remove cassandra
Run Code Online (Sandbox Code Playgroud)
---删除cassandra目录
rm -rf /var/lib/cassandra
rm -rf /var/log/cassandra
rm -rf /etc/cassandra
Run Code Online (Sandbox Code Playgroud)
但是,在执行上述操作后,仍有一些事情遗留下来,如果您在执行此操作后尝试重新安装它,则无法正常工作,因为安装会检测到剩余的文件并认为您仍然安装了该软件.您将获得一组新目录,但它们将为空.所以,你需要删除所有其他的东西.需要手动删除目录和文件.
---找到剩下的Cassandra文件
find / -name 'cassandra'
Run Code Online (Sandbox Code Playgroud)
要么,
find / -name '*cassandra*'
Run Code Online (Sandbox Code Playgroud)
(需要删除系统上剩余的所有文件,或者将一些目录留空或甚至根本不创建).
上面的命令将返回留下的文件和目录列表.删除它们.
现在,你应该能够做到:
apt-get update
Run Code Online (Sandbox Code Playgroud)
其次是:
apt-get install cassandra
Run Code Online (Sandbox Code Playgroud)
在这之后,我得到了一个全新的安装,并在启动Cassandra时,它完成了所有首次启动的东西并启动并运行.
如果由于公钥而导致签名未被验证时出现GPG错误,则需要在安装语句之前进行设置.
AFAIK,您的卸载步骤是正确的.
检查每个目录的权限.在我在Ubuntu 10.04上安装的Cassandra 1.1.6中,/ etc/cassandra由root拥有,而/ var/lib/cassandra和/ var/log/cassandra由cassandra用户和组拥有.
此外,您应该使用init脚本启动cassandra,如下所示:
sudo service cassandra start
Run Code Online (Sandbox Code Playgroud)
而不是直接用sudo开始.
我已经看到,当以root身份手动运行cassandra而不是cassandra用户时,权限会变得混乱,这是init脚本为您处理的内容.
Datastax为此目的提供了一个bash脚本:
继承脚本代码:
# Stop services
/etc/init.d/cassandra stop
/etc/init.d/dse stop
/etc/init.d/opscenter-agent stop
# Remove packages
PACKAGES=(dsc dsc1.1 dsc12 dsc20 cassandra apache-cassandra1 dsc-demos \
dse dse-libhadoop-native dse-libhadoop dse-libcassandra dse-hive dse-libhive dse-pig \
dse-libpig dse-demos dse-libsqoop dse-libtomcat dse-liblog4j dse-libsolr dse-libmahout dse-full)
DEB_PACKAGES=(python-cql python-thrift-basic)
RPM_PACKAGES=(python26-cql python26-thrift)
if [ `which dpkg` ]; then
PLIST=(${PACKAGES[@]} ${DEB_PACKAGES[@]})
dpkg -P ${PLIST[*]}
rm -rf /etc/apt/sources.list.d/datastax.list
else
PLIST=(${PACKAGES[@]} ${RPM_PACKAGES[@]})
yum -y remove ${PLIST[*]}
rm -rf /etc/yum.repos.d/datastax.repo
fi
# Cleanup log and configuration files
rm -rf /var/lib/cassandra/* /var/log/{cassandra,hadoop,hive,pig}/* /etc/{cassandra,dse}/* \
/usr/share/{dse,dse-demos} /etc/default/{dse,cassandra}
Run Code Online (Sandbox Code Playgroud)
要重新安装,只需运行此脚本,然后再次安装cassandra,就像第一次一样.
编辑:似乎他们的脚本略有过时.我不得不将dsc20添加到PACKAGES列表中.
| 归档时间: |
|
| 查看次数: |
28368 次 |
| 最近记录: |