前言

在我刚开始接触分布式集群的时候,是自己在几台虚拟机中手动安装的 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. find命令 参数

    记一下我遇到过的: 中 !表示否定 -a 表示并且 -o  或者   perm注意权限模式,有无 -,单表含义不同,有-是表示属主.组.其他组权限对应(即某位为0时,表示不指定要匹配的权限,而不是没有 ...

  2. Action写法心得

    最近一段时间,一直在忙着做项目,这个项目的运用的是SSH2三大框架,页面是用dojo技术. 我之前对dojo有所了解,但是好长时间都在弄Flex和JSP写页面,dojo没有得到运用,导致有所生疏:另外 ...

  3. Indent Guides for Visual Studio 代码格式化收缩插件

    代码格式化收缩插件 下载地址:http://indentguide.codeplex.com/releases/view/110312 更多关注付义方技术博客:http://blog.csdn.net ...

  4. sea.js介绍

    网址:http://seajs.org/docs/ SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等Ja ...

  5. SDL显示文字

    前面教程里,我们只显示图片,没提到如何显示文字, SDL本身没有显示文字功能,它需要用扩展库SDL_ttf来显示文字.ttf是True Type Font的缩写,ttf是Windows下的缺省字体,它 ...

  6. C#连接oracle数据库步骤

    1.  确认操作系统类型,操作系统是64位还是32位: 2.  按对应版本安装oralce客户端版本(64位还是32位): 3.  安装oralce管理员模块,同时赋予安装目录权限 4.  注册old ...

  7. pat1051-1060

    1051 自己写的非常麻烦 http://blog.csdn.net/biaobiaoqi/article/details/9338397 的算法比较好,我的就贴下吧,主要对入栈出栈不够理解 #inc ...

  8. ASP.NET 后台打开新页面

    [TOC] Response.Write 这是最常见的后台打开新页面的方法. Response.Write("<script>window.open('~/FileView.as ...

  9. BZOJ 5039: [Jsoi2014]序列维护

    5039: [Jsoi2014]序列维护 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 282  Solved: 169[Submit][Status ...

  10. [HDU2296]Ring

    vjudge Description For the hope of a forever love, Steven is planning to send a ring to Jane with a ...