安装hive
- hive是一个基于hadoop的数据仓库,实质即为一个将MR任务封装为易于编写的hql语句(类似于sql语句)的组件。
- hive基于hadoop,因此运行hive必须安装hadoop,而hadoop则必须安装jdk。
- hive作为一个数据仓库,自然需要存储元数据,其内置有一个derby数据库用于存储元数据,但使用derby作为元数据库时只允许单用户单会话连接,生产实用时过于受限,因此常使用mysql作为其元数据库,可以做到多用户多会话连接。
- 因此,安装hive的前提是:jdk、hadoop、mysql
1. 安装jdk
- 首先查看自己Linux的系统位数和版本:uname -a 查看系统位数,cat /etc/redhat-release 查看centos版本。
- 上传jdk的安装包,或者网站下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 解压:tar -xzvf(压缩打包文件) 或者 tar -xvf(压缩文件)
- 配置环境:sudo vim /etc/profile
export JAVA_HOME=jdk安装路径
export PATH=$PATH:$JAVA_HOME/bin
- 生效环境变量:source etc/profile
- 验证是否安装: Java -version
2.安装hadoop
- 上传hadoop安装包,或者网站下载:https://hadoop.apache.org/releases.html
- 解压:tar -xzvf
- 配置环境:sudo vim /etc/profile
export HADOOP_HOME=hadoop安装路径
export PATH=$PATH:$HADOOP_HOME/bin$HADOOP_HOME/sbin
- 生效环境变量: source etc/profile
- hadoop本身就已经具备本地模式的配置,因此,搭建本地模式的hadoop用于测试时,不需要额外配置其他文件。
- 验证是否安装:hadoop version
3.安装mysql
- 查看系统自带的旧版本mysql和mariadb,否则会版本冲突导致无法使用: rpm -qa | grep -i mysql rpm -qa|grep mariadb
- 卸载旧版mysql: rpm -e --nodeps mysql-xxx //卸载mysql rpm -e --nodeps 文件名 // 卸载mariadb
- 如果不卸载自带的Mariadb ,就会出现上述的情况,这代表无法正确安装mysql-server,其实就是安装失败,版本冲突
- 上传mysql安装包,或者网站下载:https://dev.mysql.com/downloads/mysql/5.7.html#downloads,这里记得下载rpm安装包,这种安装方式会自动加载依赖,简单方便。
- 解压:tar -xvf
- 安装mysql server:
rpm -ivh MySQL-server-xxx - 这才是安装成功了
- 安装mysql client:
rpm -ivh MySQL-client-xxx - 启动服务:service mysql start
- 测试:
登录:cat .mysql_secret :初始密码
修改密码:set password=password(‘root’); - 授权:
GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
FLUSH PRIVILEGES; - 如果第8步无法操作,则一定是出现了权限问题,如下操作
/etc/init.d/MySQL stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
mysql>use mysql ;
mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=‘root’ and host=‘root’ or host=‘localhost’;//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit # /etc/init.d/mysqld restart
mysql -uroot -p
Enter password: <输入新设的密码newpassword> - 后续第一次使用时可能会出现错误:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
其实就是再输一遍密码:SET PASSWORD = PASSWORD(‘123456’); - 安装mysql警告: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
warning: mysql-community-server-5.7.18-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
原因:这是由于yum安装了旧版本的GPG keys造成的
解决办法:后面加上 :–force --nodeps
如: rpm -ivh mysql-community-server-5.7.18-1.el6.x86_64.rpm --force --nodeps
从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。如果签名校验失败,你就会看到如下所示的错误消息:
error: V3 DSA signature: BAD, key ID 0352860f
如果它是新的、只针对文件头的签名,你会看到如下所示的错误消息:
error: Header V3 DSA signature: BAD, key ID 0352860f
如果你没有安装合适的钥匙来校验签名,消息中就会包含 NOKEY ,如:
warning: V3 DSA signature: NOKEY, key ID 0352860f
在CentOS下有的时候用yum安装软件的时候最后会提示:
引用
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID*****
这是由于yum安装了旧版本的GPG keys造成的,解决办法就是
引用
rpm --import /etc/pki/rpm-gpg/RPM*
再安装软件就不会有这个错误提示了。
4.安装hive
- 上传hive安装包,或者网站下载:http://www.apache.org/dyn/closer.cgi/hive/
- 解压: tar -xzvf
- 修改环境变量:
sudo vim /etc/profile
export HIVE_HOME=hive安装路径
export PATH=HIVE_HOME/bin
source /etc/profile - 修改hive配置文件
cd hive/conf
touch hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/myhive?createDatabaseIfNotExist=true</value>
<description>元数据库的连接url,myhive指的是hive的元数据在mysql中的库名</description>
<!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost -->
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>指定元数据库mysql的驱动类</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>元数据库mysql的用户名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>元数据库mysql的密码</description>
</property>
</configuration>
- 下载mysql的驱动包:https://dev.mysql.com/downloads/connector/j/,然后将驱动包放到hive的依赖库lib中。
- 初始化hive的元数据库
schematool -dbType mysql -initSchema
schemaTool completed
- 启动hive:hive,即可进入 hive> 。
最后附两个linux命令
uname:用来获取电脑和操作系统的相关信息。
语 法:uname [-amnrsvpio][–help][–version]
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
参 数:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
-m或–machine 显示主机的硬件(CPU)名
-n或-nodename 显示主机在网络节点上的名称或主机名称
-r或–release 显示linux内核版本号
-s或–sysname 显示linux内核名称
-v 显示显示操作系统是第几个 version 版本
-p 显示处理器类型或unknown
-i 显示硬件平台类型或unknown
-o 显示操作系统名
–help 获得帮助信息
–version 显示uname版本信息
cat /etc/redhat-release : 获取centos版本等级
附件:完美的mysql安装记录
Centos7将默认数据库mysql替换成了Mariadb,对于我们这些还想使用mysql的开发人员来说并不是一个好消息。然而,网上关于Linux安装mysql数据库的教程数不胜数,但是,大多教程都是漏洞百出。今天,为了帮助各位需要的人,从而写下Centos7安装配置mysql5.6的教程。好了,话不多说,上教程:
在接下来的mysql安装过程中,请一定保证自己当前所在目录是正确的!
e g: [root@localhost ~]# 表示当前目录为~
[root@localhost mysql]# 表示当前目录为mysql
一、安装MySQL
1、下载安装包mysql-5.6.34-linux-glibc2.5-x86_64.tar(可前往官网自行下载:http://dev.mysql.com/downloads/mysql/)
2、卸载系统自带的Mariadb
打开Terminal终端:
[root@localhost ~]# rpm -qa|grep mariadb // 查询出来已安装的mariadb
[root@localhost ~]# rpm -e --nodeps 文件名 // 卸载mariadb,文件名为上述命令查询出来的文件
3、删除etc目录下的my.cnf
[root@localhost ~]# rm /etc/my.cnf
4、执行以下命令来创建mysql用户组
[root@localhost ~]# groupadd mysql
5、执行以下命令来创建一个用户名为mysql的用户并加入mysql用户组
[root@localhost ~]# useradd -g mysql mysql
6、将下载的压缩包放到 /usr/local/ 目录下(通过mv 要移动的文件 /usr/local/)
7、解压安装包
[root@localhost ~]# tar -xvf mysql-5.6.34-linux-glibc2.5-x86_64.tar
注:如果压缩包为:mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz,
则解压命令为: tar -zxvf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
8、将解压好的文件夹重命名为mysql
[root@localhost local]# mv 解压出来的文件夹名 mysql
9、在 etc 下新建配置文件my.cnf,并在该文件中添加一下代码:
当然,也有简单方式:直接copy一份my.cnf文件到/etc下,然后再修改即可。
e g:copy一份/usr/local/mysql/support-files/下的my-default.cnf文件到/etc下
命令为:[root@localhost support-files]# cp my-default.cnf /etc/my.cnf
然后,配置/etc目录下的my.cnf文件
[root@localhost support-files]# vim /etc/my.cnf
通过vim编辑器编辑my.cnf代码如下:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
设置mysql的安装目录
basedir=/usr/local/mysql
设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
允许最大连接数
max_connections=200
服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
10、进入安装mysql软件目录
[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# chown -R mysql:mysql ./ 修改当前目录拥有着为mysql用户
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 安装数据库
注:若执行以上最后一个命令出现以下问题:
FATAL ERROR: please install the following Perl modules before executing
./scripts/mysql_install_db:Data::Dumper
解决方法 :安装autoconf库
命令: yum -y install autoconf //此包安装时会安装Data:Dumper模块
安装完成重新执行上述最后一个命令
重新回到上述第三个命令继续操作:
[root@localhost mysql]# chown -R mysql:mysql data 修改当前data目录的拥有者为mysql用户
到此数据库安装完毕!
二、配置MySQL
1、授予my.cnf最大权限
[root@localhost ~]# chmod 777 /etc/my.cnf
设置开机自启动服务控制脚本:
2、复制启动脚本到资源目录
[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
3、增加mysqld服务控制脚本执行权限
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
4、将mysqld服务加入到系统服务
[root@localhost mysql]# chkconfig --add mysqld
5、检查mysqld服务是否已经生效
[root@localhost mysql]# chkconfig --list mysqld
命令输出类似下面的结果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止
命令为:service mysqld start和service mysqld stop
6、启动mysqld
[root@localhost mysql]# service mysqld start
7、将mysql的bin目录加入PATH环境变量,编辑 ~/.bash_profile文件
[root@localhost mysql]# vim ~/.bash_profile
在文件最后添加如下信息:
export PATH=$PATH:/usr/local/mysql/bin
然后按ESC键
继续 shift键加冒号打出来=> :
接下来输入wq回车即可
执行下面的命令是修改的内容立即生效:
[root@localhost mysql]# source ~/.bash_profile
8、以root账户登录mysql,默认是没有密码的
[root@localhost mysql]# mysql -uroot -p
要输入密码的时候直接回车即可。
9、设置root账户密码为root(也可以修改成你要的密码)
mysql>use mysql;
mysql>update user set password=password('root') where user='root' and host='localhost';
mysql>flush privileges;
10、设置远程主机登录,注意下面的your username 和 your password改成你需要设置的用户和密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password' WITH
GRANT OPTION;
好了,到此,在Centos 7上安装mysql5.6就完成了。当然,centos 6上安装mysql也可按照如此操作。接下来,快去用Centos 7安装好的mysql去写写sql command吧!