hadoop分布式集群hive-mysql的安装配置

Hive的安装

前言

已经安装hadoop,并且可以成功运行。

MySQL的安装

下载

安装mysql不仅仅是安装mysql的客户端,还要安装mysql的服务端
通过yum库来下载mysql

yum install -y mysql

Exler

Exler
好的,现在mysql下载完成了!

启动服务

下载完mysql,执行
mysql -u root -p
报错
Exler
应该是mysql的服务没起来。执行service mysql start报错”mysql: unrecognized service”
来到
vi /etc/my.cnf
mysqld配置文件
Exler
有一个mysqld,原来mysqld才是用来启动mysql数据库的命令

执行
service mysqld start
启动mysql的守护线程 再来运行
mysql -u root -p
Exler启动完成

对MySQL进行配置

创建hive用户,数据库等

insert into mysql.user(Host,User,Password) values("localhost","hive",password("hive"));
create database hive;
grant all on hive.* to hive@'%'  identified by 'hive';    // 使用户可以远程连接
grant all on hive.* to hive@'localhost'  identified by 'hive';    // 使用户可以本地连接
mysql -u hive -p hive

尝试登录一下 看看用户名密码是否设置成功

Hive安装

下载

官网下载apache-hive-2.3.0-bin.tar.gz

安装

tar -zxvf apache-hive-2.3.0-bin.tar.gz

并移动到自己想要放置的地方

配置路径

这一步可以不进行,但推荐还是配置一下环境变量 这样就不用每次都跑到hive/bin下面去启动hive了

vi /etc/profile

添加

export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH
source /etc/profile

下载mysql jdbc jar包,解压并把mysql-connector-java-5.1.43目录下的mysql-connector-java-5.1.6-bin.jar拷贝到hive 的lib下面

cp mysql-connector-java-5.1.6-bin.jar /usr/local/hive/lib 

配置文件

在hive文件夹下
cd conf/
运行

cp hive-default.xml.template hive-site.xml

cp hive-env.sh.template hive-env.sh

cp hive-exec-log4j.properties.template hive-exec-log4j.properties

cp hive-log4j.properties.template hive-log4j.properties

把四个template文件都先处理一下

hive-env.sh
vi hive-env.sh

在此文件中加入

export JAVA_HOME=/opt/softwares/jdk1.8.0_131
export JRE_HOME=/opt/softwares/jdk1.8.0_131/jre
export HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/conf
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HIVE_AUX_JARS_PATH=$HIVE_HOME/bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HADOOP_USER_CLASSPATH_FIRST=true
hive-site.xml

vi hive-site.xml

当进入到这个文件是崩溃的应为参数太多了,虽然很麻烦,但也只能一点一点慢慢来了
利用 /**来查找我们要修改的参数如 :
/**javax.jdo.option.ConnectionURL

Exler
找到之后,只需要把value的值改掉就好了

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://master:3306/hive_metadata?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
   </description>
</property>

所连接的MySQL数据库实例,localhost的话应该是伪分布式来使用的,所以我这里是master这样子三个机器用master上的mysql

<property>
 <name>javax.jdo.option.ConnectionDriverName</name>
 <value>com.mysql.jdbc.Driver</value>
 <description>Driver class name for a JDBCmetastore</description>
</property>

连接的MySQL数据库驱动

<property>
 <name>javax.jdo.option.ConnectionUserName</name>
 <value>hive</value>
 <description>username to use against metastoredatabase</description>
</property>

连接的MySQL数据库用户名

<property>
 <name>javax.jdo.option.ConnectionPassword</name>
 <value>hive</value>
 <description>password to use against metastoredatabase</description>
</property>

连接的MySQL数据库密码

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

元数据mysql远程模式配置。如果hive.metastore.uris属性为空,则默认为本地模式,否则为远程模式

没有用到hdfs,这一块还是有点缺失的。(有需求的博友们,可以再多查一点资料,我的也只能是仅供参考了吧,毕竟新手还做不到完美配置)

启动Hive

来到根目录下,先启动hadoop start-all.sh
然后hive
启动hive输入show tables;
验证是否安装成功

遇到的问题

hive启动后运行show tables;出现报错
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantidata.SessionHiveMetaStoreClient
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantidata.SessionHiveMetaStoreClient
这个问题的原因是HivedMetaStore服务没有启动需要手动启动一下

hive --service metastore &

接着上面的问题HivedMetaStore服务启动失败 报错
Caused by: org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : “DBS” in Catalog “” Schema “”. DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable “datanucleus.schema.autoCreateTables”

需要到hive-site.xml中找到datanucleus.schema.autoCreateAll 把value改成true。再启动HivedMetaStore服务,接着启动hive。show tables; 成功运行。

参考

https://cwiki.apache.org/confluence/display/Hive/GettingStarted
http://blog.csdn.net/asia_kobe/article/details/50866382
http://blog.csdn.net/an342647823/article/details/46048403

因为这一篇拖的太久了,图片损失掉了很多,并且遇到的一些问题也没有记全,还是希望对大家有帮助。若发现有不对的地方请联系博主,谢谢。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值