HIVE在Ubuntu下搭建笔记
HIVE安装笔记
1.准备好mysql-connector-java-5.1.47.tar.gz和apache-hive-2.3.4-bin.tar.gz并使用xftp将其压缩包传输/home/hadoop目录下
2.解压Apache包并将其移动到hadoop_home目录下。打开Apache-hive-2.3.4-bin目录下pwd可以查看当前目录路径。Vim ~/.profile配置环境变量ExportHIVE_HOME=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin并在PATH路径下添加:$HIVE_HOME/bin:结束后source一下。
3.打开/home/hadoop/hadoop_home/apache-hive-2.3.4-bin/conf在该目录标签下直接分别输入四条命令:
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
4.因为 Hive 使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安装路径:
1)打开 hive-env.sh 文件,先把HADOOP_HOME所在行给注释掉。
2) 将以下路径配置写入:
export JAVA_HOME=/home/hadoop/hadoop_home/jdk1.8.0_181 ##Java路径
export HADOOP_HOME=/home/hadoop/hadoop_home ##Hadoop安装路径
export HIVE_HOME=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin ##Hive安装路径
export HIVE_CONF_DIR=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin/conf ##Hive配置文件路径
5.新开一个xshell并切换到root权限下安装数据库 apt-get install mysql-server 这里显示的是5.7.25版本,相比于5.5的版本要更稳定。在mysql的配置目录root@master:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf将bind-address给注释掉
6.登录数据库:mysql -u root -p
然后分行输入以下命令,当输入一行命令若没有报错则表示其已成功运行。
mysql> CREATE DATABASE hive;
mysql> USE hive;
mysql> CREATE USER ‘hive’@‘localhost’ IDENTIFIED BY ‘hive’;
mysql> GRANT ALL ON hive.* TO ‘hive’@‘localhost’ IDENTIFIED BY ‘hive’;
mysql> GRANT ALL ON hive.* TO ‘hive’@’%’ IDENTIFIED BY ‘hive’;
mysql> FLUSH PRIVILEGES;
mysql> quit;
在创建好数据库后,重启数据库更新root@master:~# /etc/init.d/mysql restart
7.
在 Hive 中创建表之前需要创建以下 HDFS 目录并给它们赋相应的权限。(在hadoop权限下执行)
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chmod g+w /user/hive/tmp
hadoop fs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod g+w /user/hive/log
7.解压数据库hadoop@master:~$ tar -xvf mysql-connector-java-5.1.47.tar.gz
hadoop@master:~/mysql-connector-java-5.1.47$ cp mysql-connector-java-5.1.47.jar ~/hadoop_home/apache-hive-2.3.4-bin/lib/
先进入mysql文件目录中,在将jar包拷贝到/lib/目录下。注意:解压的mysql压缩包的时候会生成两个jar包,这里选择的是没有bin的那个。
8.修改hive-site.xml
然后在配置文件hive-site.xml中,把所有的
s
y
s
t
e
m
:
j
a
v
a
.
i
o
.
t
m
p
d
i
r
都
替
换
为
/
u
s
r
/
l
o
c
a
l
/
h
i
v
e
/
t
m
p
,
把
所
有
的
{system:java.io.tmpdir} 都替换为/usr/local/hive/tmp,把所有的
system:java.io.tmpdir都替换为/usr/local/hive/tmp,把所有的{system:user.name}替换为
u
s
e
r
.
n
a
m
e
修
改
语
句
为
:
{user.name} 修改语句为 :%s/
user.name修改语句为:{system:java.io.tmpdir}//usr/local/hive/tmp/g
:%s/
s
y
s
t
e
m
:
u
s
e
r
.
n
a
m
e
/
{system:user.name}/
system:user.name/{user.name}
直接修改为下面这样也可以,注意用户名和密码,对应上一步中mysql创建的用户名和密码
在一下修改property的值的时候可以通过name来查询。
直接输入 ‘/’后面加所要查询的语句 当查询结果为多个的时候,使用大写N为向上找,小写n为向下找。
hive.exec.scratchdir
/user/hive/tmp
hive.metastore.warehouse.dir
/user/hive/warehouse
hive.querylog.location
/user/hive/log
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
hive
9.创建/usr/local/hive/tmp文件夹
切换到root用户执行
mkdir -p /usr/local/hive/tmp
chown -R hadoop:hadoop /usr/local/hive/tmp
10.运行Hive
在命令行运行 hive 命令时必须保证以下两点:
HDFS 已经启动。可以使用 start-dfs.sh 脚本来启动 HDFS。
运行 schematool 命令来执行初始化操作。
schematool -dbType mysql -initSchema
执行成功会出现schemaTool completed
11.启动hive
总结:第一次搭建的时候不成功,发现是在mysql命令登录下 数据库hive有很多杂乱的东西。将其删除重建。
登录数据库可能出现的错误
登录时有可能报这样的错:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
$ sudo chown -R root:root /var/lib/mysql
重启mysql服务
$ service mysqld restart 或者/etc/init.d/mysql restart