标题
- Hive环境搭建
- 解压
- 配置环境变量
- 在conf下新建文件hive-site.xml配置内容
- 上传MysQLjare到hives lib目录
- 安装mysql
- 启动hive
- hive启动时报错,说连接被拒绝
Hive环境搭建
hive-1.1.0-cdh5.7.0.t
注意目录可不能直接上传 所以mysql-sh还得打开上传
解压
257 cd ~/software/
258 ll
259 tar zxvf hive-1.1.0-cdh5.7.0.tar.gz -C ~/app/
260 cd ~/app/hive-1.1.0-cdh5.7.0/
261 ll
262 ls
263 cd conf
264 ll
配置环境变量
[hadoop@hadoop000 hive-1.1.0-cdh5.7.0]$ pwd
/home/hadoop/app/hive-1.1.0-cdh5.7.0
[hadoop@hadoop000 hive-1.1.0-cdh5.7.0]$ vim ~/.bash_profile
HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0
export PATH=$PATH:$HIVE_HOME/bin
[hadoop@hadoop000 hive-1.1.0-cdh5.7.0]$ source ~/.bash_profile
[hadoop@hadoop000 hive-1.1.0-cdh5.7.0]$ echo $HIVE_HOME
/home/hadoop/app/hive-1.1.0-cdh5.7.0
[hadoop@hadoop000 hive-1.1.0-cdh5.7.0]$
在conf下新建文件hive-site.xml配置内容
vi hive-site.xml
下面root用户 因为我们mysql设置密码123 所有都得对应起来
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivesql?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>123</value>
</property>
</configuration>
上传MysQLjare到hives lib目录
还需要上传一个mysql jar包(mysql-connector-java-5.1.0-bin.jar)
[hadoop@hadoop000 software]$ cp mysql-connector-java-5.1.0-bin.jar ~/app/hive-1.1.0-cdh5.7.0/lib/
安装mysql
#我这里 用户mysql 默认密码123
[hadoop@hadoop000 software]$ sudo bash mysql.sh
#sudo好像也不行 只有换root用户了
[hadoop@hadoop000 software]$ su root
密码:
[root@hadoop000 software]# bash mysql.sh
Starting MySQL.. SUCCESS!
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@hadoop000 software]#
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@hadoop000 software]# systemctl status mysqld
Unit mysqld.service could not be found.
[root@hadoop000 software]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@hadoop000 software]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> show databases;
如果出错了 我们里面设置的是安装到/usr/local/mysql/data 删除重来即可
rm -rf /usr/local/mysql/data
启动hive
hive启动时报错,说连接被拒绝
hive启动时 java.net.ConnectException:拒绝连接 下面是百度到的发生错误的情况
[hadoop@hadoop000 ~]$ hive
# 启动hive时出现错误拒绝连接检查后发现原来是hadoop进程没起!!!!!
start-all.sh
stop-all.sh
#配置了hive-site.xml以后 ,启动hive报错,这是因为元数据没信息导致的,我们进入到hive/bin目录下 执行:
./schematool -initSchema -dbType mysql
#即可
# 发生原因 hadoop集群没有启动,或者防火墙,selinux没关,集群处于安全模式
#关闭防火墙
systemctl stop firewalld.service
#关闭selinux 打开selinux 设置
vi /etc/selinux/config
修改 SELINUX=enforcing 为 SELINUX=disabled
#设置为开机不自启
systemctl disable firewalld.service
# 其实就是mysql远程访问权限问题,也可以赋予远程访问权限
# ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock' (2)
#这种情况一般是mysql被杀掉了.要重新启动.
ps -A | grep -i mysql
#kill 列出来的进程
service mysql start
我的问题就解决了
hadoop@ubuntu:~$ mysql -uroot -pmysql
mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'192.168.80.149' WITH GRANT OPTION;
mysql> flush privileges;
再次查看mysql
我的解决是
我感觉跟下面没关系
service mysql start
mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.79.152' WITH GRANT OPTION;
flush privileges;
执行下面 看看效果
start-all.sh
#配置了hive-site.xml以后 ,启动hive报错,这是因为元数据没信息导致的,我们进入到hive/bin目录下 执行:
./schematool -initSchema -dbType mysql
#关闭防火墙
systemctl stop firewalld.service
问题:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/root/2275b82d-f5d1-4fce-b548-
3de2eca22bd9. Name node is in safe mode.
没有关闭安全模式,直接强制离开安全模式就行了:
hdfs dfsadmin -safemode leave
mysql> show databases;
mysql> use hivesql
mysql> show tables;