1. 前言
本文中,我们会在CentOS7系统中安装 Hadoop1.2.1 和 Hive1.2.2 。
参考文档:
2. 安装Hadoop
3. 配置Mysql
1、假设已经安装好了mysql,版本为5.6.29。
2、新建hive数据库,用来保存hive的元数据
1 | create database hive; |
3、将hive数据库下的所有表的所有权限赋给hadoop用户,并配置mysql为hive-site.xml中的连接密码,然后刷新系统权限关系表。
1 | create user 'hadoop'@'%' identified by 'mysql'; |
4. 安装Hive
1、下载解压hive
1 | cd /opt |
2、配置HIVE_HOME,vim /etc/profile
,在最后添加
1 | export HIVE_HOME=/opt/apache-hive-1.2.2-bin |
立即生效,source /etc/profile
3、修改hive-site.xml文件
1 | cd /opt/apache-hive-1.2.2-bin/conf/ |
找到ConnectionURL,修改为:
1 | <property> |
4、下载配置mysql-connector-java
1 | wget http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-5.1.22-bin.jar.zip |
5、修改hive-env.sh文件
1 | cp hive-env.sh.template hive-env.sh |
修改为:
1 | # Set HADOOP_HOME to point to a specific hadoop install directory |
6、启动hadoop,cd /opt/hadoop-1.2.1/bin
,start-all.sh
。
7、启动metastore,nohup hive --service metastore > metastore.log 2>&1 &
8、启动hive,hive
报错:The root scratch dir: /tmp/hive on HDFS should be writable.
1 | mkdir /tmp/hive |
再次启动,报错:Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
新建tmpdir文件夹
1 | mkdir /tmp/tmpdir |
在hive-site.xml中,查找所有的${system:java.io.tmpdir}
和 ${system:java.io.tmpdir}/${system:user.name}
,替换为/tmp/tmpdir
再次启动,成功!
5. hive问题记录
问题描述:hive表中的列名,无法使用点.
和冒号:
。
解决办法:重新创建表。因为创建表时可以使用点和冒号,修改表时不能使用。
详情参考Cannot use a “.” in a Hive table column name