24

我是 Ubutu(linux) + Cassandra 的新手。

我用 OpenJdk 在我的 ubuntu 机器上测试了 Cassandra。有一些很好的文章来解释如何在 ubuntu 上安装 Cassandra,所以我可以这样做。我更改了一些配置值并检查它是否正常运行。

而且,我决定移除 cassandra 并重新安装以获得干净的。

[我所做的]

我通过以下步骤卸载 Cassandra:

  1. 使用 apt-get 卸载 Cassandra

    apt-get 删除 cassandra

  2. 删除数据/日志/目录

    rm -rf /var/lib/cassandra

    rm -rf /var/log/cassandra

    rm -rf /etc/cassandra

之后我尝试安装新的 cassandra

apt-get 安装 cassandra

[错误信息]

sudo cassandra -f

线程“主”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下没有文件。

我想知道,我想念什么。

4

6 回答 6

11

通过执行以下操作,我能够完全卸载 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 错误,则需要在安装语句之前进行设置。

于 2014-05-11T17:51:50.623 回答
7

为此,Datastax 提供了一个 bash 脚本:

https://docs.datastax.com/en/ddac/doc/datastax_enterprise/install/uninstallDDAC.html?hl=uninstall%2Ccassandra

下面是脚本代码:

# 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 找到最新的链接)

于 2014-06-09T19:18:17.277 回答
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 脚本为您处理的。

于 2012-11-16T12:03:46.160 回答
2

实际上问题是cassandra无法启动,因为它在其配置目录中找不到名为“log4j-server.properties”的文件,要解决您在那里遇到的问题,无需重新安装,只需执行以下操作解决问题:

1) 从这里下载 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

提示:

  • 了解更多信息。如何安装 cassandra debian 包,检查这个
  • 了解更多信息。如何从他们的存储库安装 cassandra,检查这个

  • 如果要重新安装它,只需执行以下操作:

    $ sudo apt-get 删除卡桑德拉

    $ sudo apt-get install cassandra

于 2013-06-20T19:21:19.447 回答
2

因为我也遇到了同样的 XML 错误,这里有另一个答案。该错误也在此 SO post中详细说明,其中 OP 无法启动 Cassandra。我按照您的步骤卸载并按照本文中的步骤重新安装。


我做了什么——我学到了什么

问题一定与 C* 版本有关。我最初使用的链接引导我使用以下命令进行安装:

deb http://www.apache.org/dist/cassandra/debian 10x main 


取而代之的是,我将命令升级为指向 Cassandra Debian 版本 11 (11x)。例如

deb http://www.apache.org/dist/cassandra/debian 11x main 

我还明智地卸载了 Cassandra 的所有内容,重新启动并强制通过新版本的 Cassandra


资源

对于在 Ubuntu 上安装 Cassandra 的另一个(旧)源,请尝试 Vineet Daniel在 Ubuntu 上安装 Cassandra

于 2013-05-13T16:37:43.603 回答
2
  1. 删除已安装的 cassandra 包和配置文件:

    sudo apt-get purge "cassandra-*" "datastax-*"

  2. 删除库和日志目录:

    sudo rm -r /var/lib/cassandra

    sudo rm -r /var/log/cassandra

于 2016-03-03T06:40:38.750 回答