Linux中基于hadoop安装hive(SUSE12+hadoop2.6.4+hive2.3.4)

 说明:安装hive前提是要先安装hadoop集群,而且hive只须要再hadoop的namenode节点集群里安装便可(须要再全部namenode上安装),能够不在datanode节点的机器上安装。另外还须要说明的是,虽然修改配置文件并不须要你已经把hadoop跑起来,可是本文中用到了hadoop命令,在执行这些命令前你必须确保hadoop是在正常跑着的,并且启动hive的前提也是须要hadoop在正常跑着,因此建议你先将hadoop跑起来在按照本文操做。html

如何安装和启动hadoop集群,请参考:java

https://www.cnblogs.com/doubleuncle/p/10375454.htmlnode

 

1.安装hivemysql

下载hivesql

地址:http://hive.apache.org/downloads.html数据库

使用SecureFX将hive上传至hadoop1的/opt/hive文件夹中apache

解压文件函数

#tar -zxvf apache-hive-2.3.4-bin.tar.gzoop

修改配置文件测试

#vi /etc/profile

在任意位置添加如下内容

export JAVA_HOME=/opt/java/jdk1.8.0_201
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADDOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/bin

export HIVE_HOME=/opt/hive/apache-hive-2.3.4-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$:CLASSPATH:$HIVE_HOME/lib/
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/sbin

重启profile文件

#source /etc/profile

hive配置文件修改:

新建并修改hive-site.xml文件

#cp   /opt/hive/apache-hive-2.3.4-bin/conf/hive-default.xml.template   /opt/hive/apache-hive-2.3.4-bin/conf/hive-site.xml

修改这个新建的hive-site.xml文件

修改hive-site.xml中的临时目录

将hive-site.xml文件中的全部的${system:java.io.tmpdir}替换为hive的临时目录(例如我替换为/opt/hive/tmp,该目录若是不存在则要本身手工建立,而且赋予读写权限)

将hive-site.xml文件中的全部的${system:user.name}都替换为root

 

修改hive-site.xml数据库相关的配置

搜索javax.jdo.option.ConnectionURL,将该name对应的value修改成MySQL的地址,例如我修改后是:

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

<value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value>

    

搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改成MySQL驱动类路径,例如个人修改后是:

<property> 

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

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

</property>      

(

tips:

jdk7+老版5.0驱动请填入com/mysql/jdbc/Driver 

jdk8+新版6.0驱动请填入com/mysql/cj/jdbc/Driver

我这里使用的驱动是mysql-connector-java-6.0.6.jar

)

 

搜索javax.jdo.option.ConnectionUserName,将对应的value修改成MySQL数据库登陆名:

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

<value>root</value>

 

搜索javax.jdo.option.ConnectionPassword,将对应的value修改成MySQL数据库的登陆密码:

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

<value>root</value>

 

搜索hive.metastore.schema.verification,将对应的value修改成false:

<name>hive.metastore.schema.verification</name>

<value>false</value>

使用hadoop新建hdfs目录

由于在hive-site.xml中有这样的配置:

<name>hive.metastore.warehouse.dir</name>

<value>/user/hive/warehouse</value>

<name>hive.exec.scratchdir</name>

<value>/tmp/hive</value>

因此要让hadoop新建/user/hive/warehouse目录,执行命令:

$HADOOP_HOME/bin/hadoop   fs   -mkdir   -p   /user/hive/warehouse

给刚才新建的目录赋予读写权限,执行命令:

$HADOOP_HOME/bin/hadoop   fs   -chmod   777   /user/hive/warehouse 

让hadoop新建/tmp/hive/目录,执行命令:

$HADOOP_HOME/bin/hadoop   fs   -mkdir  -p   /tmp/hive/

给刚才新建的目录赋予读写权限,执行命令:

$HADOOP_HOME/bin/hadoop   fs   -chmod  777   /tmp/hive


检查hdfs目录是否建立成功

$HADOOP_HOME/bin/hadoop fs -ls /user/hive/

$HADOOP_HOME/bin/hadoop fs -ls /tmp/

新建hive-env.sh文件并进行修改

将hive-env.sh.template文件复制一份,而且更名为hive-env.sh

cp /opt/hive/apache-hive-2.3.4-bin/conf/hive-env.sh.template /opt/hive/apache-hive-2.3.4-bin/conf/hive-env.sh

打开hive-env.sh配置而且添加如下内容

export  HADOOP_HOME=/opt/hadoop/hadoop-2.6.5

export  HIVE_CONF_DIR=/opt/hive/apache-hive-2.3.4-bin/conf

export  HIVE_AUX_JARS_PATH=/opt/hive/apache-hive-2.3.4-bin/lib

 

2.安装mysql(由于hive自带关系型数据库derby不够稳定,建议使用mysql数据库)

下载hive

地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads

使用SecureFX将mysql上传至hadoop1的/opt/mysql文件夹中

解压文件

#tar -zxvf MySQL-5.6.43-2.sles12.x86_64.rpm-bundle.tar

安装文件

#rpm -ivh *.rpm

从新启动机器

#reboot

进入mysql数据库,修改root用户密码

#set password for root@localhost = password('root'); 

修改远程登录权限

#update user set host = '%' where user = 'root';

#flush privileges;

 

3.启动和测试

对MySQL数据库进行初始化

进入到hive的bin目录

#cd   /opt/hive/apache-hive-2.1.1-bin/bin

对数据库进行初始化

#./schematool   -initSchema  -dbType  mysql

(

tips:

[INFO] Unable to bind key for unsupported operation: backward-delete-word

……

报错缘由暂未找到,但显示schemaTool completed说明数据化初始已成功

)

执行成功后,hive数据库里已经有一堆表建立好了

启动hive

进入到hive的bin目录

#cd   /opt/hive/apache-hive-2.1.1-bin/bin

执行hive脚本进行启动

#./hive

执行简单命令测试

查看函数的命令

#show  functions;

查看sum函数的详细信息

#desc function  sum;

新建数据库db_hive_edu

create database  db_hive_edu;

相关文章
相关标签/搜索