spark安装mysql与hive

本文详细介绍如何在Spark环境中集成Hive,包括安装MySQL、配置Hive metastore、设置Hadoop用户及权限等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一眼spark安装文件夹lib\spark-assembly-1.0.0-hadoop2.2.0.jar\org\apache\spark\sql下有没有hive文件夹,假设没有的话先下载支持hive版的spark。

安装mysql
lsb_release -a  查看虚拟机版本号
http://dev.mysql.com/downloads/mysql#downloads  官网上下载对应版本号
下载三个
MySQL-server-5.6.20-1.el6.i686.rpm
MySQL-client-5.6.20-1.el6.i686.rpm
MySQL-devel-5.6.20-1.el6.i686.rpm

进入下载的软件存放文件夹进行安装,否则安装后会出问题
rpm -ivh MySQL-server-5.6.20-1.el6.i686.rpm
rpm -ivh MySQL-client-5.6.20-1.el6.i686.rpm
rpm -ivh MySQL-devel-5.6.20-1.el6.i686.rpm

启动服务  service mysql start

mysql  -uroot -p
直接回车不输password,报错。认真查看安装时打印出来的信息,发现mysql给root用户随机生成了password,写在  /root/.mysql_secret  中,所以。
cat /root/.mysql_secret   
查看password,XlP5M_wE8w0LgrCG。
登录成功。

此时假设想继续操作。会报错,要求你改动默认password
SET PASSWORD = PASSWORD('new_password')
就可以。

重新启动与停止mysql服务

启动方式1:service mysql start
启动方式2:/etc/init.d/mysql start
停止方式1:service mysql stop
停止方式2:/etc/init.d/mysql shutdown
重新启动方式1:service mysql restart
重新启动方式2:/etc/init.d/mysql restart


创建hadoop用户。
create user 'hadoop' identified by 'hadoop';
grant all on *.* to hadoop@'%' with grant option; 
exit
又一次用hadoop用户登陆并创建hive数据库
mysql -uhadoop -p
create database hive;
use hive
show tables;
exit

下载apache-hive-0.13.1-bin.tar.gz
解压  tar zxf  apache-hive-0.13.1-bin.tar.gz
改名  mv apache-hive-0.13.1-bin hive013
改动配置文件 cd hive013/conf
 cp hive-default.xml.template hive-site.xml
 cp hive-env.sh.template hive-env.sh
 vi hive-env.sh
    HADOOP_HOME=/app/hadoop/hadoop220
vi hive-site.xml
    <property> 
  <name>javax.jdo.option.ConnectionURL</name> 
  <value>jdbc:mysql://DataNode2:3306/hive?=createDatabaseIfNotExist=true</value> 
  <description>JDBC connect string for a JDBC metastore</description> 
</property> 
<property> 
  <name>javax.jdo.option.ConnectionDriverName</name> 
  <value>com.mysql.jdbc.Driver</value> 
  <description>Driver class name for a JDBC metastore</description> 
</property> 
<property> 
  <name>javax.jdo.option.ConnectionUserName</name> 
  <value>hadoop</value> 
  <description>username to use against metastore database</description> 
</property> 
<property> 
  <name>javax.jdo.option.ConnectionPassword</name> 
  <value>hadoop</value> 
  <description>password to use against metastore database</description> 
</property>
###hive.metastore.warehouse.dir是用缺省位置,能够自行改动

添加驱动程序
mysql-connector-java-5.1.26-bin.jar 到/app/hadoop/hive013/lib/.文件夹下

show databases;
能够看到default数据库


hiveclient安装
从datanode2上直接拷贝到datanode1:
scp hive013/ hadoop@DatNode1:/app/hadoop/

conf文件夹下 vi hive-site.xml
<property>
  <name>hive.metastore.uris</name>
  <value>thrift://DataNode2:9083</value>
  <description>Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

后台执行
前台退出ctrl+c 
nohup bin/hive --service metastore > metastore.log 2>&1 &
后台退出
jobs
kill %num

版权声明:本文博主原创文章。博客,未经同意不得转载。

### 使用 SparkMySQL 读取数据并写入 Hive 为了实现这一目标,需先确保环境已正确配置。具体来说,在启动任何操作前,应确认 Hadoop 集群处于开启状态,并且 Hive 的仓库位于 HDFS 上,默认路径为 `/user/hive/warehouse`[^4]。 #### 创建 SparkSession 并加载必要的库 创建支持 HiveSparkSession 是至关重要的一步: ```scala import org.apache.spark.sql.SparkSession val spark = SparkSession.builder() .appName("MySQL to Hive Example") .config("spark.master", "local") // 根据实际情况调整 master 地址 .enableHiveSupport() // 启用对 Hive 表的支持 .getOrCreate() // 加载 JDBC 和其他必要驱动程序 Class.forName("com.mysql.cj.jdbc.Driver").newInstance() ``` 上述代码片段展示了如何初始化带有 Hive 支持的 Spark 应用程序实例[^1]。 #### 定义 MySQL 连接属性 定义用于连接至 MySQL 数据源所需的参数集合如下所示: ```scala val jdbcUrl = "jdbc:mysql://localhost:3306/database_name" val connectionProperties = new java.util.Properties() connectionProperties.put("user", "your_username") connectionProperties.put("password", "your_password") ``` 这里指定了数据库 URL 及访问凭证以便稍后能够顺利获取所需记录集。 #### 执行查询并将结果转换成 DataFrame 通过指定 SQL 查询语句来提取特定表格中的全部条目作为临时视图处理: ```scala val df = spark.read.jdbc(jdbcUrl, "(SELECT * FROM table_name) AS temp_table", connectionProperties) df.createOrReplaceTempView("temp_view") ``` 这段脚本会把来自关系型数据库管理系统 (RDBMS) 的结构化信息映射成本地内存对象供后续分析使用。 #### 将 DataFrame 写入 Hive 表格 最后一步就是利用 SparkSQL API 把之前准备好的中间件持久化存储于分布式文件系统之上: ```sql spark.sql(""" INSERT INTO TABLE default.target_hive_table SELECT * FROM temp_view """) ``` 以上命令实现了将先前由 MySQL 提供给我们的资料正式迁移到大数据平台内的永久位置中去[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值