您的位置:首页 > 数据库 > SQL

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

2017-08-14 09:13 801 查看

Hive的安装

前言

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

MySQL的安装

下载

安装mysql不仅仅是安装mysql的客户端,还要安装mysql的服务端

通过yum库来下载mysql

yum install -y mysql






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

启动服务

下载完mysql,执行

mysql -u root -p


报错



应该是mysql的服务没起来。执行
service mysql start
报错”mysql: unrecognized service”

来到

vi /etc/my.cnf


mysqld配置文件



有一个mysqld,原来mysqld才是用来启动mysql数据库的命令

执行

service mysqld start


启动mysql的守护线程 再来运行

mysql -u root -p



启动完成

对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




找到之后,只需要把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
a7b1
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

因为这一篇拖的太久了,图片损失掉了很多,并且遇到的一些问题也没有记全,还是希望对大家有帮助。若发现有不对的地方请联系博主,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop mysql hive 集群