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

不打扰是莪最后的温柔 提交于 2020-02-08 12:25:19

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

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

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

 

1.安装hive

下载hive

地址:http://hive.apache.org/downloads.html

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

解压文件

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

修改配置文件

#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;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!