Hive 分布式搭建,Spark集成Hive记录

本帖详细介绍搭建步骤,仅仅记录自己搭建过程以及采坑经历。

前提环境:

Hadoop集群 版本2.7.2

Spark集群 版本2.1.0

Linux版本 Centos7

准备搭建 MySql版本5.5.61 ,Hive-2.1.0

去官网下载MySQl的tar包。我下的是mysql-5.5.61-linux-glibc2.12-x86_64.tar.gz

解压tar包   

tar -zxvf mysql-5.5.61-linux-glibc2.12-x86_64.tar.gz

添加系统mysql组和mysql用户:

执行命令:groupadd mysql和useradd -r -g mysql mysql

groupadd mysql

useradd -r -g mysql mysql

修改当前目录拥有者为mysql用户:执行命令

chown -R mysql:mysql ./

安装数据库:执行命令

./scripts/mysql_install_db --user=mysql

修改当前目录拥有者为root用户:执行命令

chown -R root:root ./

修改当前data目录拥有者为mysql用户:执行命令

chown -R mysql:mysql data

到此数据库安装完毕

---------------------

启动mysql服务和添加开机启动mysql服务:

添加开机启动:执行命令

cp support-files/mysql.server /etc/init.d/mysql

把启动脚本放到开机初始化目录

启动mysql服务:执行命令

service mysql start

这里我们遇到个异常:

031ec18e5941ded07ea986f78aba8c998f7.jpg

我们这样解决,执行下面三条命令

mkdir /var/log/mariadb

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

cfb3a92c9fef19bad6b819a81b739ea617c.jpg

再次启动成功!

执行命令:

ps -ef|grep mysql

看到mysql服务说明启动成功

7eb3ad90b6d9ab96c250a487a185f953ffd.jpg修改mysql的root用户密码,root初始密码为空的:

执行命令:

./bin/mysqladmin -u root password '密码'

这里我们又遇到了一个错误

e2cda35b7178ae3a47403a38df316fe2967.jpg

执行

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 

 之后解决

71d4745ae004a4f96afa4039be59bd20343.jpg

把mysql客户端放到默认路径:

ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

mysql已经安装完毕并且启动,此时又出现问题,无法远程连接

解决方法:

执行use mysql;
执行select 'host' from user where user='root';
执行update user set host = '%' where user = 'root';这一句执行完可能会报错,不用管它。
执行FLUSH PRIVILEGES;

602b75606375155de8477663f58b4d6b198.jpg

之后即可远程访问。

中间有一个服务在安装mysql的时候出现了问题The server quit without updating PID file

有一篇贴给出了比较全的出现场景在此贴出

--------------------------------------------------------------------------------------------------------------------------------

问题可能的原因有多种,具体什么原因最好的办法是先查看下错误日志:

1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限

解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!

2、可能进程里已经存在mysql进程

解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。

解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !

4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。

解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

5、skip-federated字段问题

解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6、错误日志目录不存在

解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7、selinux惹的祸,如果是centos系统,默认会开启selinux

解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

---------------------------------------------------------------------------------------------------------------------------------

Hive集群的配置我参考了这边帖子

https://blog.csdn.net/envinfo2012/article/details/75669559

启动方式参考了这篇帖子,因为上面的启动在我这里不好使

https://blog.csdn.net/lblblblblzdx/article/details/79760959

 

按照上面的帖子配置然后启动hive集群,最后将hive metastore的配置hive-site.xml放在spark的conf目录。启动spark-shell时报错。

6b98d110a1d8e5c8954ab0f31ae93284af4.jpg

比较简单的解决方案是修改hive-site.xml里的配置去掉验证。

<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
</property>

再次启动spark-shell不在报此错误,但是又多了另一个错误:

85e757a813c0a5ed32321203d6ed6626931.jpg

原因是我的Spark主节点上有一个hive的主节点,hive的主节点上的hive-site.xml并没有配置类似链接主节点的配置,Spark中的hive-site.xml添加上如下配置就好了

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://192.168.194.131:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

再次启动,不再报错

1b275f5fef6f783788f735e6e0028f07014.jpg

终于可以成功的使用Spark操纵hive了

7dd5e4207d7a4711cdaef823cbb9d084c31.jpg

转载于:https://my.oschina.net/u/3687664/blog/2248707

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值