前言

在我刚开始接触分布式集群的时候,是自己在几台虚拟机中手动安装的 Hadoop 和 Spark ,所以当时对 Hadoop 的配置有个简单的印象 ,但是后面发现了 Cloudera 和 Ambari 之后(两个分布式集群自动管理工具),就再没有手动安装过。这就导致我用了很久的 Accumulo 却从未手动安装过,使用 Cloudera 安装导致我根本没有关心 Accumulo 是怎么从无到有冒出来的,只是简单了解了安装的大概过程,并学会了如何使用它。

今天不同,当我再次安装 Cloudera 集群的时候,首先选择了 Ubuntu 16.04 操作系统进行安装(是的,我是个非常愿意尝试新鲜事物的人),无耐装好之后才发现使用 16.04 导致 Accumulo 的安装包(Parcel)根本无法进行集群内的分发,这就意味着我无法安装它,折腾了半天之后未果,当然自己也有想着手动安装一下算了,但是懒惰的本性让我打消了这个念头,我不愿意冒着折腾半天未必能成功的风险去手动安装,因为我有更好的解决方案——只需要将操作系统退回到 14.04 即可,因为我有多次在 14.04 上安装成功的经验,所以胸有成竹。但气愤的是不知什么问题,整个集群安装成功之后在安装 Accumulo 的时候一直报错,报错的原因是环境变量的问题,用惯了集群,我根本不知道这个问题应当如何解决,多次折腾未果。把人逼到绝路的时候,也就是应当改变的时候了,于是只能走上手动安装,这就有了今天这篇文章。

安装过程

打开 Accumulo 官网,很自然的先去找 quickstart,网址为:http://accumulo.apache.org/quickstart-1.x/。文档里写的很清楚,但是刚接触的人(比如我这个貌似老手的新手),也会有点不知所云,学习的最好方式就是去尝试,于是我毫不犹豫的就按照提示步骤执行下去。

首先是下载,无需多言,在 http://accumulo.apache.org/downloads/ 中选择自己想要安装的版本即可。

下载完后,解压缩并进入目录,前几步都没有问题,按照要求执行即可,当走到 Initialization 的时候一直在报错,折腾了许久才慢慢明白怎么回事,解决问题的过程也就对 Accumulo 和 Accumulo 的安装有了更加清晰的认识,知道了 Accumulo 到底是怎么回事。

安装过程中的难点主要在于配置 conf/accumulo-site.xmlconf/accumulo-env.sh 这两个文件,要配置好这两个文件就要对 Cloudera 和基础的 Hadoop 有了解。我先来介绍一下这两个文档如何修改,再来对修改的原因和整体做一介绍。

  • conf/accumulo-site.xml

instance.volumes 改为 hdfs://master:8020/accumulo,master 为 hadoop namenode 节点的

IP 或者 hostname,8020 为 cdh 环境下的 HDFS 端口;将 instance.zookeeper.host 修改为 zk1:2181,zk2:2181,zk3:2181,其中 zk1-3 为 zookeeper 的节点 IP 或 hostname,当然不一定是 3 个,根据自己的情况而定;将 trace.token.property.password 修改为你想要设置的密码;将 general.classpaths 修改如下:

