hive(1)centos下的安装与配置
来源:互联网 发布:java笔试多选题 编辑:程序博客网 时间:2024/06/05 05:20
Hive是运行在hadoop的yarn平台之上的数据分析工具,Hive可以将hdfs之上的文本文件映射为一张张数据表,通过sql语句就可以进行数据分析操作。Hive中的解析器会将sql语句mapreduce的job运行。hive大大简化了分布式平台的使用,主要用于离线数据处理。
系统:centos6.5
java_version:jdk1.7
hadoop版本:2.4.1
Hive_version:0.13.0
这里不再赘述java环境的安装配置。
Hive只需在一个节点上安装即可,对于伪分布式环境下,只需安装在当前主机上即可。
关于Hadoop的安装配置请参考:http://blog.csdn.net/u013468917/article/details/50965530
1、准备安装文件
首先进入 http://mirrors.hust.edu.cn/apache/ 下载hive安装包 apache-hive-0.13.0-bin.tar.gz,然后将安装包上传至linux主机,这里我用的是securecrt远程登陆linux主机,只需在命令行界面下按alt+p,即可打开sftp窗口,将hive安装文件拖至该窗口,安装文件就会被上传至当前用户主目录。
2、解压文件:
tar -zxvf apache-hive-0.13.0-bin.tar.gz -C /cloud/
将安装文件解压到根目录下的/cloud/文件夹下,C为大写,/cloud/文件夹需要事先创建,否则会报错。
执行:vi /etc/profile
在最后一行添加环境变量:
export HIVE_HOME = /cloud/apache-hive-0.13.0-bin;
3、配置metastore:
metastore用于存储Hive的元数据信息,比如hive有哪些数据库,数据库中有那些表,表的结构,对应文本文件的位置等等元数据信息。
Hive解压之后进入解压目录下的conf目录执行:
mv hive-env.sh.template hive-env.sh
就可以直接运行 bin/hive,此时会在当前工作目录下生成一个名为metadata的derby数据库文件。这个数据库文件仅对于在当前目录下的操作有效,如果换了一个工作目录启动Hive,之前所建立的数据库和表信息全部无效,因为此时会在新目录下生成一个新的元数据文件。而且,这种derby数据库不支持多人同时访问。
为解决以上问题,可以将元数据信息存储在mysql数据库中。mysql数据库建议用yum来安装。
3.1安装mysql客户端:
yum install mysql安装mysql 服务器端:
yum install mysql-server
yum install mysql-devel
启动mysql服务:
service mysqld start或者/etc/init.d/mysqld start
设置开机启动:
chkconfig --add mysqld
chkconfid mysqld on
查看开机启动设置是否成功chkconfig --list | grep mysql*
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
3.2配置mysql
第一次运行mysql时需要设置root用户的密码,Hive与数据库的连接可以使用root用户,也可以使用其他用户,这里使用root用户,设置登陆密码为123。
在mysql命令行下执行:
GRANT ALL PRIVILEGES ON test.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;FLUSH PRIVILEGES授权允许远程连接。
3.3配置Hive使用mysql数据库
进入$HIVE_HOME/conf 目录,执行:
cp hive-default.xml.template hive-site.xml修改hive-site.xml(删除<configuration></configuration>之间的所有内容,添加如下内容:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop00: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>
将第一个配置项中的hadoop00换成自己安装mysql数据库的主机名。
4、最终完成
安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
mysql -uroot -p
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
至此,Hive已经安装完成,运行$HIVE_HOME/bin/hive,建立一个表:
create table student(id bigint, name string, sex string, score int) row format delimited fields terminated by '\t';提示运行成功。输入:quit; 命令退出。切换工作目录,执行$HIVE_HOME/bin/hive检查刚才创建的表是否还存在:
show tables;出现student表的信息。说明配置成功。
可能遇到的问题
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/hadoop-2.5.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/hive/apache-hive-1.1.0-bin/lib/hive-jdbc-1.1.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.TerminalFactory.create(TerminalFactory.java:101)
at jline.TerminalFactory.get(TerminalFactory.java:158)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
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:212)
- hive(1)centos下的安装与配置
- centos下postgresql的安装与配置
- centOS下HLA的安装与配置
- centos下postgresql的安装与配置
- CentOS下Nagios的安装与配置
- CentOS下nginx的安装与配置
- Centos下nginx的安装与配置
- Centos & 下Nagios的安装与配置
- centos下vim的安装与配置
- CentOS下PostgreSQL 的安装与配置
- CentOS下NGINX的安装与配置
- Centos下的ftp安装与配置
- centos下mysql的安装与配置
- centOS下vsftpd的安装与配置
- CentOS下Mysql的安装与配置
- hive的安装与配置
- HIVE的安装与配置
- CentOS 5.3 下ganglia的安装、配置与测试
- iOS NSString的比较
- tyvj 最长上升子序列2
- SugarCRM源码分析之SugarAutoLoader::init
- Android开发获取ImageView显示的图片尺寸
- 安卓界面跳转以及传值
- hive(1)centos下的安装与配置
- iOS关于model的两种写法
- 虚基类
- javaIO详解
- EBS Form开发 弹性域定义中的参数<三> .
- 然后对当前快照"关机",再重新启动快照的操作系统就可以了
- 语音验证码api 手机接听验证码
- 基于live555实现实时视频监控
- CSS过渡 && bootstrap transition