标题

  • Hive环境搭建
  • 解压
  • 配置环境变量
  • 在conf下新建文件hive-site.xml配置内容
  • 上传MysQLjare到hives lib目录
  • 安装mysql
  • 启动hive
  • hive启动时报错,说连接被拒绝


官网Apache Hive 中文手册

hive的搭建和配置 实验报告_hive


hive的搭建和配置 实验报告_hive的搭建和配置 实验报告_02


hive的搭建和配置 实验报告_hive的搭建和配置 实验报告_03


hive的搭建和配置 实验报告_hive_04


hive的搭建和配置 实验报告_hive_05


hive的搭建和配置 实验报告_hadoop_06


hive的搭建和配置 实验报告_hive_07


hive的搭建和配置 实验报告_hadoop_08


hive的搭建和配置 实验报告_hadoop_09


hive的搭建和配置 实验报告_hive_10

Hive环境搭建

下载地址安装参考1

hive安装和配置

hive的搭建和配置 实验报告_hive_11


hive-1.1.0-cdh5.7.0.t

hive的搭建和配置 实验报告_hadoop_12


hive的搭建和配置 实验报告_hive的搭建和配置 实验报告_13


注意目录可不能直接上传 所以mysql-sh还得打开上传

hive的搭建和配置 实验报告_hive_14


hive的搭建和配置 实验报告_hive_15

解压
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>

hive的搭建和配置 实验报告_hive的搭建和配置 实验报告_16

上传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的搭建和配置 实验报告_mysql_17

启动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

hive的搭建和配置 实验报告_mysql_18


我的解决是

我感觉跟下面没关系
 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;

hive的搭建和配置 实验报告_hive的搭建和配置 实验报告_19