【大数据】Accumulo开发实战

Accumulo安装及其配置

环境: Ubuntu20

依赖: Java11、 hadoop、 zookeeper

Accumulo是一个使用谷歌BigTable的设计思路,基于Hadoop、Zookeeper和Thrift构建的,可靠的、可伸缩的、高性能的排序分布式KV数据存储系统。这个开源项目是由美国国家安全局开发,并于2011年发布的。目前,Accumulo属于Apache的顶级项目,它具有BigTable中所没有的一些功能,例如基于单元的访问控制。

安装

安装地址

tar xfz ./accumulo.tar.gz

Accumulo基于hdfs做文件系统,zookeeper为分布式管理.

运行Accumulo前还需要hdfs和zookeeper环境

Hadoop安装

这个网上较多,可以搜索查看。

Zookeeper安装

参考教程: 如何在Ubuntu 20.04上安装Apache ZooKeeper - A5互联 - 博客园

下载地址: https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

拷贝到Ubuntu环境

解压:

tar zxf apache-zookeeper-3.6.2-bin.tar.gz
# 进入zookeeper

cd apache-zookeeper-3.6.2-bin
# 按照规范应该改名为 zoo.crg
cd conf/
mv zoo_sample.cfg zoo.cfg

接下来,使用以下命令将提取的目录重命名为zookeeper并移动至/opt/目录

sudo mv apache-zookeeper-3.6.2-bin /opt/zookeeper

接下来,使用以下命令更改zookeeper目录的所有权(username为你的用户名):

chown -R username:username /opt/zookeeper

在独立模式下配置ZooKeeper
接下来,您将需要创建ZooKeeper配置文件以独立模式设置ZooKeeper。您可以使用以下命令创建它:

nano /opt/zookeeper/conf/zoo.cfg

修改以下行:

tickTime=2500
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=80

完成后,保存并关闭文件。然后,使用以下命令启动ZooKeeper服务:

cd /opt/zookeeper
bin/zkServer.sh start

您应该获得以下输出:

ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

默认情况下,ZooKeeper监听端口2181。您可以使用以下命令检查它:

ss -ntpl | grep 2181

您应该获得以下输出:

LISTEN 0 50 *:2181 *:* users:(("java",pid=12749,fd=53))

启动客户端进入命令行

./bin/zkClient.sh

配置 Accumulo

已经将 Hadoop 的 NameNode 默认端口从 8020 修改为 9000,并且希望在不修改端口的情况下运行 Accumulo,你需要确保 Accumulo 配置文件中指向正确的 Hadoop NameNode 端口。以下是具体步骤:

1. 修改 Accumulo 配置文件

Accumulo所有配置全在conf文件夹.

编辑 Accumulo 的配置文件 accumulo.properties,确保其中的 Hadoop NameNode 地址和端口与你的 Hadoop 配置一致。

conf/accumulo.properties

找到并修改以下配置项:

properties

instance.volumes=hdfs://localhost:9000/accumulo

确保 instance.volumes 指向正确的 Hadoop NameNode 地址和端口。

accumulo需要基于hdfs与zookeeper,通过修改conf/accumulo-env.sh中的HADOOP_HOME 与 ZOOKEEPER_HOME地址为实际安装地址

image-20241224213927895

arball 发行版的目录中有四个脚本 用于管理 Accumulo:bin

  1. accumulo- 运行 Accumulo 命令行工具并启动 Accumulo 进程

  2. accumulo-service- 将单个 Accumulo 进程作为后台运行 服务业

  3. accumulo-cluster- 在单个节点或多个节点上管理 Accumulo 集群 节点

  4. accumulo-util- 用于构建原生库的 Accumulo 实用程序,运行 罐子等。

Accumulo[[]] 启动

启动hdfs

cd /your_hadoop_path
bash ./sbin/start-dfs.sh
# 查看是否运行成功
jps

启动 zookeeper

cd /your_zookeeper_path
./bin/zkServer.sh start

初始化实例

./accumulo init

# 输入实例名称与密码

image-20241218165155177

配置客户端参数

修改 conf/accumulo-client.properties文件中的instance.name为刚刚init的实例名称

instance.name=myinstance

运行 Accumulo

运行 Accumulo 的方法有多种:

  1. 使用命令运行 Accumulo 进程,该命令在前台运行进程,并且不会重定向 stderr/stdout。用于创建运行 Accumulo 的 init.d 脚本。accumulo
  2. 将单个 Accumulo 进程作为服务运行,该服务使用命令但对进程进行后台处理、重定向 stderr/stdout 并管理 pid 文件。如果您使用的是集群管理工具(即 Ansible、Salt 等),这将非常有用。accumulo-service``accumulo
  3. 使用 (用于运行服务) 在一个或多个节点上运行 Accumulo 集群。对于本地开发和测试,或者您没有在生产中使用自己的集群管理工具,这很有用。accumulo-cluster``accumulo-service

具体可以学习:Apache Accumulo® 用户手册 版本 1.10

启动tserver

启动tablet server

accumulo tserver

shell连接

accumulo提供了一个shell连接服务器

accumulo shell -u root
# 密码为实例创建时设置的

之后进入accumulo shell界面

image-20241224215314190

测试

我们可以在终端中建表,但我们得先运行manger server,不然建表会堵塞

我们可以通过accumulo-service来启动单个服务,其中manager为管理服务,其中后续文章介绍

image-20241224215520232

accumulo-service manager start
root@myinstance> tables
accumulo.metadata
accumulo.root

root@myinstance> createtable mytable

root@myinstance mytable>

root@myinstance mytable> tables
accumulo.metadata
accumulo.root
mytable

root@myinstance mytable> createtable testtable

root@myinstance testtable>

root@myinstance testtable> deletetable testtable
deletetable { testtable } (yes|no)? yes
Table: [testtable] has been deleted.

root@myinstance>
root@myinstance mytable> scan

root@myinstance mytable> insert row1 colf colq value1
insert successful

root@myinstance mytable> scan
row1 colf:colq [] value1

Apache Accumulo® 用户手册 版本 1.10 --- Apache Accumulo® User Manual Version 1.10

posted @ 2024-12-26 22:33  RunTimeErrors  阅读(83)  评论(0)    收藏  举报