Spark完全分布式集群下的Hive的安装和配置-安装步骤

Spark完全分布式集群下的Hive的安装和配置-安装步骤:

文章目录

      • Spark完全分布式集群下的Hive的安装和配置-安装步骤:
        • 2.安装MySQL数据库
      • 3.配置MySQL相关
        • 5.设置环境变量
        • 6.修改hive配置文件
        • 7.上传MySQL连接驱动
        • 8.初始化元数据
        • 9.启动Hive
        • Spark SQL操作Hive数据库

2.安装MySQL数据库

安装mysql

先检查系统是否装有mysql

rpm -qa | grep mysql

返回空值,说明没有安装

如果没有找到wget命令:

yum install -y wget
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

启动mysql 服务

service mysqld start

进入mysql命令

mysql -p

基本的sql语句回顾

查看mysql数据库里面所以的数据库

show databases;

退出

exit

3.配置MySQL相关

1.在Mysql中创建数据库存储元数据,在mysql命令窗口输入命令

create database hiveDB;

2.给mysql设置密码,我们要进入数据库设置里面
进入数据库设置里面

Spark完全分布式集群下的Hive的安装和配置-安装步骤_第1张图片

use mysql

查看一下

select host,user,password from user;

Spark完全分布式集群下的Hive的安装和配置-安装步骤_第2张图片

设置密码:

set password for 'root'@'localhost'=password('root');

赋予权限:

grant all privileges on *.* to root@'%' identified by 'root' with grant option;

给虚拟机上的mysql设置密码,node对应虚拟机名

set password for root@node=password('root');

查看一下:

select host,user,password from user;

Spark完全分布式集群下的Hive的安装和配置-安装步骤_第3张图片

让设置立即生效

flush privileges;

这样数据库进行就需要密码进入了

配置好远程连接后,我们可以切换到Windows操作系统,打开可视化MySQL客户端

应用程序,创建新的连接,输入服务器IP地址和远程连接的密码root,测试连接

#### 4.上传hive安装包,解压,重命名

新建文件夹:

mkdir /home/hive

上传Hive安装文件压缩包

rz命令,如果没有rz命令,安装一个rz命令

yum install  -y lrzsz

这个我们要

cd /export/server

rz上次hive压缩包
这里我用的是1.2.1的,因为我要和我安装的spark版本兼容,如果不兼容,后面spark就操作不了hive 

解压hive安装文件压缩文件

tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /home/hive

重新命名hive压缩文件

ln -s apache-hive-2.1.1-bin hive
5.设置环境变量
vi/etc/profile
在文件末尾增加一段(hive包含bin文件的目录)
export HIVE_HOME=/home/hive/hive
export PATH=${HIVE_HOME}/bin:$PATH
让环境变量生效
source /etc/profile
6.修改hive配置文件
cd /home/hive/hive/conf  #Hive的配置文件目录
修改hive-env.sh
如果没有这个文件
cp hive-env.sh.template hive-env.sh
将以下内容写到hive-env.sh(/etc/profile)

JAVA_HOME=/export/server/jdk1.8#自己的jdk安装目录
HADOOP_HOME=/export/server/hadoop-2.7.2#自己的Hadoop安装目录
export HIVE_HOME=/home/hive/hive

2.删除hive-site.xml 如果没有这个文件,在conf目录,vi hive-site.xml

配置文件如下:

配置文件如下:



	javax.jdo.option.ConnectionURL
 	jdbc:mysql://node:3306/hiveDB?createDatabaseIfNotExist=true
 	数据库连接地址


 	javax.jdo.option.ConnectionDriverName
 	com.mysql.jdbc.Driver
 	数据库连接驱动


 	javax.jdo.option.ConnectionUserName
 	root
 	数据库连接用户名


 	javax.jdo.option.ConnectionPassword
 	root
 	数据库连接密码


7.上传MySQL连接驱动

上传驱动到/home/hive/hive/lib

先:cd  /home/hive/hive/lib
rz命令上传
8.初始化元数据

在Hive特定目录下初始化元数据

cd /home/hive/hive/bin
schematool -initSchema -dbType mysql
9.启动Hive
启动hadoop集群:statr-all.sh
启动mysql服务:service mysqld start
在安装了hive的机器上输入hive

简单查看数据库:Show databases;
hive创建数据库:create database bigdata;
show database;

Hive采用的是MySQL数据库存放元数据,因此为了能够让spark访问Hive,就需要能够让spark访问hive,就需要MySQL驱动包复制到Spark安装路径下的jars目录下

 cd /export/server/spark/jars
 
 rz上次 MySQL驱动包

要路径spark SQL要部署hive-site.xml文件到spark/conf/下面

ln -s /home/hive/hive/conf/hive-site.xml  /export/server/spark/conf/hive-site.xml

Spark完全分布式集群下的Hive的安装和配置-安装步骤_第4张图片

在Hive里面创建数据库表

create database sparksqltest;
use sparksqltest;
create table person(id int,name string,age int);

插入数据

Insert into person values(1,"tom",29);
Insert into person values(2,"jerry",20);

查看表数据

select*from person;

Spark完全分布式集群下的Hive的安装和配置-安装步骤_第5张图片

Spark SQL操作Hive数据库
启动zkServer.sh start  三台集群都要启动
cd /export/server/spark  目录下
sbin/start-all.sh  启动spark集群
进入scala
spark-shell --master spark://node:7077

spark.sql("use sparksqltest")

查看数据

spark.sql("show tables").show

Spark完全分布式集群下的Hive的安装和配置-安装步骤_第6张图片

向Hive表中插入数据

spark.sql("select*from person").show

Spark完全分布式集群下的Hive的安装和配置-安装步骤_第7张图片

添加数据到person表中

import java.util.Properties
import  org.apache.spark.sql.types._
import  org.apache.spark.sql.Row

#创建数据
val personRDD=spark.sparkContext.parallelize(Array("3 zhangsan 22","4 lisi 29")).map(_.split(" "))

#设置personRDD的schema

val schema=StructType(List(
StructField("id",IntegerType,true),
StructField("name",StringType,true),
StructField("age",IntegerType,true)))
#创建Row对象,每个Row对象都是rowRDD中的一行

val rowRDD=personRDD.map(p=>Row(p(0).toInt,p(1).trim,p(2).toInt))
#建立rowRDD与Schema对应关系,创建DataFrma

val personDF=spark.createDataFrame(rowRDD,schema)
#查询表数据
spark.sql("select*from person").show()

你可能感兴趣的:(Hadoop,Hive,hive,大数据)