安装Hive--(MySQL数据库)
一、 安装模式
1. 内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接(默认)
2. 本地独立模式:在本地安装Mysql,把元数据放到Mysql内
3. 远程模式:元数据放置在远程的Mysql数据库。
二、 准备驱动包
准备Mysql连接的驱动包:
解压之后的jar包:
三、 将驱动jar包拷贝到hive安装目录lib的目录下
四、 修改hive-env.sh文件
将hive-env.sh.template拷贝为hive-env.sh
追加:
export HIVE_CONF_DIR=/usr/apps/hive/hive-1.2.1/conf
export HADOOP_HOME=/usr/apps/hadoop/hadoop-2.6.4
五、 修改hive-site.xml文件
将hive-default.xml.template拷贝hive-site.xml
替换:(本地Mysql数据库)
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBCconnect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driverclass name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.datanucleus.api.jdo.JDOPersistenceManagerFactory</value>
<description>classimplementing the jdo persistence</description>
</property>
<property>
<name>javax.jdo.option.DetachAllOnCommit</name>
<value>true</value>
<description>detachesall objects from session so that they can be used after transaction iscommitted</description>
</property>
<property>
<name>javax.jdo.option.NonTransactionalRead</name>
<value>true</value>
<description>readsoutside of transactions</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use againstmetastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use againstmetastore database</description>
</property>
将文件默认的<name>标签的value值替换。不是追加。
esc+/ 查询整个<name>行
六、 更改hive-site.xml文件的默认配置路径
<value>/tmp/hive/local</value>
<value>/tmp/hive/resources</value>
七、 解决hadoop和hive之间jar包版本冲突
由于hive-1.2.1中jlin2的jar包版本比hadoop-2.6.4中的jline版本高。
解决:将hadoop中的jline版本换成高版本。
八、 配置环境变量
vi /etc/profile
追加:
export HIVE_HOME=/usr/apps/hive/hive-1.2.1
export PATH=$HIVE_HOME/bin:$PATH
立即生效:
source/etc/profile
九、 启动Hadoop集群
十、 启动mysql服务
测试登录:
十一、 启动hive
启动成功。
十二、 更改远程连接无法使用backspace等键
十三、 远程连接报错
原因:默认情况下,root仅仅允许从localhost和127.0.0.1登录到MySQL
解决:
将jdbc连接改为localhost
十四、 重新启动
报警告
更改hive-site.xml中jdbc连接路径:
加入:
characterEncoding=utf8&useSSL=true&
启动:
没有警告。
十五、 验证hive是否集成mysql
1. Mysql下会多一个hive库
2. 在hive命令下创建一张表(默认库下的表)
3. 在mysql客户端查询
所建的表信息在hive库下的TBLS表中存储。
4. hive创建一张自定义库下的表(test01)
5. 查询mysql客户端
6. 可视化工具查询