如何在ubuntu上重新安装cassandra?

时间:2012-11-15 02:33:33

标签: cassandra

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

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

并且,我决定取出cassandra并重新安装以获得干净的。

[什么-I待办事项]

我按照以下步骤卸载Cassandra:

  1. 使用apt-get

    卸载Cassandra
      

    apt-get remove cassandra

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

      

    rm -rf / var / lib / cassandra

         

    rm -rf / var / log / cassandra

         

    rm -rf / etc / cassandra

  3. 之后我尝试安装新的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。

    我想知道,我想念的是什么。

7 个答案:

答案 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脚本:

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寻找最新链接

答案 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

提示:

  • 了解更多信息。如何安装cassandra debian软件包,请查看this
  • 了解更多信息。如何从他们的存储库安装cassandra,请检查this

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

    $ sudo apt-get remove cassandra

    $ sudo apt-get install cassandra

答案 5 :(得分:2)

  1. 删除已安装的cassandra包和配置文件:

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

  2. 删除库和日志目录:

    sudo rm -r /var/lib/cassandra

    sudo rm -r /var/log/cassandra

答案 6 :(得分:0)

Ubuntu 14.04及更高版本

在所有当前受支持的Ubuntu版本中安装Cassandra的最简单方法是安装Cassandra snap软件包。


如何安装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