Hive安装和配置及出现的问题和解决方法

一、安装
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
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value> /home/hadoop /hive/warehouse </value>
  <description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.exec.scratchdir</name>
  <value> /home/hadoop /hive/scratchdir </value>
  <description>Scratch space for Hive jobs</description>
</property>
<property>
  <name>hive.querylog.location</name>
  <value>/home/hadoop/ hive-1.1.0/logs</value>
  <description>
    Location of Hive run time structured log file
  </description>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
 <value>jdbc:mysql://172.29.31.66:3306/hive_metadatacreateDatabas eIfNotExist=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>root</value>
  <description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
  <value>××××××</value>
  <description>password to use against metastore database</description>
</property>
<property>
    <name>hive.exec.local.scratchdir</name>   
  <!-- 拼凑目录 -->
    <value>/home/hadoop/hive-1.1.0/local/${system:user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
<property>
    <name>hive.downloaded.resources.dir</name>
    <value> /home/hadoop/hive-1.1.0/local /${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources intheremote file system. </description>
</property>
<property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/home/hadoop/hive-1.1.0/logs/operation_logs</value>
    <description>Top leveldirectory where operation logs are stored if logging functionality isenabled</description>
  </property>

 
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连接,以免后面可能会出现问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值