单台服务器上安装Hadoop和Hive十五分钟教程

淘宝开放平台博客 » hadoop hive 十分钟教程

单台服务器上安装Hadoop和Hive十五分钟教程

单台服务器上学习Hadoop和Hive十分钟教程

Hadoop是个很流行的分布式计算解决方案,Hive是基于hadoop的数据分析工具。

一般的学习者不是太容易找到多台服务器来做集群学习hadoop,所以hadoop官方文档提供了在单台服务器上运行hadoop的指南(hive是基于hadoop的,它不关心有几台服务器,只要有hadoop就行了),来教大家怎样在一台硬件机器上模拟一个hadoop集群,这种模式只适合用来学习练手,真正要做分布式计算,是会配置在多台机器上的。

下面是一个最简单的安装使用hadoop/hive的文档:

下载Hadoop、Hive

a)         Hadoop下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/core/

b)        Hive下载地址:http://www.apache.org/dyn/closer.cgi/hive/

选择较新的稳定版本下载即可,下载到任意目录都可以,解压开就可以运行的,不需要编译安装。

这里要注意,Hive 0.6不支持Hadoop 0.21,我是使用Hadoop 0.20.2 + Hive 0.6.0测试成功的(测试于2011年3月16日)

检查环境

Hadoop依赖Java和SSH

Java

Hadoop 0.20要求Java 1.6,最好是从Sun官方下载安装的,通过java –version确认你有没有装java以及java的版本。

输出像这样说明是OK的:

$ java -version

java version “1.6.0_17″

输出像这样说明没装java:

chin@lily ~ $ java -version

-bash: java: command not found

去sun的网站下载个JDK来装上(SUN被Oracle收购了,所以下载地址的域名是oracle.com):http://www.oracle.com/technetwork/java/javaee/downloads/index.html

SSH

i.              确认有没有安装sshd服务和ssh客户端工具

一般服务器都有sshd服务的(因为你要远程连过去操作这个服务器呀),如果没有,说明你是通过linux桌面来操作的,用yum, apt-get之类的包管理工具装上就好了:

chin@lily ~ $ sudo apt-get install ssh

chin@lily ~ $ sudo apt-get install rsync

ii.              确认可以用ssh免密码登录localhost

输入ssh localhost命令

chin@lily ~ $ ssh localhost

如果直接登录进去了而没问你要密码(屏幕提示如下),就是OK的

Last login: Wed Mar 16 15:06:21 2011 from *.*.*.*

如果问你要密码(屏幕提示如下):

chin@lily ~ $ ssh localhost

chin@localhost’s password:

就需要简单设置一下,方法如下:

chin@lily ~ $ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa

chin@lily ~ $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

这两个命令的意思是让你从本地ssh到localhost的时候使用证书登录,密码是空。

做完之后再用ssh localhost验证一下。最好logout之后再来试,因为如果你ssh localhost成功了,就已经在localhost(在软件概念里,已经是在远程服务器上了)里了,再ssh localhost的话,会问你要密码的,听起来是不是像盗梦空间,哈哈!所以全部退出,退到未登录状态,再来试,不容易出错一些。

解压、配置hadoop

解压

chin@lily ~ $ tar zxf hadoop-0.20.2.tar.gz

进入解压后的hadoop目录

chin@lily ~ $ cd hadoop-0.20.2

chin@lily ~/hadoop-0.20.2 $

修改配置文件

iii.              设置JAVA_HOME

编辑conf/hadoop-env.sh文件,找到:

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun

把前面的注释符号#去掉,这个#是注释的意思

把等号后面的路径改为你的JDK所在的目录,如你的java可执行文件在/usr/bin/java,则写成(不要包含bin):

export JAVA_HOME=/usr

如果不知道java在什么地方请用whereis java查询

iv.              配置hadoop的单机集群模式(伪集群模式)

按此文档的指示改:

http://hadoop.apache.org/common/docs/r0.20.0/quickstart.html#PseudoDistributed

修改conf/core-site.xml,内容改为:

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://localhost:9000</value>

</property>

</configuration>

修改conf/hdfs-site.xml,内容改为:

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

修改conf/mapred-site.xml,内容改为:

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>localhost:9001</value>

</property>

</configuration>

初始化hadoop Namenode

执行:bin/hadoop namenode –format

看到successfully formatted

chin@lily ~/hadoop-0.20.2 $ bin/hadoop namenode -format

11/03/16 16:12:03 INFO namenode.NameNode: STARTUP_MSG:

/************************************************************

一堆日志输出,为节省篇幅,不贴了

11/03/16 16:12:04 INFO common.Storage: Storage directory /tmp/hadoop-chin/dfs/name has been successfully formatted.

启动运行hadoop

执行:bin/start-all.sh

chin@lily 16:12:04 ~/hadoop-0.20.2 $ bin/start-all.sh

starting namenode, logging to 一个日志文件

localhost: starting datanode, logging to一个日志文件

localhost: starting secondarynamenode, logging to  一个日志文件

starting jobtracker, logging to一个日志文件

localhost: starting tasktracker, logging to一个日志文件

会看到这个脚本依次启动了namenode, secondarynamenode, datanode, jobtracker, tasktracker,只有这五个全部成功启动才算成功,用jps命令看一下启动了哪些java进程:

chin@lily 16:30:57 ~/hadoop-0.20.2 $ jps

24106 TaskTracker

23931 SecondaryNameNode

24001 JobTracker

25095 Jps

23712 NameNode

24741 DataNode

至此,Hadoop安装成功

在HDFS中建立hive要用的目录

chin@lily ~/hadoop-0.20.2 $ bin/hadoop fs -mkdir /tmp

chin@lily ~/hadoop-0.20.2 $ bin/hadoop fs -mkdir /user/hive/warehouse

chin@lily ~/hadoop-0.20.2 $ bin/hadoop fs -chmod g+w /tmp

chin@lily ~/hadoop-0.20.2 $ bin/hadoop fs -chmod g+w /user/hive/warehouse

解压Hive

chin@lily ~ $ tar zxf hive-0.6.0-bin.tar.gz

chin@lily ~ $ cd hive-0.6.0-bin

chin@lily ~/hive-0.6.0-bin $

设置HADOOP_HOME

chin@lily ~/hadoop-0.20.2 $ export HADOOP_HOME=/home/chin/hadoop-0.20.2

运行Hive

chin@lily ~/hive-0.6.0-bin $ bin/hive

Hive history file=/tmp/chin/hive_job_log_chin_201103161721_2092136471.txt

hive >

至此,Hive运行成功

原文地址:https://www.cnblogs.com/lexus/p/2818075.html