51cto赵强HADOOP学习(十一)Hive安装

安装模式

嵌入模式

元数据信息被存储在Hive自带的Derby数据库中
只允许创建一个连接
多用于Demo

hadoop用伪分布

#start-all.sh
#tar -zxvf apache-hive-0.13.0-bin.tar.gz 
#mv apache-hive-0.13.0-bin/ hive
# rm -rf apache-hive-0.13.0-bin.tar.gz 
#cd hive
#ls
#cd bin
#ls
#./hive
>quit;
#cd ..
vi ~/.bash_profile
export HIVE_HOME=/root/training/hive

export PATH=$HIVE_HOME/bin:$PATH
#source ~/.bash_profile
#ls bin
#hive
>quit;

远程模式

元数据信息被存储在MySQL数据库中
MySQL数据库与Hive运行不在同一台物理机器上
多用于实际的生产运行环境

在mysql数据库里面创建一个hive数据库。

#cd training
# tar -zxvf apache-hive-0.13.0-bin.tar.gz 
# rm -rf apache-hive-0.13.0-bin.tar.gz
# mv apache-hive-0.13.0-bin/ hive
//上传一个 mysql-connector-java-5.1.7-bin.jar包到/hive/lib目录下,用来连接数据库。
#cd hive/conf
#vi ~/.bash_profile
export HIVE_HOME=/root/training/hive

export PATH=$HIVE_HOME/bin:$PATH
#source ~/.bash_profile
#vi hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.116.27:3306/hive</value>
                                            //这里的ip是物理机上的地址
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
    </property>
</configuration>
# schematool -initSchema -dbType mysql
#hive
如果这里出现Caused by: java.sql.SQLException: Access denied for user ‘root’@’XH’ (using password: YES)这个问题,打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。然后重启MySQL就可以了。
>create table test1(tid int, tname string);
创建表出现FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 767 bytes
在mysql里面输入alter database hive character set latin1; 就可以了。

本地模式

元数据信息被存储在MySQL数据库中
MySQL数据库与Hive运行在同一台物理机器上
多用于开发和测试
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.56.27:3306/hive</value>   //本地模式只需要把这里的jdbc:mysql://192.168.56.27:3306/hive改为localhost就可以。
    </property>

Hive的管理

Hive的启动方式

CLI(命令行)方式
直接输入#<HIVE_HOME>/bin/hive的执行程序
#hive
>quit;
或者输入 #hive –service cli
#hive --service cli
>exit;

常用的CLI命令

Ctrl+L或者!clear    //清屏
>show tables  --查看表列表;   //查看数据仓库中的表
>show functions  --查看函数列表;    //查看数据仓库中内置函数
desc 表名    查看表结构
>desc test1;
dfs -ls 目录     查看DFS上的文件
>dfs -ls /user;
!命令     执行操作系统的命令
>!pwd
>!ls
>select * from test1;
>select tname from test1;

复制一个窗口

#vi my.sql
select * from test1;
#vi my1.sql
select tname from test1;
>source  /root/my.sql
>source /root/my1.sql
>quit;
#hive -S
>quit;
#hive -e 'show tables';
#hive -e 'select * from test1';
Web界面方式
端口号9999
启动方式:#hive –service hwi &
通过浏览器来访问:http://<IP地址>:9999/hwi/
#cd training
#tar -zxvf apache-hive-0.13.0-src.tar.gz
# rm -rf apache-hive-0.13.0-src.tar.gz
#mv apache-hive-0.13.0-src/ hive1
#cd hive1
#cd hwi
# jar cvfM0 hive-hwi-0.13.0.war -C web/ .
# cp hive-hwi-0.13.0.war ~/training/hive/lib/
# cd ~/training/hive/conf/
#vi hive-site.xml
<property>
  <name>hive.hwi.listen.host</name>
  <value>0.0.0.0</value>
</property>

<property>
  <name>hive.hwi.listen.port</name>
  <value>9999</value>
</property>

<property>
  <name>hive.hwi.war.file</name>
  <value>lib/hive-hwi-0.13.0.war</value>
</property>

复制一台:

#cp training/jdk/lib/tools.jar training/hive/lib/
#hive --service hwi

在网页上浏览

192.168.56.15:9999.hwi

远程服务启动方式
#hive --service hiveserver
    原文作者:lehuai
    原文地址: https://www.jianshu.com/p/d3bb46d6fb78
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