分享

求一hive2.0配置

xw2016 发表于 2016-5-17 13:47:57 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 9649
自己安装配置了hive2.0,多表查询总是报错,不知错在哪。谁有成功的hive2.0配置,发一份过来。?

已有(5)人评论

跳转到指定楼层
langke93 发表于 2016-5-17 15:12:26
Hive2 安装配置


1.下载Hive

http://apache.mirrors.ionfish.org/hive/

我安装的是apache-hive-1.2.1-bin.tar.gz


[mw_shl_code=bash,true][hadoop@hftclclw0001 ~]$ pwd
/home/hadoop

[hadoop@hftclclw0001 ~]$ wget http://apache.mirrors.ionfish.or ... ve-1.2.1-bin.tar.gz

[hadoop@hftclclw0001 ~]$ ll
total 637256
drwx------ 10 hadoop root      4096 Oct 27 02:22 apache-hive-1.2.1-bin
-rw-------  1 hadoop root  92834839 Jun 26 18:34 apache-hive-1.2.1-bin.tar.gz
drwx------  3 hadoop root      4096 Oct 27 09:05 data
drwx------ 11 hadoop root      4096 Oct 21 03:20 hadoop-2.7.1
-rw-------  1 hadoop root 210606807 Oct 20 09:00 hadoop-2.7.1.tar.gz
drwx------  2 hadoop root      4096 Oct 23 02:08 install-sqoop
drwx------ 13 hadoop root      4096 Oct 20 09:22 spark-1.5.1-bin-hadoop2.6
-rw-------  1 hadoop root 280901736 Oct 20 09:19 spark-1.5.1-bin-hadoop2.6.tgz
drwx------ 22 hadoop root      4096 Oct 23 02:08 sqoop-1.99.6-bin-hadoop200
-rw-------  1 hadoop root  68177818 May  5 22:34 sqoop-1.99.6-bin-hadoop200.tar.gz

[hadoop@hftclclw0001 ~]$ cd apache-hive-1.2.1-bin/conf/

[hadoop@hftclclw0001 conf]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/conf

[hadoop@hftclclw0001 conf]$ vi hive-env.sh
...
...
HADOOP_HOME=/home/hadoop/hadoop-2.7.1                             =>配置Hadoop_Home

export HIVE_CONF_DIR=/home/hadoop/apache-hive-1.2.1-bin/conf      =>配置HIVE_conf_home
export HIVE_AUX_JARS_PATH=/home/hadoop/apache-hive-1.2.1-bin/lib/


#我使用了mysql作为metastore ,则需要在lib目录下添加mysql的驱动
[hadoop@hftclclw0001 lib]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/lib

[hadoop@hftclclw0001 lib]$ ll | grep mysql
-rw-------  1 hadoop root   848401 Oct 27 01:48 mysql-connector-java-5.1.25-bin.jar


[hadoop@hftclclw0001 conf]$ vi hive-site.xml
[hadoop@hftclclw0001 conf]$ cat hive-site.xml
<?xml version="1.0"?>
<configuration>
    <property>
                    <name>hive.metastore.local</name>
                    <value>false</value>                                    =>metastore我的mysql不是在该server上
            </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://{ip:port}/{databases}</value>        => mysql服务的ip和端口号
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriveName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>{username}</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>{password}</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/hive/warehouse</value>                      =>hive的仓库目录,需要在HDFS上创建,并修改权限
    </property>
   
    <property>
            <name>hive.metastore.uris</name>
                <value>thrift://{ip}:{port}</value>                 =>本机ip和端口号,启动metastore服务
    </property>
</configuration>


[hadoop@hftclclw0001 conf]$ vi hive-log4j.properties                => Log4j的配置,可以修改日志目录

...[/mw_shl_code]

2.启动metastore


[mw_shl_code=bash,true][hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin

[hadoop@hftclclw0001 bin]$ ./hive --service metastore &

[hadoop@hftclclw0001 bin]$ ps ax|grep metastore
...
...[/mw_shl_code]

3.启动HiveServer2


[mw_shl_code=bash,true][hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin

[hadoop@hftclclw0001 bin]$ ./hive --service hiveserver2 &

[hadoop@hftclclw0001 bin]$ ps ax|grep HiveServer2
...
...[/mw_shl_code]

4.启动shell 或是 beeline


[mw_shl_code=bash,true][hadoop@hftclclw0001 bin]$ ./hive shell
...
...[/mw_shl_code]


metastore
1.内置模式:将数据保存在内置的Derby数据库中,这种方式最简单,但是Derby每次只能访问一个数据文件。
Drive ==>  Metastore  ==> Derby
2.本地模式:将元数据保存在本地的独立数据库(如mysql)等
Driver ===> Metastore
Driver ===> Metastore       ===> DB
Driver ===> Metastore
每个server都需要配置metastore,并启动metastore服务
3.远程模式:使用thrift访问metastore
Client1
Client2   ===> Metastore ===> DB
Client3
4.配置:

[mw_shl_code=bash,true]如上述配置,我们已经启动了metastore服务在上述hftclclw0001机器上,

我们在另一台server上,如hftclcld0001机器上,安装hive,配置如上述配置一直,仅仅修改hive-site.xml如下:

<?xml version="1.0"?>
<configuration>
            <property>
            <name>hive.metastore.uris</name>
                <value>thrift://{ip}:{port}</value>            =>hftclclw0001机器的ip和端口号
    </property>
</configuration>

即我们通过thrift协议,访问hftclclw0001上面的metastore,并访问hive的元数据

[root@hftclcld0001 apache-hive-1.2.1-bin]# pwd
/home/hadoop/apache-hive-1.2.1-bin

[root@hftclcld0001 apache-hive-1.2.1-bin]# ./bin/hive shell
hive>

hive> show databases;
OK
default
hive                                            =>能访问到hive的metastore,访问到元数据(我们之前创建的)
human_resources
Time taken: 0.388 seconds, Fetched: 3 row(s)
hive>[/mw_shl_code]







回复

使用道具 举报

xw2016 发表于 2016-5-18 08:56:22

谢谢了,其实我搭建了hive2.0的集群环境,建表和单表查询查询都没问题的,就是多表关联查询用到mapreduce时报错,一直没找到原因。
回复

使用道具 举报

xw2016 发表于 2016-5-18 08:57:42
xw2016 发表于 2016-5-18 08:56
谢谢了,其实我搭建了hive2.0的集群环境,建表和单表查询查询都没问题的,就是多表关联查询用到mapreduce ...

前面发了一帖子问过,只是没得到正确答案:
http://www.aboutyun.com/forum.php?mod=viewthread&tid=18397&extra=
回复

使用道具 举报

qcbb001 发表于 2016-5-18 14:34:18
xw2016 发表于 2016-5-18 08:57
前面发了一帖子问过,只是没得到正确答案:
http://www.aboutyun.com/forum.php?mod=viewthread&tid=183 ...

目前中文资料,还没。这里有英文的服务端和客户端的配置

Setting Up HiveServer2


https://cwiki.apache.org/conflue ... WebUIforHiveServer2


HiveServer2 Clients

https://cwiki.apache.org/conflue ... HiveServer2+Clients
回复

使用道具 举报

xw2016 发表于 2016-5-18 14:42:31
qcbb001 发表于 2016-5-18 14:34
目前中文资料,还没。这里有英文的服务端和客户端的配置

Setting Up HiveServer2

谢谢,我看下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条