安装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
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
vi/etc/profile
在文件末尾增加一段(hive包含bin文件的目录)
export HIVE_HOME=/home/hive/hive
export PATH=${HIVE_HOME}/bin:$PATH
让环境变量生效
source /etc/profile
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
数据库连接密码
上传驱动到/home/hive/hive/lib
先:cd /home/hive/hive/lib
rz命令上传
在Hive特定目录下初始化元数据
cd /home/hive/hive/bin
schematool -initSchema -dbType mysql
启动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;
启动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()