安装Accumulo——突破自己,就是成长
前言
在我刚开始接触分布式集群的时候,是自己在几台虚拟机中手动安装的 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.xml 和 conf/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_PREFIX 和 ZOOKEEPER_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——突破自己,就是成长的更多相关文章
- 零碎记录Hadoop平台各组件使用
>20161011 :数据导入研究 0.sqoop报warning,需要安装accumulo: 1.下载Microsoft sql server jdbc, 使用ie下载,将42版j ...
- GeoMesa-单机搭建
系统安装 CentOS部署 新建虚拟电脑 类型:Linux 版本:Red Hat(64-bit) 创建虚拟硬盘 [x] 动态分配(磁盘占用较小) [ ] 固定大小(使用起来较快) 安装设置(设置roo ...
- 架构师成长之路2.2-PXE+Kickstart安装部署
点击返回架构师成长之路 架构师成长之路2.2-PXE+Kickstart安装部署 系统测试环境: 实验环境:VMware Workstation 12 系统平台:CentOS Linux releas ...
- 架构师成长之路5.1-Saltstack安装及入门
点击架构师成长之路 架构师成长之路5.1-Saltstack安装及入门 (安装.配置.启动) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需 ...
- 我的Python成长之路---GitHub使用之注册GitHub并安装Git客户端
一.注册GitHub账号 进入GitHub官方网站,输入用户名.邮箱地址及密码,点击“Sign up for GitHub”. 选择免费的,不要问我为什么,除非有钱任性选择付费版 验证邮箱地址并激活G ...
- linux小白成长之路1————通过Parallels安装CentOS虚拟机
以下是通过Mac版Parallels安装CentOS虚拟机的教程: 1.在Parallels向导中选择"下载CentOS",点击"继续":  2.点击&quo ...
- linux小白成长之路2————yum安装火狐浏览器
1.使用终端: CentOS左上角:应用程序>收藏>终端  2.使用root权限安装软件: 输入:sudo -i 输入密码(上篇安装linux虚拟机时设定的登录密码,也是超级管理员密码) ...
- linux小白成长之路4————centos7配置自动更新安装安全补丁
[内容指引] 安装yum-cron; 修改配置:nano: 手工启动服务: 将服务设置为开机自动启动. 为保证linux系统的安全性以及稳定性,可以使用yum-cron服务自动更新: 1.安装yum- ...
- linux小白成长之路6————安装Java+Apache(httpd)+Tomcat
[内容指引] 安装Java环境: 查看JDK版本: 安装Apache(httpd); 安装Tomcat: 设置服务开机启动. 1.安装Java环境 指令: yum intall java-1.8.0* ...
随机推荐
- CSS盒模型的深度思考及BFC
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 题目:谈一谈你对CSS盒模型的认识 专业的面试,一定会问 CSS 盒模型 ...
- (2018干货系列一)最新Java学习路线整合
怎么学Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. 话不多说,直接上干货: ...
- DNS 访问 Service - 每天5分钟玩转 Docker 容器技术(138)
在 Cluster 中,除了可以通过 Cluster IP 访问 Service,Kubernetes 还提供了更为方便的 DNS 访问. kubeadm 部署时会默认安装 kube-dns 组件. ...
- nimi SearchEngin 项目思路及算法
最近做一个轻量文本搜索项目,在项目实行过程中,如果使用余弦求网页相似度,不能适应海量网页查重.看了那本<这就是搜索引擎 核心技术详解>后,对simhash算法有一定的理解,并且喜欢上了这 ...
- R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?- ...
- 基于am3358的蜂鸣器测试
#include <sys/ioctl.h> #include<stdio.h> #include <fcntl.h> #include <sys/types ...
- Netty的并发编程实践5:不要依赖线程优先级
当有多个线程同时运行的时候,由线程调度器来决定哪些线程运行.哪些等待以及线程切换的时间点,由于各个操作系统的线程调度器实现大相径庭,因此,依赖JDK自带的线程优先级来设置线程优先级策略的方法是错误和非 ...
- hihocoder Challenge 29 D. 不上升序列
这场爆零比赛题目还是要补的 这道题据说是出烂掉的原题,我找了下 CF13.C/ CF371 div1 C,一模一样 我服这群原题大佬 为 当时,使 不严格递增的最小步数,那么 Otherwise 显然 ...
- Coins HDU - 2844
Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix opened p ...
- httpclient的get带参不带参post带参不带参的简单应用
一,基础的的应用 1.1,get的无参请求 @Test public void doGet() throws Exception { //创建一个httpclient对象 CloseableHttpC ...