hive-1.21用mysql做元数据库安装详解及遇到的问题解答

DT-大数据 hive1.2.1用mysql作为元数据库搭建

Hive只在一个节点上安装即可

安装前提是hadoop-2.6.3已正确安装配置并能正常启动

1.下载apache-hive-1.2.1-bin.tar.gz
2.解压更名

[hadoop@master ~]# tar -zxf apache-hive-1.2.1-bin.tar.gz -C /home/hadoop/

[hadoop@master ~]# mv apache-hive-1.2.1-bin hive-1.2.1

3配置mysql

rpm -qa | grep mysql没有安装的话
yum -y install mysql-server

[root@master ~] service mysqld start

[root@master ~] mysql -uroot -p

Enter password:(回车即可)

mysql>   insert into mysql.user(Host,User,Password) values("hadoop","hive",password("hive"));
                create database hive;

#(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
                grant all on hive.* to hive@'%'  identified by 'hive';
                grant all on hive.* to hive@'localhost'  identified by 'hive';
                grant all on hive.* to hive@'hadoop'  identified by 'hive';
                flush privileges;

myql -uhive -p(ERROR 1045 (28000): Access denied for user 'hive'@'localhost' (using password: YES)
               原因:such an anonymous user would "mask" any other user like '[any_username]'@'%' when connecting from localhost.
'hive'@'localhost' does match 'hive'@'%', but would match (e.g.) ''@'localhost' beforehands
      解决办法:在表中删除mysql.user中删除hive和root之外的other user的记录,

4配置hive

1 mv hive-default.xml.template hive-site.xml  
 
修改hive-site.xml(删除所有内容,只留一个<property></property>) 
添加如下内容: 
<property>
   <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://localhost:3306/hive?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>hive</value>
   <description>username to use against metastore database</description>
 </property>
<property>
   <name>javax.jdo.option.ConnectionPassword</name>
   <value>hive</value>
   <description>password to use against metastore database</description>  
  </property>

2 修改hive-env.sh         
cp conf/hive-env.sh.template conf/hive-env.sh
export HIVE_HOME=/home/hadoop/hive-1.2.1/
export HIVE_CONF_DIR=/home/hadoop/hive-1.2.1/conf
3 修改hive-config.sh
vim ../bin/hive-config.sh 
在最后一行添加以下内容
export HIVE_HOME=/home/hadoop/hive-1.2.1/
                      export JAVA_HOME=/usr/local/jdk1.8.0_91
                      export HADOOP_HOME=/home/hadoop/hadoop-2.6.3 
6 下载驱动包(mysql-connector-java-5.1.22.tar.gz)
             将jar包放在hive-1.2.1/lib/


7 先启动hadoop,mysql,再启动hive

错误1:(之前配置hive-site-xml,没有删掉原来的才会出现)
Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: 
java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
解决办法:vi hive-1.2.1/conf/hive-site-xml 把原来的hive.exec.local.scratchdir   hive.downloaded.resources.dir  
${路径}改成绝对路径
/home/hadoop/hive-1.2.1/iotmp是新建的临时文件夹
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/home/hadoop/hive-1.2.1/iotmp</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>/home/hadoop/hive-1.2.1/iotmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

错误2:
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: 
Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
原因以及解决办法 :
 元数据mysql 用户权限问题。 仔细检查mysql,解决了权限后问题解决。或者是javax.jdo.option.ConnectionURL没改
错误3:
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
原因:hadoop目录下存在老版本jline:

/hadoop-2.5.2/share/hadoop/yarn/lib:

-rw-r--r-- 1 root root   87325 Mar 10 18:10 jline-0.9.94.jar
解决办法:cp /hive/apache-hive-1.1.0-bin/lib/jline-2.12.jar /home/hadoop/hadoop-2.6.3/share/hadoop/yarn/lib/

每个hive版本都有其对应的配置安装方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值