安装Hive 过程笔记

Linux大全评论182 views阅读模式

从这里下载hive-0.7.1-cdh3u1.tar.gz。

在安装了Hadoop的namenode上解压Hive:

$tar zxvf hive-0.7.1-cdh3u1.tar.gz -C /home/hadoop/cdh3 

修改hive安装目录下/conf/hive-env.sh.template中的HADOOP_HOME为实际的Hadoop安装目录;
添加环境变量

$sudo gedit /etc/profile

export HIVE_HOME=/home/hadoop/cdh3/hive-0.7.1-cdh3u1
export PATH=$PATH:HIVE_HOME/bin

然后启动Hive

$hive

如果能够进入Hive的shell页面,并能浏览,则表示Hive已经可以使用了。

引用

hadoop@Ubuntu:~$ hive

Hive history file=/tmp/hadoop/hive_job_log_hadoop_201110241652_1651346475.txt

hive> show tables;

OK

Time taken: 3.496 seconds

在安装过程中,第一次启动Hive没有成功,后来在网上查到原因如下,并成功解决:
错误如下:

  1. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf   
  2.         at java.lang.Class.forName0(Native Method)   
  3.         at java.lang.Class.forName(Class.java:247)   
  4.         at org.apache.hadoop.util.RunJar.main(RunJar.java:149)   
  5. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf   
  6.         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)   
  7.         at java.security.AccessController.doPrivileged(Native Method)   
  8.         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)   
  9.         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)   
  10.         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)   
  11.         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)  

解决方法是,安装Hadoop时,修改Hadoop目录下/conf/hadoop-env.sh时,添加HADOOP_CLASSPATH变量覆盖了原有的变量,改成如下的形式即可:

HADOOP_CLASSPATH=
$HADOOP_CLASSPATH:....
红色为添加部分。问题解决。

这样安装的元数据保持在内嵌的数据库Derby中,只能允许一个会话连接,如果要支持多用户多会话,则需要一个独立的元数据库,目前比较流行的是使用MySQL,下面进行配置。

1)安装好MySQL服务器端和MySQL客户端,并启动MySQL服务。 http://www.linuxidc.com/Linux/2012-03/55922.htm

2)为Hive建立相应的MySQL帐号,并赋予足够的权限
进入MySQL控制台:

mysql -uroot -p
  1. CREATE USER 'hive' IDENTIFIED BY 'hive';  

赋予权限

  1. GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;  
  1. mysql -h localhost -u hive -p  

3) 建立Hive专用的元数据库

  1. create database hive  

4)在本地安装MySQL客户端

5)在Hive的conf目录下修改配置文件hive-site.xml(如果没有该文件,复制hive-default.xml并改名为hive-site.xml),配置文件修改如下,红色部分为修改内容

  1. <property>  
  2.   <name>javax.jdo.option.ConnectionURL</name>  
  3.   <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>  
  4.   <description>JDBC connect string for a JDBC metastore</description>  
  5. </property>  
  6.   
  7. <property>  
  8.   <name>javax.jdo.option.ConnectionDriverName</name>  
  9.   <value>com.mysql.jdbc.Driver</value>  
  10.   <description>Driver class name for a JDBC metastore</description>  
  11. </property>  
  12.   
  13. <property>  
  14.   <name>javax.jdo.option.ConnectionUserName</name>  
  15.   <value>root</value>  
  16.   <description>username to use against metastore database</description>  
  17. </property>  
  18.   
  19. <property>  
  20.   <name>javax.jdo.option.ConnectionPassword</name>  
  21.   <value>root123</value>  
  22.   <description>password to use against metastore database</description>  
  23. </property>  

企鹅博客
  • 本文由 发表于 2020年7月20日 10:37:51
  • 转载请务必保留本文链接:https://www.qieseo.com/148103.html

发表评论