hive的安装和配置
来源:互联网 发布:美国购物节网络星期一 编辑:程序博客网 时间:2024/06/06 10:03
首先下载hive的安装包apache-hive-1.2.1-bin.tar.gz,解压到相应的目录下sudo tar -zxvf apache-hive-1.2.1-bin.tar.gz,然后更改文件接名称
sudo mv 解压后的文件夹名 hive文件夹名;
进入文件夹进行配置,cd hive文件夹名
1.把hive的所在目录写入到相应用户的~/.bashrc文件(或者针对所有用户起作用的/etc/profile中)中,具体如下:
export HIVE_HOME=/usr/local/hive121
export PATH=$PATH:/$HIVE_HOME/bin (使得hive/bin下的可执行文件hive可以在任意目录下执行)
然后保存,用命令行source ~/.bashrc(source /etc/profile)使文件生效。
2.对hive/conf文件加下的hive-site.xml和hive-env.sh以及hive-log4j.properties文件进行配置。
hive-env.sh文件
使用sudo cp hive-env.sh.template hive-env.sh
然后打开hive-env.sh,对其进行编辑
sudo gedit hive-env.sh
export HADOOP_HOME=/usr/local/hadoop (系统中相应的hadoop的安装目录)
export HIVE_CONF_DIR=/usr/local/hive121/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive121/lib
保存source hive-env.sh使文件生效
然后打开hive-site.xml对其进行编辑
sudo gedit hive-site.xml(编辑项目相对较多)
__________________________________________________________________________________
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/home/hadoop/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
用于存储hive中表数据的目录(本地或hdfs)
注:Hive的数据分为表数据和元数据,表数据是hive中表格(table)具有的数据;而元数据是用来存储表的名字,
表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
hive中的表数据会存储在HDFS上,而元数据因为要经常改动所以会存储在derby或者mysql数据库中。
又因为内嵌的derby数据库只能允许一个会话连接,只适合简单的测试。为了支持多用户多回话,则需要一个独
立的元数据库,因此会使用mysql作为hive元数据的存储介质。
____________________________________________________________________________________
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
</property>
(本地或hdfs路径)用于存储不同map/reduce阶段的执行计划和这些阶段的执行结果。
_____________________________________________________________________________________
<property>
<name>hive.querylog.location</name>
<value>/tmp/hive/${user.name}</value>
<description>Location of Hive run time structured log file</description>
用于存储hive相关日志的目录
_____________________________________________________________________________________
<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>
设置hive元数据的存储,这里是选择mysql作为存储数据库。hive为相应的mysql数据库中的数据库。
同时在mysql数据库中建立相应的数据库,并设置数据库的character 为latin1
$mysql -u root -p password
mysql>create user 'hive' identified by 'hive';(前一个hive是用户名后一个hive是密码,后面的属性设置中会用到,可以改为自己的)
mysql>grant all privileges on *.* to 'hive'@'%' with grant option;(hive为相应的hive数据库)
mysql>flush privileges;
mysql>alter database hive character set latin1;(不然后面在hive中执行命令show tables时汇报错)
——————————————————————————————————————————————————
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
相应的连接数据库的驱动名字,同时要把相应的驱动复制到hive121/lib文件夹下(mysql-connector-java-5.1.19-bin.jar)
可以将java语言描述的对database进行的操作转化为mysql可以理解的语句。经验证明connector与mysql的版本号不一致也可以运行。
——————————————————————————————————————————————————
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>Username to use against metastore database</description>
</property>
上面创建的mysql数据库中的user
——————————————————————————————————————————————————
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
连接mysql数据库的相应的密码
——————————————————————————————————————————————————
至此hive-site.xml文件配置完成
然后是hive-log4j.propertites文件的配置
sudo cp hive-log4j.propertites.template hive-log4j.propertites
sudo geidt hive-log4j.propertites
______________________________________________________________________________________
hive.log.dir=/tmp/hive/${user.name}
hive中相应日志的存放路径,此处要和hive-site.xml文件中的hive.querylog.location属性相同
hive.log.file=hive.log
相应的日志文件的名称,可以自行更改,一般不动就可以(hive运行后会在hive.log后面加上日期区分每天的日志文件)
———————————————————————————————————————————————————
hive-log4j.propertites文件修改完成,保存退出即可
至此hive可以实现将表数据存储在本地,将元数据存储在mysql相应的数据库中。
执行hive可以运行hive;
在hive中用create table sch (line string);创建表
show tables;查看存在的表
describe tablename;查看表信息
drop table tablename;删除存在的表
在相应的mysql数据库中,use hive; show tables;
select * from TBL;可以查看hive中的相应的表信息(表名和owner)。
hive中的hive-site.xml文件中的相应属性的解析:http://blog.csdn.net/chaoping315/article/details/8500407
若要将hive的表数据存储到hdfs上面,可以在hdfs上创建相应的文件夹,如:
$hadoop dfs -mkdir /user/hadoop/hive
$hadoop dfs -mkdir /user/hadoop/hive/warehouse
$hadoop dfs -mkdir /user/hadoop/hive/scratchdir
$hadoop dfs -chmod -R 777 /user/hadoop/hive/(更改hive目录下所有文件及文件夹的权限)
然后更改hive-site.xml文件中的第一项和第二项的地址;
hive.metastore.warehouse.dir=hdfs://localhost:9000/user/hadoop/hive/warehouse
hive.exec.scratchdir=hdfs://localhost:9000/user/hadoop/hive/scratchdir
重新启动hive,然后用以下命令建表: create table student(id int,name string)row format delimited fields terminated by '\t\ ;
hive> create table student(id int,name string) row format delimited fields terminated by '\t';
OK
Time taken: 0.089 seconds
查看表:show tables;
hive> show tables;
OK
student
Time taken: 0.028 seconds, Fetched: 1 row(s)
然后用命令导入指定路径下的文件:load data local inpath '/usr/local/hive121/student.txt' overwrite into table student;
hive> load data local inpath '/usr/local/hive121/student.txt' overwrite into table student;
Loading data to table default.student
Table default.student stats: [numFiles=1, numRows=0, totalSize=41, rawDataSize=0]
OK
Time taken: 0.304 seconds
查看表:
hive> select * from student;
OK
1 xiaoming
2 xiaohong
3 gang
4 jun
5 mei
Time taken: 0.194 seconds, Fetched: 5 row(s)
此时在hdfs文件系统上的相应文件加下应该有相应的表文件夹和文件txt,查看的:
hive> dfs -ls -R /user/hadoop/hive/warehouse/;
drwxrwxrwx - hadoop supergroup 0 2016-05-20 21:08 /user/hadoop/hive/warehouse/student
-rwxrwxrwx 1 hadoop supergroup 41 2016-05-20 21:08 /user/hadoop/hive/warehouse/student/student.txt
hive>
- Hive的安装和配置
- hive的安装和配置
- Hive的安装和配置
- hive 安装和配置
- Hive安装和配置
- Hive安装和配置
- Hive的安装和配置详解
- hive 和 mysql 的安装 metastor 配置
- Hive的安装和配置(转)
- hive的安装配置
- Hive的安装配置
- hive的安装配置
- hive的安装配置
- Hive安装和配置及出现的问题和解决方法
- Hive的安装配置和连接mysql以及基础操作
- Hive-1.2.1远程模式的安装和配置
- Hive的安装配置和使用Java连接
- hive的安装与配置
- java数值范围以及float与double精度丢失问题
- windows笔记-内存映射文件
- spring mvc 1
- Android贝塞尔动画实现QQ,虎牙等平台点赞效果初探
- NoClassDefFoundError org/codehaus/plexus/compile/util/scan/mapping/SuffixMapping
- hive的安装和配置
- AndroidManifest合并原理
- 经决策网站需要改版?!这些内容最好别动!
- js 监听浏览器后退事件
- change background
- PNB第四季度高不良资产5,367千万卢比的亏损纪录
- Windows内核中的数据结构与函数调用
- N的二进制中1的个数
- 【福利】个推携手Testin,总价16万“企业服务大礼包”免费领!