centos 6.5-hadoop-2.2.0配置hive1.2.1


  在centos 6.5 上已经配置好了hadoop-2.2.0,然后想在其上配置hive,先下了个hive最新版的1.2.1,搞了半天,配置失败,又换了hive-1.1.0和0.9.0,都没配成功,最后还是用的hive1.2.1,最新版的。下面是配置过程。

1. 将hive-1.2.1-bin.tar.gz 解压到某一目录,这里解压到/usr/local/下。

2. 配置环境变量

   vi /etc/profile

  export HIVE_HOME=/usr/local/hive-1.2.1

  export PATH=$PATH:$HIVE_HOME/bin

 配置完成以后,source一下。

3. 在hdfs下建几个目录,并为其设定权限

hdfs dfs -mkdir -p  /user/hive/warehouse

hdfs dfs -mkdir -p /user/hive/tmp

hdfs dfs -mkdir -p /user/hive/log

hdfs dfs -chmod g+w /user/hive/warehouse

hdfs dfs -chmod g+w /user/hive/tmp

hdfs dfs -chmod g+w /user/hive/log


4.进入到conf目录

cp hive-log4j.properties.template hive-log4j.properties

cp hive-env.sh.template hive-env.sh

cp hive-default.xml.template hive-site.xml

cp hive-exec.log4j.template hive-exec.log4j


5.配置 hive-site.xml


<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive_metadata?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>

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>

<property>

<name>hive.querylog.location</name>

<value>/usr/hive/log</value>

</property>

#这个是设定临时文件目录

<property>

<name>hive.exec.scratdir</name>

<value>/usr/hive/tmp</value>

</property> 

有一点需要注意,把这个文件中的{system:java.io.temdir}/${system:user.name}改为一个绝对路径如/usr/log/

否则会报错:

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:444) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616) 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.main(RunJar.java:160) Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D at org.apache.hadoop.fs.Path.initialize(Path.java:148) at org.apache.hadoop.fs.Path.<init>(Path.java:126) at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:487) at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430) ... 7 more Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D at java.net.URI.checkPath(URI.java:1804) at java.net.URI.<init>(URI.java:752) at org.apache.hadoop.fs.Path.initialize(Path.java:145) ... 10 more

6.配置日志文件

 修改hive-log4j.properties和hive-exec-log4j.properties

hive-log4j.properties


hive.log.dir=/user/hive/log/${user.name} //存放日志的路径

log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter


hive-exec-log4j.properties

hive.log.dir=/user/hive/log/${user.name}

log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter


7.在mysql上创建数据库


如果没有安装mysq,需要提前安装,安装的方式有两种

第一种,yum安装

yum install mysql-server


一路安装,成功后,配置环境变量即可。


第二种,用二进制包安装。

参考:linux安装mysql

create database hive_metadata;

grant all on hive_metadata.* to hive@'%' identified by 'hive';

grant all on hive_metadata.* to hive@localhost identified by 'hive';

ALTER DATABASE hive_metadata CHARACTER SET latin1;

flush privileges;

 

将mysql的驱动包mysql-connector-java-5.1.22-bin.jar 上传到 hive_home/lib 下,如/usr/local/hive-1.2.1/lib下

8.启动hive

  两种方式: 

 第一种:cd hive_home/bin下:./hive 

第二种:cd hive_home/bin下,先启动metastore

   ./hive --service metastore

  再启动hiveserver2

   ./hive --service hiveserver2

启动成功后,如下界面:


输入 show tables命令测试一下。

在hive上创建表

hive> create table test(time string,amount string) row format delimited 

fields terminated by '\t' lines terminated by '\n' stored as textfile;

OK

Time taken: 0.672 seconds

hive> show tables;

OK

test

Time taken: 0.019 seconds, Fetched: 1 row(s)

hive>


至此,hive配置完成。















发布了26 篇原创文章 · 获赞 9 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览