Hive数据仓库的安装(其中有很多我遇到的坑)

前面的博客,我们已经安装好了Hadoop,对于Hadoop的也有了比较深的了解。下面是我对数据仓库Hive的安装

一、安装Hive

Hive的下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz

由于我下载的这个版本,所以我给的链接是这个版本的

sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local/
sudo mv apache-hive-1.2.1-bin hive       # 将文件夹名改为hive
sudo chown -R hadoop:hadoop hive            # 修改文件权限

注意,上面的hadoop:hadoop是用户组和用户名

配置环境变量

为了方便使用,我们把hive命令加入到环境变量中去,

请使用gedit编辑器打开/etc/profile文件,命令如下:

sudo gedit /etc/profile

在文件最后一行加入下面内容:

export HIVE_HOME=/usr/local/hive 
export PATH=$PATH:$HIVE_HOME/bin 

这里还需要HADOOP_HOME因为在上一篇或者以前你已经配好了,那就不用再写了

在打开一个终端运行下面命令

su 
source /etc/profile

修改/usr/local/hive/conf下的hive-site.xml

执行如下命令:

cd /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml

上面命令是将hive-default.xml.template重命名为hive-default.xml;

然后,使用gedit编辑器新建一个配置文件hive-site.xml,命令如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <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>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

注意:这里一定不要写错了,如果写错了一个字,后面会出很大的问题,查找起来特别麻烦,就像C语言指针错了一样。很烦

二、安装并配置mysql

这里我认为是最麻烦的,因为容易安装失败,安装失败后,一定要卸载干净再下载

可能大家在Windows安装mysql有心态炸的时候吧,还记得那四个对号。我记得我当初心态炸了

这里我们采用MySQL数据库保存Hive的元数据,而不是采用Hive自带的derby来存储元数据。

ubuntu上安装mysql非常简单只需要几条命令就可以完成。

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:

sudo netstat -tap | grep mysql

通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。

登陆mysql数据库可以通过如下命令:

mysql -u root -p 

如果出现如上突脸看到mysql 的socket处于 listen 状态则表示安装成功。

登陆mysql数据库可以通过如下命令:

mysql -u root -p 

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。

最后出现这个证明你完全没有问题了

下面配置mysql的jdbc

mysql jdbc的包下载地址:https://dev.mysql.com/downloads/connector/j/

或者通过别的渠道,我这里下载的5.1.4版本的

下载后运行如下命令

tar -zxvf mysql-connector-java-5.1.40.tar.gz  
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar  /usr/local/hive/lib #将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

启动并登陆mysql shell

service mysql start #启动mysql服务
mysql -u root -p  #登陆shell界面

新建hive数据库

mysql> create database hive;    #这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

注意:在运行mysql和以后运行hive命令,一定不要忘了后面加;号,要不命令是不会生效的,系统默认还没有完成命令的编写。

配置mysql允许hive接入:

mysql> grant all on *.* to hive@localhost identified by 'hive';   #将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码
mysql> flush privileges;  #刷新mysql系统权限关系表

启动hive

启动hive之前,先启动hadoop集群

start-all.sh #启动hadoop

如果出现上面图出现6个,那说明启动成功了,如果不成功,看那个没出来去网上查找解决方案

然后启动hive

cd /usr/local/hadoop
./sbin/start-all.sh
cd /usr/local/hive
./bin/hive

如果出现如下错误

则需要进入到hadoop安装目录下的share/hadoop/yarn/lib下删除jline-0.9.94.jar文件,再启动hive即可(因为高版本的Hadoop对Hive有捆绑)。

如果出现,这里我一直在处理问题,我忘了截图了,就是出现(jdbc-type="", sql-type="") 这种的错误,是因为jdk的版本过高,造成编译过程中出现了问题

 Datastore.Schema (Log4JLogger.java:error(125)) - Failed initialising database.
The java type java.lang.Integer (jdbc-type="", sql-type="") cant be mapped for this datastore. No mapping is available.
org.datanucleus.exceptions.NucleusException: The java type java.lang.Integer (jdbc-type="", sql-type="") cant be mapped for this datastore. No mapping is available.

特别注意!!!:这里由于我使用的12版本的JKD出现的问题,查找了好久,最后降了版本使用了1.8的就好使了,以后不管干什么不要用高版本的,记住高版本兼容低版本,而低版本用不了高版本!一定要记住不管干什么,要不然查找问题起来特别的麻烦,我也修改了上个博客。

最后在运行hive

那么你成功了!

可以在里面输入SQL语句,如果要退出Hive交互式执行环境,可以输入如下命令:

hive>exit;

这里还要注意一点:

启动完hive后,启动另外的中段运行jps,看看ResourceManager有没有死掉,如果死掉了。对于后面Hive的使用会出问题。

简单介绍下ResourceManager

ResourceManager (RM)是仲裁所有可用集群资源的主程序,从而帮助管理在纱线系统上运行的分布式应用程序。它与每个节点的节点管理器(NMs)和每个应用程序的应用程序管理器(AMs)一起工作。

推荐

如果你有英语的一定基础,或者你可以看懂英文的文档推荐一个网站 https://zh.hortonworks.com/blog/apache-hadoop-yarn-resourcemanager/

这个网站介绍了ResourceManager,你也可以查找相关的文档,英文的文档我认为更加的细致。

如果你Java的变成能力特别好,推荐你看Hadoop的底层源码。

参考

【林子雨编写的《大数据 基础编程、实验和案例教程》】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值