大数据中hive的安装

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

由于自带的保存元信息的数据库derby是内存数据库,并发不怎么好所以用mysql数据库去替换

1.mysql的安装

有两种方式安装mysql:

RPM方式安装MySQL5.6  

yum方式安装mysql

我使用RPM方式安装MySQL5.6

a. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称)

[root@localhost ~]# rpm -qa | grep -i mysql

mysql-libs-5.1.66-2.el6_3.x86_64

[root@localhost ~]# yum -y remove mysql-libs*

或者 rpm -e --nodeps 上面检测出来的mysql的全称   进行移除

b. 下载Linux对应的RPM包,

[root@localhost rpm]# ll

total 74364

-rw-r--r--. 1 root root 18442536 Dec 11 20:19 MySQL-client-5.6.15-1.el6.x86_64.rpm

-rw-r--r--. 1 root root  3340660 Dec 11 20:06 MySQL-devel-5.6.15-1.el6.x86_64.rpm

-rw-r--r--. 1 root root 54360600 Dec 11 20:03 MySQL-server-5.6.15-1.el6.x86_64.rpm

c. 安装MySQL

[root@localhost rpm]# rpm -ivh MySQL-server-5.6.15-1.el6.x86_64.rpm

[root@localhost rpm]# rpm -ivh MySQL-devel-5.6.15-1.el6.x86_64.rpm

[root@localhost rpm]# rpm -ivh MySQL-client-5.6.15-1.el6.x86_64.rpm

#修改配置文件位置

[root@localhost rpm]# cp /usr/share/mysql/my-default.cnf    /etc/my.cnf

d. 初始化MySQL及设置密码

[root@localhost rpm]# /usr/bin/mysql_install_db

[root@localhost rpm]# service mysql start

[root@localhost rpm]# cat /root/.mysql_secret  #查看root账号密码

# The random password set for the root user at Wed Dec 02 10:33:20 2018 (local time): HFJKFSad

[root@localhost ~]# mysql -uroot –pqHFJKFSad

mysql> SET PASSWORD = PASSWORD('123456');    #设置密码为123456

mysql> exit

[root@localhost ~]# mysql -uroot -p123456

e. 允许远程登陆

mysql> use mysql;

mysql> update user set password=password('123456') where user='root';

mysql> update user set host='%' where user='root' and host='localhost';

mysql> flush privileges;

mysql> exit

f. 设置开机自启动

[root@localhost ~]# chkconfig mysql on

[root@localhost ~]# chkconfig --list | grep mysql

mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

g. MySQL的默认安装位置

/var/lib/mysql/               #数据库目录

/usr/share/mysql              #配置文件目录

/usr/bin                     #相关命令目录

/etc/init.d/mysql              #启动脚本

修改字符集和数据存储路径

配置/etc/my.cnf文件,修改数据存放路径、mysql.sock路径以及默认编码utf-8.

[client]

password = 123456

port = 3306

default-character-set=utf8

[mysqld]

port= 3306

character_set_server=utf8

character_set_client=utf8

collation-server=utf8_general_ci

#(注意linux下mysql安装完后是默认:表名区分大小写,列名不区分大小写; 0:区分大小写,1:不区分大小写)

lower_case_table_names=1

#(设置最大连接数,默认为 151,MySQL服务器允许的最大连接数16384; )

max_connections=1000

[mysql]

default-character-set = utf8

查看字符集

show variables like '%collation%';

show variables like '%char%';

hive的安装

条件:该部分的安装需要在Hadoop已经成功安装的基础上,并且要求Hadoop已经正常启动。

我将Hive安装在HadoopMaster节点上。下面的所有操作都在HadoopMaster节点上进行,并且所有的操作都使用yangxp用户。

1.解压并安装Hive

[yangxp@master ~]$ cd /home/yangxp

[yangxp@master ~]$ tar -zxvf ~/apache-hive-1.2.1-bin.tar.gz

[yangxp@master ~]$ cd apache-hive-1.2.1-bin

执行一下ls -l命令会看到下面的图片所示内容,这些内容是Hive包含的文件:

以root用户登录mysql,(注意这里的root是数据库的root用户,不是系统的root用户)。默认情况下root用户没有密码,可以通过下面的方式登陆:

[root@master yangxp]$ mysql -uroot -p123456

然后创建hadoop用户:

      mysql>grant all on *.* to hadoop@'%' identified by 'hadoop';

      mysql>grant all on *.* to hadoop@'localhost' identified by 'hadoop';

      mysql>grant all on *.* to hadoop@'master' identified by 'hadoop';

      mysql>flush privileges;

创建数据库:

      mysql>create database hive_meta;

输入命令退出MySQL

    mysql>quit;

3、配置Hive

进入hive安装目录下的配置目录,然后修改配置文件:

     [yangxp@master ~]$ cd /home/yangxp/apache-hive-1.2.1-bin/conf

然后再该目录下创建一个新文件hive-site.xml,命令如下:

     [yangxp@master conf]$ vim ~/apache-hive-1.2.1-bin/conf/hive-site.xml

将下面的内容添加到hive-site.xml文件中:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

    <property>

        <name>hive.metastore.local</name>

        <value>true</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

         <value>jdbc:mysql://master:3306/hive_meta?characterEncoding=UTF-8</value>

    </property>

<property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionUserName</name>

        <value>hadoop</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>hadoop</value>

    </property>

</configuration>

 

将mysql的java connector复制到依赖库中,

     [yangxp@master ~]$ cd /home/yangxp

     [yangxp@master mysql]$ cp ~/mysql-connector-java-5.1.28  ~/apache-hive-1.2.1-bin/lib/

使用下面的命令打开配置:

     [yangxp@master ~]$ vim /home/yangxp/.bash_profile

将下面两行配置环境变量:

     export HIVE_HOME=/home/yangxp/apache-hive-1.2.1-bin

     export PATH=$PATH:$HIVE_HOME/bin

4.启动并验证Hive的安装

进入hive安装主目录,启动hive客户端:

     [yangxp@master apache-1.2.1-bin]$ bin/hive

出现下面的页面表示hive部署成功:

 

常见问题

java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected

http://www.bubuko.com/infodetail-1157845.html

解决方法是:

将hive下的新版本jline的JAR包拷贝到hadoop下:

cp /hive/apache-hive-1.2.1-bin/lib/jline-2.12.jar ./

/hadoop-2.5.2/share/hadoop/yarn/lib:

-rw-r--r-- 1 root root   87325 Mar 10 18:10 jline-0.9.94.jar.bak

-rw-r--r-- 1 root root  213854 Mar 11 22:22 jline-2.12.jar

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值