前提条件:安装好相应版本的Hadoop(可以参见《在Fedora上部署Hadoop2.2.0伪分布式平台》)、安装好JDK1.6或以上版本(可以参见《如何在Linux平台命令行环境下安装Java1.6》)
Hive的下载地址:http://archive.apache.org/dist/hive/,你可以选择你适合的版本去下载。本博客下载的Hive版本为0.8.0。你可以运行下面的命令去下载Hive,并解压:
[wyp@wyp Downloads]$ wget \ http://archive.apache.org/dist/hive/hive-0.10.0/hive-0.10.0.tar.gz [wyp@wyp Downloads]$ tar -zxvf hive-0.10.0.tar.gz
用wget下载的文件存放在你当前的路径,当前路径可以用pwd命令得到。解压完Hive之后,可以看到其目录的结构为:
[wyp@wyp Downloads]$ cd hive-0.10.0/ [wyp@wyp hive-0.8.0]$ ls -l total 132 drwxr-xr-x. 3 wyp wyp 4096 Dec 13 2011 bin drwxr-xr-x. 2 wyp wyp 4096 Oct 31 11:21 conf drwxr-xr-x. 6 wyp wyp 4096 Oct 31 11:16 docs drwxr-xr-x. 5 wyp wyp 4096 Dec 13 2011 examples drwxr-xr-x. 4 wyp wyp 4096 Oct 31 11:16 lib -rw-rw-r--. 1 wyp wyp 23208 Dec 13 2011 LICENSE -rw-rw-r--. 1 wyp wyp 897 Dec 13 2011 NOTICE -rw-rw-r--. 1 wyp wyp 4439 Dec 13 2011 README.txt -rw-rw-r--. 1 wyp wyp 66301 Dec 13 2011 RELEASE_NOTES.txt drwxr-xr-x. 4 wyp wyp 4096 Dec 13 2011 scripts drwxrwxr-x. 27 wyp wyp 4096 Oct 31 11:16 src [wyp@wyp hive-0.8.0]$
现在我们需要配置Hive,这样才能够运行Hive。进入conf文件夹,并将hive-default.xml.template文件的内容复制到hive-site.xml文件中,操作如下:
[wyp@wyp hive-0.10.0]$ cd conf/ [wyp@wyp conf]$ cp hive-default.xml.template hive-site.xml
在hive-site.xml文件中替换掉以下配置为你电脑实际的配置,在我电脑配置如下:
<property> <name>hive.metastore.warehouse.dir</name> <value>/home/wyp/cloud/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive_hdp?characterEncoding=UTF-8 &createDatabaseIfNotExist=true</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.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property>
Hive将元数据存储在RDBMS中,比如MySQL、Derby中。Hive默认是用Derby数据库,这里我修改为MySQL(所以你要确保你电脑上面已经安装好了MySQL数据库),所以配置如上。我们需要mysql驱动jar包mysql-connector-java-5.1.22-bin.jar 拷贝到 $HIVE_HOME/lib/ 目录下。然后编辑/etc/profile文件,将Hive的home目录添加进去,操作如下:
[wyp@wyp conf]$ sudo vim /etc/profile 在里面添加以下语句,当然你得修改Hive的home路径为你自己的 export HIVE_HOME=/home/wyp/Downloads/hive-0.10.0 export PATH=$PATH:$HIVE_HOME/bin
最后让上面的修改生效,请运行下面的命令:
[wyp@wyp conf]$ source /etc/profile
现在可以试一下,hive是否安装好(需要启动Hadoop,否则不能运行成功!):
[wyp@wyp conf]$ hive hive>
如果出现了上述情况,说明你的hive安装成功了!
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Hive安装与配置】(https://www.iteblog.com/archives/807.html)
感谢楼主的分享,初学hive,我想知道用mysql保存metadata的好处是什么呢?
最后执行hive错误为
[Fatal Error] hive-site.xml:132:94: 对实体 "createDatabaseIfNotExist" 的引用必须以 ';' 分隔符结尾。
14/08/30 17:45:03 FATAL conf.Configuration: error parsing conf file:/home/whh/soft/hive/conf/hive-site.xml
org.xml.sax.SAXParseException; systemId: file:/home/whh/soft/hive/conf/hive-site.xml; lineNumber: 132; columnNumber: 94; 对实体 "createDatabaseIfNotExist" 的引用必须以 ';' 分隔符结尾。
修改下面配置就ok
jdbc:mysql://localhost:3306/hive_hdp?characterEncoding=UTF-8&createDatabaseIfNotExist=true
要修改为jdbc:mysql://localhost:3306/hive_hdp?characterEncoding=UTF-8&createDatabaseIfNotExist=true
jdbc:mysql://localhost:3306/my_hive?characterEncoding=UTF-8&createDatabaseIfNotExist=true是这个要添加amp;
jdbc:mysql://localhost:3306/my_hive?characterEncoding=UTF-8&createDatabaseIfNotExist=true是这个要添加amp;