Hive1.2.2详细安装教程

Hive是Hadoop组态中的数据仓库,本质是将sql语句转换为MapReduce任务,所以Hive只是一个解析引擎,它的数据存储在hdfs上,元数据信息依托mysql数据库。在这里有一个小问题,为什么需要mysql关系数据库,因为hdfs存储的只是数据信息,而建表的时候是需要列名来查询的,因此要用mysql来建立表信息,当然也可以用其他的关系型数据库。在这里依托mysql数据库搭建Hive组件。

1. 安装MySQL服务器端和MySQL客户端;

•安装:

– yum install mysql

– yum install mysql-server

•启动:

– /etc/init.d/mysqld start

•设置用户名和密码:

– mysql admin -u root password  ‘111111’

•测试登录是否成功:

– mysql -uroot -p111111

登录MySQL:(1)直接输入密码mysql -uroot -p111111 (2)用户和密码mysql -uroot –p,密码111111

退出MySQL:exit;或者quit;

2. 安装Hive

a.#Master

下载apache-hive-1.2.2-bin.tgz,并解压

wget http://mirror.bit.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz

tar zxvf apache-hive-1.2.2-bin.tar.gz

 b.修改Hive配置文件

#Master

cd apache-hive-1.2.2-bin/conf

创建hive-site.xml配置文件

vim hive-site.xml

<configuration>

    <property>

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

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

    </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>111111</value>

    </property>

</configuration>

 c.修改bashrc,配置环境变量

#Master、Slave1、Slave2

vim ~/.bashrc

export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin

export PATH=$PATH:$HIVE_HOME/bin

#刷新环境变量

source ~/.bashrc

 d. 安装MySQL连接工具

#Master

1)下载安装包

wge thttps://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.44.tar.gz

tar zxvf mysql-connector-java-5.1.44.tar.gz

2)复制连接库文件

cp mysql-connector-java-5.1.44-bin.jar /usr/local/src/apache-hive-1.2.2-bin/lib

 e.更新jline.jar

在早期Hadoop版本中 jline.jar的版本是0.9+ 使用这个版本会报错,所以要替换成新版本的Jar包;

jline.jar包下载地址: http://maven.outofmemory.cn/jline/jline/2.12.1/

#Master

进入路径cd /usr/local/src/hadoop-2.6.1/share/hadoop/yarn/lib

删除jlin-0.9.94.jar  rm -rf jline-0.9.94.jar

替换成新的版本cp jline-2.12.1.jar/usr/local/src/hadoop-2.6.1/share/hadoop/yarn/lib

 f.拷贝安装包

#Master

scp-r /usr/local/src/apache-hive-1.2.2-binroot@slave1:/usr/local/src/apache-hive-1.2.2-bin

scp-r /usr/local/src/apache-hive-1.2.2-bin root@slave2:/usr/local/src/apache-hive-1.2.2-bin

h.启动Hive服务

#Master

hive

 i.退出Hive服务

#Master

exit;


3.创建hive数据库并刷新权限

mysql>CREATE USER ‘hive’ IDENTIFIED BY ‘hive’;

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘hive’@’master’ WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘hive’@’master’ IDENTIFIED BY ‘111111’;

mysql>flush privileges;

mysql>create database hive;

flush privileges; --为其他客户端开启连接权限


4.解决mysql“Access denied for user'root'@'localhost'”

 #/etc/init.d/mysql stop

#mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

#mysql -u root mysql

mysql>UPDATE user SET Password=PASSWORD('111111') where USER='root';

mysql>FLUSH PRIVILEGES;

mysql>quit;

#/etc/init.d/mysql restart

#mysql -uroot -p

Enterpassword: <输入新设的密码newpassword>

5.向Hive表中加载数据

load data inpath 'path' overwrite into table name;  加载hdfs路径下的文件,数据会从该目录下移动到目标位置。

load data local inpath 'path' overwrite into table name;  加载本地文件系统路径下的文件,数据会被拷贝到目标位置。

6.hive复制整段语句是出现 Display all 475possibilities? (y or n)错误的处理方法

在用hive时,复制一整片代码运行,发现好多提示: Display all 475possibilities? (y or n),导致复制失败,原因:是复制的代码中包含了Tab缩进,只要将原来复制的代码中的Tab空格全部去掉即可。

7.hive导入数据时最后几列始终为NULL的原因:

主要是分隔符的问题,创建表指定的分隔符为"\t",可数据是以空格分割的。比如你的文件内容里面是以空格分割的,by的后面就写‘’(里面有一个空格);如果文件内容是以逗号分割的,by后面就写‘,’。



猜你喜欢

转载自blog.csdn.net/qq_38332574/article/details/80386345