赞
踩
本案例软件包:链接:https://pan.baidu.com/s/1zABhjj2umontXe2CYBW_DQ
提取码:1123(若链接失效在下面评论,我会及时更新).
目录
1.首先使用xftp将apache-hive-3.1.2-bin.tar.gz 传到虚拟的/home/hadoop/Downloads的目录下,解压缩至/usr/local并更改文件权限
2.由于国内网络受到gfw限制需要更换yum源下载安装mysql,这里给出更换yum源的方法。
6.进行新建hive数据库,配置mysql允许hive接入代码如下:
- cd /home/hadoop/Downloads
- sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local # 解压到/usr/local中
- cd /usr/local/
- sudo mv apache-hive-3.1.2-bin hive # 将文件夹名改为hive
- sudo chown -R hadoop hive # 修改文件权限,其中hadoop根据实际用户组填写
sudo vim ~/.bashrc
在顶部加入如下内容:
- export HIVE_HOME=/usr/local/hive
- export PATH=$PATH:$HIVE_HOME/bin
- export HADOOP_HOME=/usr/local/hadoop
保存退出输入如下代码使环境变量立即生效
source ~/.bashrc
- cd /usr/local/hive/conf
- sudo mv hive-default.xml.template hive-default.xml
使用vim编辑器新建一个配置文件hive-site.xml,命令如下:
- cd /usr/local/hive/conf
- sudo vim hive-site.xml
在文件中加入以下所有字段:
- <configuration>
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://localhost: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>hive</value>
- <description>username to use against metastore database</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionPassword</name>
- <value>hive</value>
- <description>password to use against metastore database</description>
- </property>
- </configuration>
保存退出。
a:输入以下代码查看sql版本
yum list installed | grep mysql
可以看到版本号,根据版本号将其移除
b:如果已安装,则卸载,使用命令:
sudo yum -y remove mysql-libs.x86_64
删除完成后可以看到complete!
如图所示已成功卸载mysql-libs.x86_64
a:换yum
sudo vi /etc/yum.repos.d/CentOS-Base.repo
用以下内容替换原内容
- [base]
- name=CentOS-6.10 - Base - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos-vault/6.10/os/$basearch/
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
-
- #released updates
- [updates]
- name=CentOS-6.10 - Updates - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos-vault/6.10/updates/$basearch/
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
-
- #additional packages that may be useful
- [extras]
- name=CentOS-6.10 - Extras - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos-vault/6.10/extras/$basearch/
- gpgcheck=1
- gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
-
- #additional packages that extend functionality of existing packages
- [centosplus]
- name=CentOS-6.10 - Plus - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos-vault/6.10/centosplus/$basearch/
- gpgcheck=1
- enabled=0
- gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
-
- #contrib - packages by Centos Users
- [contrib]
- name=CentOS-6.10 - Contrib - mirrors.aliyun.com
- failovermethod=priority
- baseurl=http://mirrors.aliyun.com/centos-vault/6.10/contrib/$basearch/
- gpgcheck=1
- enabled=0
- gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
保存退出
b:更新yum
- sudo yum clean all
- sudo yum makecache
- wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
- sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
如果第二条命令出现报错 可在后面添加 --force --nodeps强制执行
如下图:第一条命令执行完成!
第二条命令执行完成!
sudo yum install mysql-server
如果出现下图报错,记住版本号(图中标出了)输入如下代码
然后输入如下代码
sudo vi /etc/yum.repos.d/mysql-community.repo
在对应版本号下 将enabled=1改为enabled=0。
再次执行安装MySQL命令:
sudo yum install mysql-server
根据提示输入y即可开始安装,安装成功后会显示complete!
- sudo service mysqld start #启动mysql服务
- mysql -u root -p #登陆shell界面
mysql默认没有密码,直接回车即可。
- mysql> create database hive;
- mysql> grant all on *.* to hive@localhost identified by 'hive';
- mysql> flush privileges;
- start-dfs.sh
- hive
注意:启动hive时大概率会出现如下报错 NoSuchMethodError
这时分别打开hadoop文件夹下/share/hadoop/common/lib和hive文件夹下/lib路径,输入命令ll看一下guava.jar版本号是否一致,如果不一致,删除其中低版本,将高版本拷贝过去重新启动hive即可。
查看Hadoop下的guava.jar
- cd /usr/local/hadoop/share/hadoop/common/lib
- ll guava*
查看hive下的guava.jar
- cd /usr/local/hive/lib
- ll guava*
通过对比发现hive下的guava.jar的版本号低一些,然后删除低版本。
rm -rf guava-19.0.jar
已经成功删除低版本。
然后在/usr/local/hadoop/share/hadoop/common/lib下执行
- cd /usr/local/hadoop/share/hadoop/common/lib
- sudo scp -r guava-27.0-jre.jar /usr/local/hive/lib
这时可以正常启动hive但是还无法执行
create database if not exists hive;
来建表
需要在hive的bin目录下初始化hive
- cd /usr/local/hive/bin
- schematool -dbType mysql -initSchema
如果出现以下错误:
则需要将链接MySQL的驱动jar包拷贝到hive的lib文件夹下:
- cd /home/hadoop/Downloads
- sudo tar -zxvf mysql-connector-java-5.1.40.tar.gz -C /usr/local
- cd /usr/local
- cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib
进入hive的lib文件夹ll my*可以看到mysql的jar包
然后再次执行格式化hive命令:
可以看到如下图所示,表明格式化成功!
进入hive执行建表语句:
create database if not exists hive;
如图所示建表成功!!
再次测试!!!
使用sql语句show databases;
可以看到新建的表data。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。