作者:钟龙伟
一、MapR是什么?
MapR是MapR Technologies, Inc的一个产品,号称下一代Hadoop,使Hadoop变为一个速度更快、可靠性更高、更易于管理、使用更加方便的分布式计算服务和存储平台,同时性能也不断提高。它将极大的扩大了Hadoop的使用范围和方式。它包含了开源社区的许多流行的工具和功能,例如Hbase、Hive。它还100%和Apache Hadoop的API兼容。它能够为客户节约一半的硬件资源消耗,使更多的组织能够利用海量数据分析的力量提高竞争优势。目前有两个版本,M3和M5,其中M3是免费的,M5为收费版,有试用期。具体功能差别见:http://www.mapr.com/products/mapr-editions.html。
1、MapR的整体结构:
二、为什么要MapR?
MapR比之其他Hadoop发行版具有三大优越性:EASY、DEPENDABLE、FAST。
Easy:
Dependable:
Fast:
在MapR的官方网站http://www.mapr.com/products/why-mapr.html上有更详细的介绍,有兴趣可以进一步了解。
三、如何使用MapR
MapR 可以像hadoop那样支持单点安装伪集群,但在集群环境下才能真正体现它的威力。我这里在四台服务器上安装MapR Edition 3 ,主要介绍M3-RHEL or CentOS安装。
Hardware Requirements
每个节点必须满足下表所列的要求:
Minimum Requirements | Recommended |
|
|
Disk
Software
确保在所有的节点上安装的是64位的操作系统,目前MapR仅支持以下操作系统:
主机名唯一(使用虚拟机的需注意这一点)
每个节点安装JDK:
安装前准备
最好用root用户执行整个过程,我之前用其他用户碰到了一些问题。这里统一默认使用root用户。
规划:
确定集群规模,以及在每台机器上安装的服务。详见:
http://www.mapr.com/doc/display/MapR/Planning+Roles
我这里是:
Node1:CLDB,FileServer,JobTracker,NFS,TaskTracker,WebServer,ZooKeeer。
Node2:FileServer,TaskTracker,ZooKeeer。
Node3:FileServer,TaskTracker,ZooKeeer。
Node4:FileServer,TaskTracker。
disksetup:
setting up disks for MapR是一个重要步骤,查看机器是否有这样一块磁盘空间:具体参考:http://www.mapr.com/doc/display/MapR/Setting+Up+Disks+for+MapR。
在每台机器上创建文件/tmp/disks.txt,列出本机所有可被MapR使用的磁盘。
由于我的机器上没有符合要求的磁盘空间,我的做法是:(这种方法不能很好发挥MapR威力,仅用来测试)
/sbin/modprobe loop
mkdir /disk1/mapr-disks
dd if=/dev/zero of=/disk1/mapr-disks/loop0 bs=1G count=20
/sbin/losetup -f
/sbin/losetup /dev/loop0 /disk1/mapr-disks/loop0
echo /dev/loop0 > /tmp/disks.txt
SSH keyless:
确保服务器之间SSH无密码访问,也很简单,就是在每台服务器执行“ssh-keygen -t rsa”,回车不输入密码,生成密钥和公钥,在某台机器上的/root/.ssh目录下新建authorized_keys文件,将所有机器的公钥内容添加到authorized_keys,再将authorized_keys复制到其他机器的/root/.ssh目录下。在每台机器上SSH登录所有机器(包括自己),第一次会要求输入密码,并记录为已知主机,下次就不用再输了。
安装
1、在所有节点的/etc/yum.repos.d/下创建maprtech.repo文件, 内容为:(注意baseurl中的archive,官方网站上的文档有错)
[maprtech]
name=MapR Technologies
baseurl=http://archive.mapr.com/redhat
enabled=1
gpgcheck=0
protect=1
2、在 node 1, 执行命令:
yum install mapr-cldb mapr-fileserver mapr-jobtracker mapr-nfs mapr-tasktracker mapr-webserver mapr-zookeeper
在 node 2和node 3, 执行命令:
yum install mapr-fileserver mapr-tasktracker mapr-zookeeper
在nodes 4, 执行命令:
yum install mapr-fileserver mapr-tasktracker
3、配置和磁盘格式化,在所有节点执行:
/opt/mapr/server/configure.sh -C <node1IP> -Z <node1IP>,<node2IP>,<node3IP>
/opt/mapr/server/disksetup -F /tmp/disks.txt
4、启动zookeeper,在node1, node2,node3,执行命令:
/etc/init.d/mapr-zookeeper start
注意:MapR中用的是zookeeper3.3.2,有个bug,启动不成功之后再次启动会报错,详见:https://issues.apache.org/jira/browse/ZOOKEEPER-1061。
5、在node1执行:
/etc/init.d/mapr-warden start
在node1用以下命令给用户授权:
/opt/mapr/bin/maprcli acl edit -type cluster -user root:fc
6、许可证书:
在安装证书之前NFS是不可用的,所以在日志中会看到很多ERROR,有两种方法安装证书:通过可视化页面MapR Control System或者命令行。
MapR Control System方法参考:
http://www.mapr.com/doc/display/MapR/M3+-+RHEL+or+CentOS的第11步。
命令行:先在http://mapr.com/register/login.html注册用户,然后注册一个集群,Cluster ID可以在node1上执行:maprcli license showid得到,注册完后得到证书,在node1上新建文件lice保存证书内容,执行:
maprcli license add -is_file true –license lice
证书安装成功,可通过maprcli license list查看。
7、启动NFS,在node1执行:
/opt/mapr/bin/maprcli node services -nodes node1IP -nfs start
8、在node2、node3、node4执行:
etc/init.d/mapr-warden start
9、通过https://node1IP:8443,登录MapR Control System,Enjoy it !
10、在终端进入hadoop下bin目录,输入hadoop mfs -ls / ,查看文件系统;
11、在终端执行
hadoop jar /opt/mapr/hadoop/hadoop-0.20.2/hadoop-0.20.2-dev-examples.jar pi 2 50
更多信息参考:http://www.mapr.com/doc/display/MapR/Home