ubuntu下hive安装(整合hadoop,mysql)
来源:互联网 发布:mysql 忘了密码 编辑:程序博客网 时间:2024/06/06 09:49
环境说明:hadoop-1.2.1 和 mysql-5.7 已经成功安装。安装方式可以查阅其他文章。
本文用于记录我安装过程中遇到的种种问题,也可以供遇到同样问题的朋友参考。
首先,去apache官网下载hive,我下载的apache-hive-1.0.1的版本,需要源码的也可以把源码包下载下来。
下载地址:http://hive.apache.org/
下载完成后,到需要安装的目录下,解压:
tar -zvxf apache-hive-1.0.1-bin.tar.gz
设置环境变量和HIVE_HOME:
sudo vi /etc/profile
添加下面两行:
export HIVE_HOME=/usr/local/hive/apache-hive-1.0.1-binexport PATH=$PATH:/usr/local/hive/apache-hive-1.0.1-bin/bin
保存后使其生效:
source /etc/profile
修改hive-env.sh,添加如下路径:
export HADOOP_HOME=/usr/local/hadoop/hadoop-1.2.1export HIVE_CONF_DIR=/usr/local/hive/hive-1.0.1/confexport HIVE_AUX_JARS_PATH=/usr/local/hive/hive-1.0.1/lib
把HIVE_HOME/conf 中的几个文件模版,全都拷贝出副本,这样可以覆盖默认的样本配置。
cp hive-default.xml.template hive-site.xml cp hive-log4j.properties.template hive-log4j.properties cp hive-exec-log4j.properties.template hive-exec-log4j.properties
因为hive 是基于hadoop的,所以要添加HADOOP_HOME,启动的时候也是要先启动hadoop,再启动hive。
下面需要修改hadoop 的两个配置文件,否则直接启动,会抛出异常:
Java.lang.NoClassDefFoundError:
org/apache/hadoop/hive/ql/CommandNeedRetryException
我就遇到了这个问题,百度了一下,需要修改hadoop的配置文件,在hadoop-env.sh下添加
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:SOMGTHING ELSE
然后我再次尝试启动hive时,抛出了Caused by: java.io.IOException: Filesystem closed。又百度了一下,在hadoop下的conf目录中的hdfs-site.xml里添加属性fs.hdfs.impl.disable.cache,并设置为true,如下:
<property> <name>fs.hdfs.impl.disable.cache</name> <value>true</value> </property>
原因:多个datanode在getFileSystem过程中,由于Configuration一样,会得到同一个FileSystem。如果有一个datanode在使用完关闭连接,其它的datanode在访问就会出现上述异常
这时,可以启动hadoop了,如果刚刚已经启动,需要停掉,重新加载配置文件并重新启动。这里还需要修改刚刚拷贝的hive-site.xml,否则命令行执行hive会抛出:
Java.lang.RuntimeException: java.lang.IllegalArgumentException:java.NET.URISyntaxException: Relative path in absolute URI:{system:java.io.tmpdir%7D/$**%7Bsystem:user.name%7D
修改如下:
<property> <name>hive.querylog.location</name> <value>/usr/local/hive/tmp/querylogs</value> <description>Location of Hive run time structured log file</description> </property> <property> <name>hive.server2.logging.operation.log.location</name> <value>/usr/local/hive/tmp/operation_logs</value> <description>Top level directory where operation logs are stored if logging functionality is enabled</description> </property><property> <name>hive.exec.local.scratchdir</name> <value>/usr/local/hive/tmp/scratchdir</value> <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/usr/local/hive/tmp/resources</value> <description>Temporary local directory for added resources in the remote file system.</description> </property>
把路径中带有${system:java.io.tempdir}/{system:user.name} 字样的全部用绝对路径替换掉。
这时,配置完成就可以启动hive了。但这还是derby的hive,如果需要整合mysql,需要在hive-site.xml中添加如下配置信息:
<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> <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>123456</value> <description>password to use against metastore database</description> </property>
并把对应的默认配置注释掉。这里我用了mysql 的hive 用户,需要mysql 授权,我也尝试使用root,但是root进入mysql 时我的ubuntu必须用sudo,所以hive使用root用户登录,也不能成功,connection refused,于是另外创建一个mysql用户,给hive使用。
grant all privileges on *.* to 'hive'@'localhost' identified by '123456';flush privileges;
然后查看user表中是否存在hive用户:
use mysql;select * from user;
这时,执行hive,show tables,hive 返回OK,就大功告成了。
- ubuntu下hive安装(整合hadoop,mysql)
- Ubuntu下Hive配置(MySQL数据库的安装方式)
- 大数据基础(二)hadoop, mave, hbase, hive, sqoop在ubuntu 14.04.04下的安装和sqoop与hdfs,hive,mysql导入导出
- <Hadoop>Hive(Mysql) 安装
- Hadoop--Hive准备(MySQL RPM安装)
- ubuntu下hive安装
- ubuntu下Hive安装
- Hadoop+Hive+Mysql安装文档
- Hadoop+Mysql+hive安装步骤
- Hadoop+Hive+Mysql安装文档
- Hadoop HBase Hive安装,配置,整合
- hadoop学习之HIVE(3):hadoop2.7.2下安装hive2.1.0并关联mysql数据库
- Ubuntu下安装eclipse开发环境for Hive(mysql)
- Ubuntu下安装hive,并配置mysql作为元数据库
- Ubuntu下安装hive,并配置mysql作为元数据库
- ubuntu下安装hadoop
- ubuntu下hadoop安装
- ubuntu下安装hadoop
- css中zoom与transform:scale()的区别
- 关于跳转到空白页面进行新浪微博分享,当点击取消保存到草稿时无法监听,返回空白页问题的解决方案
- WordCountTopology的实现
- python 2.7 : 引用模块时出现TypeError:'module' object is not callable
- linux shell 指令 诸如-d, -f, -e之类的判断表达式
- ubuntu下hive安装(整合hadoop,mysql)
- MyBatis sqlMap 的解析过程
- Design包之材料设计
- Android BLE Scan failed, reason app registration failed for UUID
- centos7下rabbitmq3.6.6安装
- 自己动手部署区块链-hyperledger/fabric-01
- Java设计模式(7)结构型:装饰模式
- 机器学习博客整理---支持向量机(SVM)实现
- 各种排序的学习