hive安装同时以mysql为元数据库

来源:互联网 发布:淘宝买家号权重是什么 编辑:程序博客网 时间:2024/05/29 07:19

hive 学习
用hadoop-2.6.0 apache-hive-1.2.0-bi
要保证hadoop集群事先配置好了
4.配置hive
cp hive-default.xml.template hive-site.xml 
修改hive-site.xml(删除所有内容,只留一个<property></property>)
添加如下内容:
<property>
 <name>javax.jdo.option.ConnectionURL</name>
 <value>jdbc:mysql://SURY: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>root</value>
 <description>username to use against metastore database</description>
</property>


<property>
 <name>javax.jdo.option.ConnectionPassword</name>
 <value>123</value>
 <description>password to use against metastore database</description>
</property>


一开始报错
ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected


解决方法是:
将hive下的新版本jline的JAR包拷贝到hadoop下:
cp /hive/apache-hive-1.1.0-bin/lib/jline-2.12.jar ./


创建一个表,同时指定分隔符“\t”
CREATE TABLE student (
  id INT,
  name varchar(200)
  )
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;


将本地的数据load进hdfs中
LOAD DATA LOCAL INPATH '/root/test.txt' OVERWRITE INTO TABLE student;


grant all privileges on *.* to root@IP identified by ‘sunry′;
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;


修改密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');


连接mysql数据库
mysql -h localhost -u root -p


mysql 在192.168.8.11 中的密码:root  在192.168.8.100的密码是sunry




报这个错
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
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:519)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

解决方法:
  <property>
    <name>hive.exec.local.scratchdir</name>
<!--<value>${system:java.io.tmpdir}/${system:user.name}</value> -->
    <value>/sunry/apache-hive-1.2.0-bin/tmp</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <!--<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>-->
<value>/sunry/apache-hive-1.2.0-bin/tmp/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
  在hive-site.xml中,这两个属性没配,事先要建好/sunry/apache-hive-1.2.0-bin/tmp这个目录。
  




0 0
原创粉丝点击