hive 安装及使用:
1、把 apache-hive-1.2.2-bin.tar.gz 上传到 linux 的/opt/software 目录下
2、解压 apache-hive-1.2.2-bin.tar.gz 到/opt/module/目录下面
tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /opt/module/
3、修改 apache-hive-1.2.2-bin.tar.gz 的名称为 hive
mv apache-hive-1.2.2-bin/ hive
4、修改/opt/module/hive/conf 目录下的 hive-env.sh.template 名称为 hive-env.sh
mv hive-env.sh.template hive-env.sh
5、配置 hive-env.sh 文件
1.配置 HADOOP_HOME 路径
export HADOOP_HOME=/opt/module/hadoop-2.7.2
2.配置 HIVE_CONF_DIR 路径
================================================================================================
启动hive:
1、启动hdfs,yarn
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
或者:
sbin/start-dfs.sh
sbin/start-yarn.sh
2、在 HDFS 上创建/tmp 和/user/hive/warehouse 两个目录并修改他们的同组权限可写
bin/hadoop fs -mkdir /tmp
bin/hadoop fs -mkdir -p /user/hive/warehouse
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /user/hive/warehouse
3、启动hive
bin/hive
4、hive操作(类似于mysql):
增,删,查
5、将本地文件导入hive:
1.在/opt/module/目录下创建 datas
mkdir datas
2.创建 student.txt 文件并添加数据
vi student.txt(以空格分割)
3.启动hive,使用default 数据库
4.删除student表
5.创建新student表
create table student(id int, name string) row format delimited fields terminated by ' ';
6.加载/opt/module/datas/student.txt 文件到 student 数据库表中
load data local inpath '/opt/module/datas/student.txt' into table student;
6、问题:
无法窗口启动hive:
原因是, Metastore 默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore;
================================================================================================
安装mysql
1.查看是否安装mysql:
rpm -qa|grep mysql
2.删除已有mysql:
rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
3.将MySQL-server-5.6.41-1.el6.x86_64.rpm,MySQL-client-5.6.41-1.el6.x86_64.rpm复制到 /opt/software 下
4.安装 mysql 服务端
1.安装
rpm -ivh MySQL-server-5.6.41-1.el6.x86_64.rpm
2.查看随机生的密码:
cat /root/.mysql_secret
3.查看mysql状态,启动mysql服务:
service mysql status
service mysql start
6.安装mysql客户端:
1.安装
rpm -ivh MySQL-client-5.6.41-1.el6.x86_64.rpm
2.登录:
mysql -uroot -p
3.修改密码:
set password=password('123456')
7.配置mysql user 表中主机配置:
show databases;
use mysql;
show tables;
查看表结构:
desc user;
select User, Host, Password from user;
修改 user 表,把 Host 表内容修改为%
update user set host='%' where host='localhost';
删除 root 用户的其他 host:
delete from user where Host in ('hadoop102','127.0.0.1','::1') ';
刷新:
flush privileges;
================================================================================================
Hive 元数据配置到 MySql
1、拷贝驱动:
tar -zxvf mysql-connector-java-8.0.12.tar.gz
cd mysql-connector-java-8.0.12
cp mysql-connector-java-8.0.12.jar /opt/module/hive/lib/
2、配置Metastore 到 MySql
1.在/opt/module/hive/conf 目录下创建一个 hive-site.xml
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://centos66:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>Whether to include the current database in the Hive
prompt.</description>
</property>
<property>
<name>hive.cli.print.header</name>
<value>false</value>
<description>Whether to print the names of the columns in query output.</description>
</property>
</configuration>
3、多窗口测试:
启动hive(若启动异常,重启机器,开启hadoop集群)
================================================================================================
hive 的一些操作:
1.查看hdfs文件系统:
dfs -ls /;
2.查看本地文件:
! ls /opt/module/
3.查看hive中输入历史记录:
cat /root/.hivehistory