一、安装
1.将hive压缩包放到nodename上, (
我们这里就是master)
的/home/hadoop上
2.解压
tar -zxvf apache-hive-1.1.0-bin.tar.gz
3.重命名包
mv apache-hive-1.1.0-bin.tar.gz hive-1.1.0
二、配置
1.配置环境变量
进入环境变量配置目录,这里需要切换到root用户: su
vim /etc/profile
export JAVA_HOME=/home/hadoop/jdk1.7.0_80
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0
export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.6
export HBASE_HOME=/home/hadoop/hbase-1.0.0
export HIVE_HOME=/home/hadoop/hive-1.1.0
export
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH
:$ZOOKEE
PER_HOME/bin:$HBASE_HOME/bin
:$HIVE_HOME/bin
source /etc/profile
使文件立即生效
这里的是老师的文件配置用的系统是ubuntu,而我自己用的是centOS是不行的,出现了不能连接win7的mysql的问题,也引发了一系列不能互相ping通的问题.在下面会给出解决方法
2.配置 hive-env.sh (所有配置文件都在 /home/hadoop/hive-1.1.0/conf目录下)
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/hadoop/hadoop-2.6.0
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/hadoop/hive-1.1.0/conf
3、 配置hive-site.xml
cp hive-default.xml.template hive-site.xml
hive.metastore.warehouse.dir
/home/hadoop
/hive/warehouse
location of default database for the warehouse
hive.exec.scratchdir
/home/hadoop
/hive/scratchdir
Scratch space for Hive jobs
hive.querylog.location
/home/hadoop/ hive-1.1.0/logs
Location of Hive run time structured log file
javax.jdo.option.ConnectionURL
jdbc:mysql://172.29.31.66:3306/hive_metadatacreateDatabas
eIfNotExist=true
JDBC connect string for a JDBC metastore
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore
javax.jdo.option.ConnectionUserName
root
username to use against metastore database
javax.jdo.option.ConnectionPassword
××××××
password to use against metastore database
hive.exec.local.scratchdir
/home/hadoop/hive-1.1.0/local/${system:user.name}
Local scratch space for Hive jobs
hive.downloaded.resources.dir
/home/hadoop/hive-1.1.0/local
/${hive.session.id}_resources
Temporary local directory for added resources intheremote file system.
hive.server2.logging.operation.log.location
/home/hadoop/hive-1.1.0/logs/operation_logs
Top leveldirectory where operation logs are stored if logging functionality isenabled
4
、
配置
log4j
在同上的目录下
创建配置文件:
cp hive-exec-log4j.properties.template
hive-exec-log4j.properties
cp hive-log4j.properties.template
hive-log4j.properties
修改上面两个文件中的配置
hive.log.dir=
/home/hadoop/ hive-1.1.0/logs
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
注意如果没有
logs
目录就建立一个 执行命令
mkdir /home/hadoop/hive-1.1.0/logs
5.添加驱动包
①
下载驱动包
我用的
mysql
是
mysql 5.
5
.15
版本,配套的
jdbc
是
mysql-connector-java-5.1.24-bin.jar
这个
jar
在网上下载就可以了,一定要根据
mysql
版本选择配套的版本
我自己用的是 mysql-connector-java-5.1.35.jar
②
添加驱动包
把驱动包放到
$HIVE_HOME/lib
目录下
③
修改
hadoop
的库文件
在
$HADOOP_HOME/share/hadoop/yarn/lib
下备份
jline-0.9.94.jar
mv jline-0.9.94.jar jline-0.9.94.jar.bak
④Copy
高版本的
jline
cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME /share/hadoop/yarn/lib
6.启动
执行命令 hive
在次之前仅需要开启dfs服务 即 start-dfs.sh 和 start-yarn.sh
而且要在win7下的mysql创建一个叫hive的数据库
以下是我们出现的问题
一、不能连接win7的mysql,然后我们猜测是不能和系统不能和win7ping起来,一测试果然是这样子。
尝试:
①快照返回到没有安装配置hive的时候,发现还是不可以‘
’ ②这时候就猜测应该不是centOS的问题,可能是虚拟机的问题,然后我们尝试用安装VM的程序来修复一下,这时候可能会能出现单方面能ping通。
③中间组长尝试了很多方法,最后是关闭客户端再还原网卡的默认设置才能搞掂
然后再重新设置子网和网关
这是组长解决ping问题的过程
然后我自己也有一些特殊的情况:
我做完以上的解决方法还是不能ping通,然后组长和我就做另外的测试了。
①我们先试一下能不能ping通VM8的IP地址
发现还是可以的,但是就是不能ping通win7本机的IP地址
②组长猜测这可能是centOS里面的DNS和win7中VM8的ip地址有冲突了,然后我们就做出了修改,修改为
192.168.5.2。再加上NETMASK,因为我之前都是没有的
最后就搞掂这个不能ping通的问题了。slave1和slave2这两台机子也是需要这个操作。
二、还是不能连接win7的mysql,但是不存在ping不通的这个问题
尝试
①换不同版本的hive,最后还是不成功。
②对于这个问题,我们借鉴了一个已经成功搞掂hive而且用的系统和我们一样都是centOS,虽然用的hive版本不同
我发现,他只是修改了一个配置文件,就是
hive-site.xml
然后我让组长尝试,我们也只修改这个文件,结果果然是成功了!
三、我能连接了mysql,可是还是不能创建表和各种sql语句的使用
问题是出现了 mysql/hive字符集问题
创建数据库的时候 数据库默认的字符集是utf8
但是 hive里面有个默认的表 字符集的长度 超过了这个限制。--,latin1 1000的长度,而utf8则最大是333
所以需要用到这句话 alter database hive character set latin1;
组长建议是:把之前创建的hive数据库给删掉了,重新创建,再立刻用到上面的那句话再进行用hive连接,以免后面可能会出现问题。