hive的安装和初步使用 - DMLLLLL
试着安装了一下hive,在这里记录一下过程
大家都知道hive是用来简化map-reduce过程的,但是真正使用的时候却跟想象中有差距
单机版安装过程如下:
首先确保已经安装好了hadoop, hdfs可以正常使用
下载hive:http://apache.stu.edu.tw/hive/
确保下载的是安装包而不是源码包
然后解压安装包
配置环境变量/etc/profile:
export HIVE_HOME=/datapool/fengkai/hive/export PATH=$PATH:$HIVE_HOME/binexport CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
配置hive-env.sh,添加hadoop_home:
HADOOP_HOME=/path/hadoop
配置hive-site.xml:
首先要在mysql数据库里面创建hive数据库, 用来存储hive的元数据至于数据库是安装在本机还是其他机器是都可以的然后配置相关的内容:<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://mysqlhost:3306/hive</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>password</value><description>password to use against metastore database</description></property> <property><name>javax.jdo.option.ConnectionUserName</name><value>username</value><description>Username to use against metastore database</description></property>
这些都是在hive中需要对数据库进行的配置
其中还有一处需要处理,就是一些system path的处理
在默认的hive-site.xml的默认配置中有这样的配置:
<property> <name>hive.exec.local.scratchdir</name> <value>${system:java.io.tmpdir}/${system:user.name}</value> <description>Local scratch space for Hive jobs</description> </property>
这里的${system:java.io.tmpdir}/${system:user.name}是需要自己修改的,不然启动服务的时候会出错
都配好之后,直接运行hive就可以进入到hive的交互界面了
hive建表语句:
create table test (id int, name string) row format delimited fields terminated by ',' stored as textfile 跟数据库建表语句很像, 其中上面的语句中指出了导入文件的时候需要用','做间隔, 也可以指定其他间隔符
hive导入数据和查询:
lc.txt 1,hello 2,cxy hive> load data local inpath '/localpath/lc.txt' hive> select * from test; OK 1 hello 2 cxy 可见就可以正常查询和统计了
最后写一点总结,其实hive在导入数据的时候也是需要先将数据结构化成指定的格式再导入
然后使用hive统计的时候能够看到hive是把语句转化成了map-reduce的语句格式使用的
使用hive确实能够方便统计的时候不用写mapreduce程序,不过还是需要一步预处理的过程