$ACCUMULO_HOME/lib/accumulo-server.jar,
$ACCUMULO_HOME/lib/accumulo-core.jar,
$ACCUMULO_HOME/lib/accumulo-start.jar,
$ACCUMULO_HOME/lib/accumulo-fate.jar,
$ACCUMULO_HOME/lib/accumulo-proxy.jar,
$ACCUMULO_HOME/lib/[^.].*.jar,
$ZOOKEEPER_HOME/zookeeper[^.].*.jar,
$HADOOP_CONF_DIR,
$HADOOP_PREFIX/share/hadoop/common/[^.].*.jar,
$HADOOP_PREFIX/jars/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/common/lib/(?!slf4j)[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/hdfs/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/mapreduce/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/yarn/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/yarn/lib/jersey.*.jar

主要是添加 $HADOOP_PREFIX/jars/[^.].*.jar 项,这个文件中存放了与 hadoop 有关的所有 jar 包,注意匹配处必须写为 [^.].*.jar,直接写通配符 *.jar 不能正常工作,这涉及到正则表达式,具体可以查阅相关资料。

  • conf/accumulo-env.sh

设置 HADOOP_PREFIX/opt/cloudera/parcels/CDH-5.11.2-1.cdh5.11.2.p0.4,最后一级目录根据安装版本不同会发生变化;设置 JAVA_HOME/usr/jdk1.8.0_*,此处是自己安装的 jdk 目录,安装 jdk 查阅相关资料,JDK1.8应该是个不错的选择;设置 ZOOKEEPER_HOME/opt/cloudera/parcels/CDH/lib/zookeeper;设置 HADOOP_CONF_DIR/etc/hadoop/conf

完成上述两个文件的修改,在接着官方文档执行即可,所以整个步骤其实非常简单。下面我来分析一下整个安装过程并通过安装过程简单分析一下 Accumulo 的大概工作原理。

分析

在下载并解压完压缩包之后会执行 ./bin/bootstrap_config.sh,其实这一步的目的就是为了生成和简单配置上面要修改的两个文件,整个安装过程的核心也在上面的两个文件,先来看一下 conf/accumulo-env.sh 文件要修改的内容,其实就是 Hadoop 安装路径、JDK 路径和 Zookeeper 安装路径,这三个路径刚好说明了 Accumulo 的工作原理:基于 JDK 通过 Zookeeper 进行集群调度,并将自己的数据保存到 HDFS 中,就像普通的数据库数据保存在文件系统中,Accumulo 将数据保存到 HDFS 中,这样就实现了分布式数据库。由于我是采用 CDH 安装的 Hadoop 集群,所以 HADOOP_PREFIXZOOKEEPER_HOME 是固定的,Cloudera 通过 pacel 管理集群,所以其安装路径都是在 /opt/cloudera/parcels 文件夹下。

知道了上面这些也就明白了 conf/accumulo-site.xml 的修改原因,instance.volumes 指定了 HDFS 节点,使得 Accumulo 能够正常访问 HDFS;instance.zookeeper.host 指定了 zookeeper 集群的路径,使得 zookeeper 能够管理 accumulo;general.classpaths 指定了 Accumulo 工作的 jar 包。

总结

在我尝试手动安装 Accumulo 并成功之后,我才发现 Accumulo 并不复杂。一切事情都是这样,你想象中很复杂或者惧怕的事情其实只要你动手去实践、一点点去突破就会慢慢的解决,当然一切看似简单的事情也都会有各种各样的问题,只有亲自去尝试才是解决问题和发现问题的最好方式。

纸上得来终觉浅,绝知此事要躬行!共勉

安装Accumulo——突破自己,就是成长的更多相关文章

  1. 零碎记录Hadoop平台各组件使用

    >20161011 :数据导入研究    0.sqoop报warning,需要安装accumulo:    1.下载Microsoft sql server jdbc, 使用ie下载,将42版j ...

  2. GeoMesa-单机搭建

    系统安装 CentOS部署 新建虚拟电脑 类型:Linux 版本:Red Hat(64-bit) 创建虚拟硬盘 [x] 动态分配(磁盘占用较小) [ ] 固定大小(使用起来较快) 安装设置(设置roo ...

  3. 架构师成长之路2.2-PXE+Kickstart安装部署

    点击返回架构师成长之路 架构师成长之路2.2-PXE+Kickstart安装部署 系统测试环境: 实验环境:VMware Workstation 12 系统平台:CentOS Linux releas ...

  4. 架构师成长之路5.1-Saltstack安装及入门

    点击架构师成长之路 架构师成长之路5.1-Saltstack安装及入门 (安装.配置.启动) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需 ...

  5. 我的Python成长之路---GitHub使用之注册GitHub并安装Git客户端

    一.注册GitHub账号 进入GitHub官方网站,输入用户名.邮箱地址及密码,点击“Sign up for GitHub”. 选择免费的,不要问我为什么,除非有钱任性选择付费版 验证邮箱地址并激活G ...

  6. linux小白成长之路1————通过Parallels安装CentOS虚拟机

    以下是通过Mac版Parallels安装CentOS虚拟机的教程: 1.在Parallels向导中选择"下载CentOS",点击"继续":  2.点击&quo ...

  7. linux小白成长之路2————yum安装火狐浏览器

    1.使用终端: CentOS左上角:应用程序>收藏>终端  2.使用root权限安装软件: 输入:sudo -i 输入密码(上篇安装linux虚拟机时设定的登录密码,也是超级管理员密码) ...

  8. linux小白成长之路4————centos7配置自动更新安装安全补丁

    [内容指引] 安装yum-cron; 修改配置:nano: 手工启动服务: 将服务设置为开机自动启动. 为保证linux系统的安全性以及稳定性,可以使用yum-cron服务自动更新: 1.安装yum- ...

  9. linux小白成长之路6————安装Java+Apache(httpd)+Tomcat

    [内容指引] 安装Java环境: 查看JDK版本: 安装Apache(httpd); 安装Tomcat: 设置服务开机启动. 1.安装Java环境 指令: yum intall java-1.8.0* ...

随机推荐

  1. mysql常用脚本及命令记录

    mysql导出用户权限 mysql中直接通过授权即可使用对应用户,不必使用创建用户命令(如CREATE USER 'xxx'@'%' IDENTIFIED BY 'XXX';)先建用户再授权. 方法一 ...

  2. Scrum方法论

    产品负责人: 代表客户或未来游戏玩家.产品负责人需要确保所有有趣的功能都能在游戏中实现,还负责对游戏完整观感的理解. Scrum主管: 代表理性思维.需要主持每日Scrum会议,并确保每个人都在执行任 ...

  3. Luogu P1092 虫食算

    题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 +8468#6633 44445509678 其中# ...

  4. RVDS4.0 + JLINK 调试 cortex-A9

    1.RVDS4.0的安装与破解 参看http://blog.csdn.net/cp1300/article/details/7772645这位大神的帖子吧,写的很详细. 2.JLINK驱动的安装 这里 ...

  5. grub2与grub区别

    关于版本: GRUB2 使之版本号为1.98之后的grub:GRUB legacy(版本为0.97)是指GRUB,而非GRUB2,grub是指 grub1.97 和以前的,grub 2 指的是 gru ...

  6. DML触发器1

    数据库触发器是特殊的存储程序.通常不直接调用它们,而是由数据库的事件触发. 触发器分类: >DML触发器 >instead-of触发器 >系统事件触发器,还可以是DDL 一. DML ...

  7. 挖一挖不常用到而又很实用的重载-Trim

    这个我想没有那个开发人员说不知道,但是里面有一个重载,这个不知道有多少开发人员知道! 可以看到,我可以去掉字符串前后的指定字符,只要我在char[]中指定即可,而不是仅仅去掉空格,这次为什么要提它,是 ...

  8. 7.C++类与封装的概念

    类通常分为以下两部分 -类的内部具体实现 -类的外部使用方法 比如: 用户使用手机,只需要知道如何使用. 而手机开发者,则需要考虑手机内部的实现细节. 类的封装 并不是类的每个成员变量和成员函数都要对 ...

  9. var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)

    一,原理 1.1,解析1 将字符串解析为JavaScript代码,比如:var a = "alert('a');";这里的a就只是一个字符串而已,输出的话也是alert(a);这句 ...

  10. C#图解教程 第十七章 泛型

    泛型 什么是泛型 一个栈的示例 C#中的泛型 继续栈示例 泛型类声明泛型类创建构造类型创建变量和实例 使用泛型的栈的示例比较泛型和非泛型栈 类型参数的约束 Where子句约束类型和次序 泛型方法 声明 ...