我是Ubutu(linux)+ Cassandra的新手。
我用OpenJdk测试了我的ubuntu机器上的Cassandra。有一些很好的文章可以解释如何在ubuntu上安装Cassandra,所以我可以这样做。我更改了一些配置值并检查它是否正确运行。
并且,我决定取出cassandra并重新安装以获得干净的。
[什么-I待办事项]
我按照以下步骤卸载Cassandra:
使用apt-get
卸载Cassandraapt-get remove 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
at org.apache.cassandra.service.AbstractCassandraDaemon.initLog4j(AbstractCassandraDaemon.java:86)
at org.apache.cassandra.thrift.CassandraDaemon。(CassandraDaemon.java:62) 找不到主类:org.apache.cassandra.thrift.CassandraDaemon。程序将退出。
并且“/ var / lib / cassandra”,“/ var / log / cassandra”和“/ etc / cassandra”目录下没有文件OTL。
我想知道,我想念的是什么。
答案 0 :(得分:8)
我可以通过执行以下操作完全卸载Cassandra:
apt-get remove cassandra
---删除cassandra目录
rm -rf /var/lib/cassandra
rm -rf /var/log/cassandra
rm -rf /etc/cassandra
然而,在执行上述操作后,仍有一些事情遗留下来,如果您在执行此操作后尝试重新安装它,则无法正常工作,因为安装会检测到剩余的文件并认为您仍然安装了的软件。您将获得一组新目录,但它们将为空。所以,你需要删除所有其他的东西。有些目录和文件需要手动删除。
---找到剩余的Cassandra文件
find / -name 'cassandra'
,或者
find / -name '*cassandra*'
(需要删除系统上剩余的所有文件,或者将一些目录留空或甚至根本不创建。)
上面的命令将返回留下的文件和目录列表。删除它们。
现在,您应该可以:
apt-get update
接下来是:
apt-get install cassandra
这样做之后,我得到了一个全新的安装,在启动Cassandra时,它完成了所有首次启动的东西并启动并运行。
如果由于公钥而导致签名未被验证时出现GPG错误,则需要在安装声明之前进行设置。
答案 1 :(得分:7)
AFAIK,你的卸载步骤是正确的。
检查每个目录的权限。在我在Ubuntu 10.04上安装Cassandra 1.1.6时,/ etc / cassandra由root拥有,而/ var / lib / cassandra和/ var / log / cassandra由cassandra用户和组拥有。
此外,您应该使用init脚本启动cassandra,如下所示:
sudo service cassandra start
而不是直接使用sudo。
我已经看到当以root身份手动运行cassandra而不是cassandra用户时,权限会搞乱,这是init脚本为您处理的事情。
答案 2 :(得分:7)
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}
要重新安装,只需运行此脚本,然后再次安装cassandra,就像第一次一样。
编辑:他们的剧本似乎有点过时了。我不得不将dsc20添加到PACKAGES列表中。 编辑2:链接变坏了(是的 http://www.datastax.com/documentation/opscenter/3.2/webhelp/#opsc/online_help/opscRemovingPackages_t.html,感谢Daisuke Aramaki寻找最新链接答案 3 :(得分:2)
由于我还在同一个XML错误中输入了另一个答案。错误也在this SO post详细说明,其中OP无法启动Cassandra。我按照您的步骤卸载this article上的步骤以重新安装。
问题必定与C *版本有关。我提供的链接(我最初使用的)导致我使用此命令进行安装:
deb http://www.apache.org/dist/cassandra/debian 10x main
而不是那个,我将命令升级为指向Cassandra Debian Version 11(11x)。例如。
deb http://www.apache.org/dist/cassandra/debian 11x main
我还卸载了所有Cassandra明智,重新启动并强制通过新版本的Cassandra
对于在Ubuntu上安装Cassandra的另一个(较旧的)来源,试试Vineet Daniel的Installing Cassandra on Ubuntu
答案 4 :(得分:2)
实际上问题是cassandra无法启动,因为它没有在其配置目录中找到名为“log4j-server.properties”的文件,以解决您在那里遇到的问题,无需再次重新安装,而只是简单地重新安装执行以下操作以解决此问题:
1)从here下载tarball文件。
2)提取它:
$ tar -xzvf apache-cassandra-1.2.5.tar.bin.gz
3)检查cassandra的配置路径在哪里。你可以从名为“/usr/share/cassandra/cassandra.in.sh”的文件中获取配置路径,查看名为“CASSANDRA_CONF”的密钥。
$ gedit /usr/share/cassandra/cassandra.in.sh
4)从名为“conf”
的目录中手动从提取的包中复制丢失的文件(步骤2)$ sudo cp extracted_cassandra/conf/cassandra.yaml /etc/cassandra
$ sudo cp extracted_cassandra/conf/log4j-server.properties /etc/cassandra
提示:
答案 5 :(得分:2)
删除已安装的cassandra包和配置文件:
sudo apt-get purge "cassandra-*" "datastax-*"
删除库和日志目录:
sudo rm -r /var/lib/cassandra
sudo rm -r /var/log/cassandra
答案 6 :(得分:0)
在所有当前受支持的Ubuntu版本中安装Cassandra的最简单方法是安装Cassandra snap软件包。
Cassandra分布式数据库是当前所有受支持的Ubuntu版本中的快照包。 cassandra snap软件包的当前稳定版本是3.7,边缘版本是3.10-SNAPSHOT。要安装cassandra,请运行以下命令:
sudo snap install cassandra
sudo snap connect cassandra:mount-observe
当有可用更新时,cassandra snap软件包将自动更新。
您可以通过以下方式检查cassandra服务的状态:
systemctl status snap.cassandra.cassandra.service
如果能够成功启动Cassandra,请检查群集的状态:
cassandra.nodetool status
在输出中,UN
表示启动并正常:
设置自定义配置:
cat cassandra.yaml | sudo /snap/bin/cassandra.config-set cassandra.yaml
命令:
cassandra.config-get
cassandra.config-set
cassandra.env-get
cassandra.nodetool