首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

HDFS+MapReduce+Hive+HBase十分钟快速入门(2)

2012-10-11 
HDFS+MapReduce+Hive+HBase十分钟快速入门(二)9.3.?? 编译Hive在编译Hive之前,请确保HADOOP_HOME和IVY_HOM

HDFS+MapReduce+Hive+HBase十分钟快速入门(二)

9.3.?? 编译Hive

在编译Hive之前,请确保HADOOP_HOME和IVY_HOME两个环境变量已经生效。

1)??????? 使用svn从http://svn.apache.org/repos/asf/hadoop/hive/trunk下载Hive源代码

2)??????? 将下载来的Hive源代码打包,然后上传到Hadoop-A机器

3)??????? 解压Hive源代码包

4)??????? 修改shims/ivy.xml:

只保留0.20.0的配置,否则编译会出错

?

5)??????? 运行ant开始编译:

ant -Dtarget.dir=/usr/local/hadoop/hive -Dhadoop.version=0.20.0 package

这步完成之后,Hive会被安装到/usr/local/hadoop/hive目录下

6)??????? 添加Hive环境变量,在/etc/profile文件中增加如下两行:

export HIVE_HOME=/usr/local/hadoop/hive

export PATH=$HIVE_HOME/bin:$PATH

10.???????????? 安装HBase

1)??????? 从http://svn.apache.org/repos/asf/hadoop/hbase/trunk下载最新的HBase源代码

2)??????? 将HBase源代码打包,并上传到Linux上

3)??????? 解压HBase源代码包

4)??????? 编译HBase:

ant -Dtarget.dir=/usr/local/hadoop/hbase -Dhadoop.version=0.20.0 package

5)??????? 编译成功之后,HBase可能并不象Hive一样自动安装到/usr/local/hadoop/hbase目录下,这个时候需要手工复制到HBase安装目录下:将build/hbase-0.21.0-dev整个目录复制到/usr/local/hadoop目录下,并将hbase-0.21.0-dev重命名成hbase即可

6)??????? 进入/usr/local/hadoop/hbase/conf目录,将hbase-default.xml复制一份,并命名成hbase-site.xml

7)??????? 修改hbase-site.xml:

设置hbase.rootdir的值为:hdfs://Hadoop-A:54310/hbase;

设置hbase.master(hbase.master可能为hbase.master.port)的值为:Hadoop-A:60000

8)??????? 修改hbase-env.sh:

设置环境变量JAVA_HOME:export JAVA_HOME=/usr/local/jre

9)??????? 在Master节点,还需要修改regionservers,在这个文件中列出所有的slave机器,一行一个机器名:

Hadoop-B

Hadoop-C

这一步不用在slave节点上操作。

10)??? 通过以上操作,HBase已经安装和配置好,然后应当打包,将它部署到集群的所有节点上

11.???????????? 体验

11.1.?????? 启动和停止

11.1.1. hadoop

在启动Hadoop集群之前,需要先格式化,在master节点上执行下面的命令即可:

hadoop namenode -format

11.1.2. start-all.sh

这个脚本用来启动Hadoop。

可以通过http://172.25.38.127:50070来查看HDFS的启动情况。

?

可以通过http://172.25.38.127:50030来查看MapReduce的启动情况。

?

11.1.3. stop-all.sh

这个脚本用来停止Hadoop。

11.2.?????? 体验HDFS

HDFS的使用和普通的Linux命令差不多,只不过各类操作都必须作为hadoop命令的参数,如在hadoop上执行ls操作:

hadoop fs -ls /

这条命令相当于Linux下的ls /。

11.3.?????? 体验MapReduce

体验MapReduce,可以使用Hadoop自带的WordCount,如:

hadoop jar wordcount.jar /x/x /z

其中wordcount.jar是WordCount的可执行包,/x/x是源文件,是一段以逗号分隔的英文片断,而/z是结果存放的目录。

11.4.?????? 体验Hive

Hive的使用非常简单,照着http://wiki.apache.org/hadoop/Hive/GettingStarted上说的来操作就可以了。

?

12.???????????? FAQ

12.1.?????? 如何查看Hadoop进程

如果安装了JDK,则在JDK的bin目录下有一个jps命令,可以用来查看java进程,如:

# jps

27612 NameNode

17369 Jps

16206 HQuorumPeer

15423 HMaster

27761 SecondaryNameNode

27839 JobTracker

其中,第一列为进程号,第二列为进程名称。

12.2.?????? ssh端口问题

如果ssh不是使用默认端口,则需要修改hadoop-env.sh文件中的HADOOP_SSH_OPTS环境变量,假设ssh端口号为8000,则可以简单设置为:export HADOOP_SSH_OPTS="-p 8000"

如果安装了HBase,还应当修改hbase-env.sh文件中的HBASE_SSH_OPTS。

12.3.?????? 首次ssh登录问题

首次通过ssh登录另一台机器时,可能会遇到一个yes确认过程,因此在启动之前,应当先手工或使用其它脚本ssh成功登录一次,否则容易遇到如下错误:

r# ./start-hbase.sh

DOSS38-127-sles10: Host key not found from database.

DOSS38-127-sles10: Key fingerprint:

DOSS38-127-sles10: xuror-ledab-buhim-zohok-tanop-cyrig-tysac-gyhyp-refan-semim-pyxex

DOSS38-127-sles10: You can get a public key's fingerprint by running

DOSS38-127-sles10: % ssh-keygen -F publickey.pub

DOSS38-127-sles10: on the keyfile.

DOSS38-127-sles10: warning: tcgetattr failed in ssh_rl_set_tty_modes_for_fd: fd 1: Invalid argument

?

热点排行