编译安装hive-0.14(过时)
来源:互联网 发布:c# 初始化数组 编辑:程序博客网 时间:2024/06/06 00:27
据说hive-0.14可以进行insert,update操作了,于是决定先下载下来体验一把。
开始之前先部署一个hadoop-2.4.0伪分布。怎么部署网上一堆
第一步:获取源码
从github上把hive clone下来:https://github.com/apache/hive.git。
注意:git获取的是目前正在更新的最新的分支,直接编译的话问题很多,有可能编译不通过。
所以在clone完hive后记得先同步切换成branch-0.14分支再进行编译
第二步:编译
进入hive主目录,运行:
mvn clean install -U -Dmaven.test.skip=true -Phadoop-2,dist
打包:
mvn package -Dmaven.test.skip=true
会在packaging文件夹下生成目标文件夹:apache-hive-0.14.0-SNAPSHOT-bin,这个就是我们要部署的hive文件夹
第三步:配置hive
进入hive/conf,配置conf
cp hive-env.sh.template hive-env.shcp hive-default.xml.template hive-site.xmlcp hive-log4j.properties.template hive-log4j.properties--------------------------------------------------------
1)编辑hive-env.sh(配置mysql来存储元数据)
# Set HADOOP_HOME to point to a specific hadoop install directory HADOOP_HOME=/home/hadoop/hadoop-2.4.0# Hive Configuration Directory can be controlled by: export HIVE_CONF_DIR=/home/hadoop/hive-0.14/conf# Folder containing extra ibraries required for hive compilation/execution can be controlled by: export HIVE_AUX_JARS_PATH=/home/hadoop/hive-0.14/lib--------------------------------------------------------
2)编辑hive-site.xml
#设置存储元数据的mysql地址<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.2.48:3306/hive?createDatabaseIfNoExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property>
#设置jdbc驱动 <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property>
#设置mysql访问用户 <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database</description> </property>
#设置mysql访问密码 <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property>然后在mysql中建立hive数据库,以及hive用户,注意:建立的hive数据库必须为latin1字符集,不然会报错,如果这步没有设,后面也可以改
--------------------------------------------------------
3)编辑/etc/profile
export HIVE_HOME=/home/hadoop/hive-0.14PATH=$PATH:/sbin:/usr/sbin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$SQOOP_HOME/bin:$HIVE_HOME/bin然后:source /etc/profile
第四步:准备就绪,启动hive
hive --service metastore &hive --service hiveserver2 &
启动报错:
Caused by: org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.at org.datanucleus.store.rdbms.connectionpool.AbstractConnectionPoolFactory.loadDriver(AbstractConnectionPoolFactory.java:58)at org.datanucleus.store.rdbms.connectionpool.BoneCPConnectionPoolFactory.createConnectionPool(BoneCPConnectionPoolFactory.java:54)at org.datanucleus.store.rdbms.ConnectionFactoryImpl.generateDataSources(ConnectionFactoryImpl.java:238)... 55 moremysql的jdbc包没有放到lib下
建表的时候报错:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 767 bytescom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytesat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:526)at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)at com.mysql.jdbc.Util.getInstance(Util.java:384)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)这个就是之前说的,在mysql中建hive数据库的时候没有设置字符集,把它改成latin1就没问题了
alter database hive character set latin1;
下篇测试insert、update、delete操作
0 0
- 编译安装hive-0.14(过时)
- Hive学习笔记(二) Hive源码编译与安装
- hive编译安装与元数据更改
- HIVE 0.14.0安装
- hive安装(linux)
- Hive总结(四)hive安装记录
- Hive总结(四)hive安装记录
- hive集群安装(hive-2.1.0)
- Hive总结(四)hive安装记录
- HIVE打补丁 编译Hive
- 编译 hive
- hive编译
- hadoop安装(包含hive)
- [Hive]Hive安装
- hive系列-hive安装
- hive 自定义UDF,hive编译
- Hive安装
- hive 安装
- Apache DBUtils使用总结
- Mybatis3简单使用(PostgreSQL)
- Java中8种基本数据类型及其默认值
- VC 获取CPU ID
- 全局变量的定义方法
- 编译安装hive-0.14(过时)
- java 保留两位小数4种方法
- Git常用命令
- zlib库剖析(3):使用示例zpipe.c
- Android设计实现多级列表控件
- Bzoj1047理想的正方形
- 格林时间转换成正常时间
- $_ENV为空
- shell变量一些技巧