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

Spark完全分布式集群下的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设置密码,我们要进入数据库设置里面
进入数据库设置里面

在这里插入图片描述

use mysql

查看一下

select host,user,password from user;

在这里插入图片描述

设置密码:

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;

在这里插入图片描述

让设置立即生效

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

配置文件如下:

配置文件如下:

<configuration>
<property>
	<name>javax.jdo.option.ConnectionURL</name>
 	<value>jdbc:mysql://node:3306/hiveDB?createDatabaseIfNotExist=true</value>
 	<description>数据库连接地址</description>
</property>
<property>
 	<name>javax.jdo.option.ConnectionDriverName</name>
 	<value>com.mysql.jdbc.Driver</value>
 	<description>数据库连接驱动</description>
</property>
<property>
 	<name>javax.jdo.option.ConnectionUserName</name>
 	<value>root</value>
 	<description>数据库连接用户名</description>
</property>
<property>
 	<name>javax.jdo.option.ConnectionPassword</name>
 	<value>root</value>
 	<description>数据库连接密码</description>
</property>
</configuration>
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

在这里插入图片描述

在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 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

在这里插入图片描述

向Hive表中插入数据

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

在这里插入图片描述

添加数据到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()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deng872347348

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值