Hadoop Hive安装,配置mysql元数据库
来源:互联网 发布:2345看图王mac版 编辑:程序博客网 时间:2024/05/14 23:19
由于Hive依赖于Hadoop,安装Hive之前必须确认Hadoop可用,关于Hadoop的安装可以参考集群分布式 Hadoop安装详细步骤,这里不再叙述。
1.下载Hive安装包
下载地址为:http://www.apache.org/dyn/closer.cgi/hive(或点击下面链接),选择一个稳定版本,假设下载的版本为:apache-hive-1.0.1-bin.tar.gz,解压:
tar -zxvf apache-hive-1.0.1-bin.tar.gz
在apache的下载列表中可以看到hive-1.0.1.src.tar.gz和hive-hive-1.0.1.bin.tar.gz两个包,名字中带bin的压缩包中只包括已经编译好的的Hive程序,不包括Hive的源代码。
2.配置环境变量
实际上即使不对操作系统的环境变量进行配置,Hive依然可以使用,但是如果每次都输入全路径效率很低,因此推荐对Linux操作系统的环境变量按以下方式进行配置。
修改全局配置文件/etc/profile或者用户目录下的私有文件~/.bashrc,在文件中加入以下信息:
export HIVE_HOME=/home/hadoop/apache-hive-1.0.1-binexport PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH
为了让配置立即生效,而不需要重新启动系统或者重新登录,运行以下命令:
source /etc/profile 或source ~/.bashrc
3.创建Hive数据文件目录
在HDFS中建立用于存储Hive数据的文件目录(/tmp 目录可能已经存在):
hadoop fs -mkdir /tmphadoop fs -mkdir /user/hive/warehousehadoop fs -chmod 777 /tmphadoop fs -chmod 777 /user/hive/warehouse
以上命令在HDFS中建立了/tmp及/usr/hive/warehouse目录,其中/tmp主要用于存放一些执行过程中的临时文件,/user/hive/warehouse用于存放hive进行管理的数据文件。
4.修改hive配置文件
这一步不是必须的,如果不配置,Hive将使用默认的配置文件,通过Hive配置文件可以对Hive进行定制及优化。最常见的是对“元数据存储层”的配置,默认情况下Hive使用Derby数据库作为“元数据存储层”。
在Hive中Derby默认使用“单用户”模式进行启动,这就意味着同一时间只能有一个用户使用Hive,这适用于开发程序时做本地测试。
Hive配置文件位于$Hive_Home/conf目录下面,名为hive-site.xml,这个文件默认情况下是不存在的,需要进行手动创建,在此目录下有个hive-default.xml.template的模板文件,首先需要通过它创建hive-site.xml文件。
cp hive-default.xml.template hive-site.xml
关于元数据库Dergy的默认配置如下:
<!--JDBC元数据仓库连接字符串--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=metastore_db;create=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <!--JDBC元数据仓库驱动类名--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>org.apache.derby.jdbc.EmbeddedDriver</value> <description>Driver class name for a JDBC metastore</description> </property> <!--元数据仓库用户名--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>APP</value> <description>Username to use against metastore database</description> </property> <!--元数据仓库密码--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mine</value> <description>password to use against metastore database</description> </property>
从上面的配置中可以看到关于元数据库的配置,由于Hive中已经包含了这个内置的Derby数据库,因此不需要进行数据库的安装,同时在$Hive_Home/lib下还可以看到Derby的数据库驱动包(derby-xx.x.x.x.jar)。至此已经完成Hive各项工作的安装,可以通过以下命令测试Hive是否正常运行:
hivehive> SET -v;hive> quit;
出错处理: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:
处理:
在hive-site.xml中新建配置项,iotmp文件夹是新建的:
<property>
<name>system:java.io.tmpdir</name>
<value>/home/hadoop/hive-1.0.1/iotmp</value>
<description/>
</property>
下面是配置mysql 元数据库,替换Derby
如前所述,Hive在缺省情况下是使用内置的Derty数据库存储元数据,这对程序开发时本地测试没有任何问题。但如果在生产环境中,由于需要支持多用户同时进行系统访问,这可能不能满足应用需求。通过配置,可以让Derty运行为“多用户”模式来满足多用户访问需求。进一步,在实际的生产环境中通常会选用存储功能更为强大的Mysql数据库作为“元数据存储层”。Mysql作为最流行的开源关系型数据库,使用面广、功能多样,必要时可以充当临时的标准数据查询与分析系统使用,因此得到大量的Hive用户的青睐。
如果使用Mysql作为“元数据存储层”,首先需要安装Mysql,可以使用如下命令:
#sudo apt-get install mysql-server
安装之后再数据库中建立Hive账号并设置权限:
mysql> create user 'hive'@'%' identified by 'hive';mysql> grant all privileges on *.* to 'hive'@'%' with grant option;mysql> flush privileges;
接下来需要对hive-sive.xml配置文件进行以下修改,以支持mysql:
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore_db?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>
另外,由于Hive没有默认包含Mysql的JDBC驱动,因此需要将mysql-connector-java-x.x.xx.jar文件拷贝到$Hive_Home/lib目录中,否则Hive无法与Mysql进行通信。至此,基于Mysql作为“元数据存储层”的Hive系统配置完成。(jar包下载需要注册oracle,需要的可以留言)
参考文献:《深入理解大数据 大数据处理与编程实战》主编:黄宜华老师(南京大学)
- Hadoop Hive安装,配置mysql元数据库
- Hadoop Hive安装,配置mysql元数据库
- Ubuntu下安装hive,并配置mysql作为元数据库
- Ubuntu下安装hive,并配置mysql作为元数据库
- Hive配置mysql作为元数据库
- HIVE 安装系列(3)配置HIVE 使用Mysql作为元数据的数据库
- hive的安装(元数据库: MySQL)
- hive的安装(元数据库: MySQL)
- Hive 安装及元数据库配置
- hive安装、配置 mysql存储元数据
- hadoop hive安装,并使用mysql数据库
- 配置hadoop HIVE元数据保存在mysql中
- CDH5.1.0 HIVE mysql 配置远程元数据库
- <Hadoop>Hive(Mysql) 安装
- hive安装同时以mysql为元数据库
- Hadoop&hive安装配置
- hadoop-hive安装配置
- Hive&hadoop 安装配置
- 属性观察_Swift
- LeetCode Power of Two
- 【Spark】RDD操作详解2——值型Transformation算子
- linux下串口编程简单实例
- 【Spark】RDD操作详解3——键值型Transformation算子
- Hadoop Hive安装,配置mysql元数据库
- java面向对象思想的见解
- fileupload实现文件上传
- 对面向对象的见解
- 广义线性模型
- 获取CPU使用率脚本
- 黑马程序员——高新技术---Java基础-常用类-排序,Arrays高级数组,Integer类
- Fiddler对安卓应用手机抓包图文教程
- 如何看待成人用品