HDFS+MapReduce+Hive+HBase十分钟快速入门(二)
在编译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
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已经安装和配置好,然后应当打包,将它部署到集群的所有节点上
在启动Hadoop集群之前,需要先格式化,在master节点上执行下面的命令即可:
hadoop namenode -format
这个脚本用来启动Hadoop。
可以通过http://172.25.38.127:50070来查看HDFS的启动情况。
?
可以通过http://172.25.38.127:50030来查看MapReduce的启动情况。
?
这个脚本用来停止Hadoop。
HDFS的使用和普通的Linux命令差不多,只不过各类操作都必须作为hadoop命令的参数,如在hadoop上执行ls操作:
hadoop fs -ls /
这条命令相当于Linux下的ls /。
体验MapReduce,可以使用Hadoop自带的WordCount,如:
hadoop jar wordcount.jar /x/x /z
其中wordcount.jar是WordCount的可执行包,/x/x是源文件,是一段以逗号分隔的英文片断,而/z是结果存放的目录。
Hive的使用非常简单,照着http://wiki.apache.org/hadoop/Hive/GettingStarted上说的来操作就可以了。
?
如果安装了JDK,则在JDK的bin目录下有一个jps命令,可以用来查看java进程,如:
# jps
27612 NameNode
17369 Jps
16206 HQuorumPeer
15423 HMaster
27761 SecondaryNameNode
27839 JobTracker
其中,第一列为进程号,第二列为进程名称。
如果ssh不是使用默认端口,则需要修改hadoop-env.sh文件中的HADOOP_SSH_OPTS环境变量,假设ssh端口号为8000,则可以简单设置为:export HADOOP_SSH_OPTS="-p 8000"
如果安装了HBase,还应当修改hbase-env.sh文件中的HBASE_SSH_OPTS。
首次通过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
?