已经安装hadoop,并且可以成功运行。
安装mysql不仅仅是安装mysql的客户端,还要安装mysql的服务端
通过yum库来下载mysql
yum install -y 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
启动完成
创建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
尝试登录一下 看看用户名密码是否设置成功
去官网下载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文件都先处理一下
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
vi hive-site.xml
当进入到这个文件是崩溃的应为参数太多了,虽然很麻烦,但也只能一点一点慢慢来了
利用 /**来查找我们要修改的参数如 :
/**javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionURL
<value>jdbc:mysql://master:3306/hive_metadata?createDatabaseIfNotExist=truevalue>
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.
所连接的MySQL数据库实例,localhost的话应该是伪分布式来使用的,所以我这里是master这样子三个机器用master上的mysql
<property>
<name>javax.jdo.option.ConnectionDriverNamename>
<value>com.mysql.jdbc.Drivervalue>
<description>Driver class name for a JDBCmetastoredescription>
property>
连接的MySQL数据库驱动
<property>
<name>javax.jdo.option.ConnectionUserNamename>
<value>hivevalue>
<description>username to use against metastoredatabasedescription>
property>
连接的MySQL数据库用户名
<property>
<name>javax.jdo.option.ConnectionPasswordname>
<value>hivevalue>
<description>password to use against metastoredatabasedescription>
property>
连接的MySQL数据库密码
<property>
<name>hive.metastore.urisname>
<value>thrift://master:9083value>
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.description>
property>
元数据mysql远程模式配置。如果hive.metastore.uris属性为空,则默认为本地模式,否则为远程模式
没有用到hdfs,这一块还是有点缺失的。(有需求的博友们,可以再多查一点资料,我的也只能是仅供参考了吧,毕竟新手还做不到完美配置)
来到根目录下,先启动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
因为这一篇拖的太久了,图片损失掉了很多,并且遇到的一些问题也没有记全,还是希望对大家有帮助。若发现有不对的地方请联系博主,谢谢。