概述
Ubuntu18.04 MySQL+hive安装
参考文档、博客:
https://blog.csdn.net/chengyuqiang/article/details/76757602
https://www.jb51.net/article/172456.htm
https://blog.csdn.net/qq_41822647/article/details/84503869
1.hadoop搭建
推荐购买此书进行安装学习https://item.jd.com/12503061.html
2.Mysql安装
2.1
在 Ubuntu 18.04 中,默认情况下,只有最新版本的 MySQL 包含在 APT 软件包存储库中,要安装它,只需更新服务器上的包索引并安装默认包 apt-get
最好的话把Ubuntu的软件源为国内的,参考https://blog.csdn.net/baidu_36602427/article/details/86551862
然后更新软件目录
sudo apt-get update
我的hadoop配置是3个节点的,所以我把MySQL和hive都安装在主节点node1上
sudo apt install mysql-server
#或者
sudo apt-get install mysql-server-5.7
获取:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 insserv amd64 1.14.0-5ubuntu3 [38.2 kB]
获取:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 sysv-rc all 2.88dsf-59.3ubuntu2 [18.2 kB]
获取:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-common all 5.7.27-0ubuntu0.16.04.1 [14.7 kB]
获取:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 initscripts amd64 2.88dsf-59.3ubuntu2 [24.4 kB]
获取:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6,356 B]
获取:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-client-core-5.7 amd64 5.7.27-0ubuntu0.16.04.1 [6,383 kB]
获取:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-client-5.7 amd64 5.7.27-0ubuntu0.16.04.1 [1,815 kB]
获取:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-server-core-5.7 amd64 5.7.27-0ubuntu0.16.04.1 [7,663 kB]
获取:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 libevent-core-2.0-5 amd64 2.0.21-stable-2ubuntu0.16.04.1 [70.6 kB]
获取:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-server-5.7 amd64 5.7.27-0ubuntu0.16.04.1 [2,754 kB]
获取:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 libhtml-template-perl all 2.95-2 [60.4 kB]
获取:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-server all 5.7.27-0ubuntu0.16.04.1 [10.2 kB]
已下载 18.9 MB,耗时 4秒 (4,427 kB/s)
正在预设定软件包 ...
正在选中未选择的软件包 insserv。
(正在读取数据库 ... 系统当前共安装有 135994 个文件和目录。)
正准备解包 .../0-insserv_1.14.0-5ubuntu3_amd64.deb ...
正在解包 insserv (1.14.0-5ubuntu3) ...
正在选中未选择的软件包 sysv-rc。
正准备解包 .../1-sysv-rc_2.88dsf-59.3ubuntu2_all.deb ...
正在解包 sysv-rc (2.88dsf-59.3ubuntu2) ...
正在选中未选择的软件包 mysql-common。
正准备解包 .../2-mysql-common_5.7.27-0ubuntu0.16.04.1_all.deb ...
正在解包 mysql-common (5.7.27-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 initscripts。
正准备解包 .../3-initscripts_2.88dsf-59.3ubuntu2_amd64.deb ...
正在解包 initscripts (2.88dsf-59.3ubuntu2) ...
被已安装的软件包 sysvinit-utils (2.88dsf-59.10ubuntu1) 中的文件替换了...
正在选中未选择的软件包 libaio1:amd64。
正准备解包 .../4-libaio1_0.3.110-2_amd64.deb ...
正在解包 libaio1:amd64 (0.3.110-2) ...
正在选中未选择的软件包 mysql-client-core-5.7。
正准备解包 .../5-mysql-client-core-5.7_5.7.27-0ubuntu0.16.04.1_amd64.deb ...
正在解包 mysql-client-core-5.7 (5.7.27-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 mysql-client-5.7。
正准备解包 .../6-mysql-client-5.7_5.7.27-0ubuntu0.16.04.1_amd64.deb ...
正在解包 mysql-client-5.7 (5.7.27-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 mysql-server-core-5.7。
正准备解包 .../7-mysql-server-core-5.7_5.7.27-0ubuntu0.16.04.1_amd64.deb ...
正在解包 mysql-server-core-5.7 (5.7.27-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 libevent-core-2.0-5:amd64。
正准备解包 .../8-libevent-core-2.0-5_2.0.21-stable-2ubuntu0.16.04.1_amd64.deb ...
正在解包 libevent-core-2.0-5:amd64 (2.0.21-stable-2ubuntu0.16.04.1) ...
正在设置 mysql-common (5.7.27-0ubuntu0.16.04.1) ...
update-alternatives: 使用 /etc/mysql/my.cnf.fallback 来在自动模式中提供 /etc/mysql/my.cnf (my.cnf)
正在选中未选择的软件包 mysql-server-5.7。
(正在读取数据库 ... 系统当前共安装有 136240 个文件和目录。)
正准备解包 .../mysql-server-5.7_5.7.27-0ubuntu0.16.04.1_amd64.deb ...
正在解包 mysql-server-5.7 (5.7.27-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 libhtml-template-perl。
正准备解包 .../libhtml-template-perl_2.95-2_all.deb ...
正在解包 libhtml-template-perl (2.95-2) ...
正在选中未选择的软件包 mysql-server。
正准备解包 .../mysql-server_5.7.27-0ubuntu0.16.04.1_all.deb ...
正在解包 mysql-server (5.7.27-0ubuntu0.16.04.1) ...
正在设置 libhtml-template-perl (2.95-2) ...
正在处理用于 ureadahead (0.100.0-20) 的触发器 ...
正在处理用于 libc-bin (2.27-3ubuntu1) 的触发器 ...
正在设置 libaio1:amd64 (0.3.110-2) ...
正在设置 libevent-core-2.0-5:amd64 (2.0.21-stable-2ubuntu0.16.04.1) ...
正在处理用于 systemd (237-3ubuntu10.12) 的触发器 ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在设置 insserv (1.14.0-5ubuntu3) ...
正在设置 mysql-client-core-5.7 (5.7.27-0ubuntu0.16.04.1) ...
正在设置 mysql-server-core-5.7 (5.7.27-0ubuntu0.16.04.1) ...
正在设置 sysv-rc (2.88dsf-59.3ubuntu2) ...
正在设置 mysql-client-5.7 (5.7.27-0ubuntu0.16.04.1) ...
正在设置 initscripts (2.88dsf-59.3ubuntu2) ...
正在设置 mysql-server-5.7 (5.7.27-0ubuntu0.16.04.1) ...
update-alternatives: 使用 /etc/mysql/mysql.cnf 来在自动模式中提供 /etc/mysql/my.cnf (my.cnf)
Renaming removed key_buffer and myisam-recover options (if present)
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
正在设置 mysql-server (5.7.27-0ubuntu0.16.04.1) ...
正在处理用于 libc-bin (2.27-3ubuntu1) 的触发器 ...
正在处理用于 ureadahead (0.100.0-20) 的触发器 ...
正在处理用于 systemd (237-3ubuntu10.12) 的触发器 ...
yeu@node1:~$
(注:我的MySQL版本是5.7.27-0ubuntu0.16.04.1 (Ubuntu),我是把Ubuntu的软件源改为国内输入以上命令运行的,在运行中是有提示设置root密码的。而听说在新版本MySQL安装是没有了自动弹出提示设置root密码的,遇此问题的读者最好求下度娘233参考https://blog.csdn.net/qq_38737992/article/details/81090373 )
2.2 数据库初始化
为了确保数据库的安全性、正常运转和与hive正常连接,对数据库进行初始化操作。这个初始化操作涉及下面5个步骤。
- 安装验证密码插件。
- 设置root管理员在数据库中的专有密码。
- 随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。
- 不删除默认的测试数据库,不取消测试数据库的一系列访问权限。
- 刷新授权列表,让初始化的设定立即生效。
mysql_secure_installation
yeu@node1:~$ mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin? #要安装验证密码插件吗?
Press y|Y for Yes, any other key for No: N # 这里我选择N
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
New password: #输入要为root管理员设置的数据库密码
Re-enter new password: #再次输入密码
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y #删除匿名账户
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n #禁止root管理员从远程登录,这里我没有禁止
... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n #删除test数据库并取消对它的访问权限,这里选择不
... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y #刷新授权表,让初始化后的设定立即生效
Success.
All done!
yeu@node1:~$
检查mysql服务状态:
systemctl status mysql
2.3 配置mysql允许远程访问
编辑mysqld.cnf 配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉bind-address = 127.0.0.1
保存退出,然后进入mysql数据库,执行授权命令:
- mysql -u root -p
- mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘你的密码’ WITH GRANT OPTION;
- mysql> flush privileges; # 刷新权限
- mysql> exit
然后执行exit命令退出mysql服务,再执行如下命令重启mysql:
sudo systemctl restart mysql
现在Windows下可以使用Navicat图形化工具远程连接Ubuntu下的MySQL数据库,输入刚授权远程权限的密码。
3.hive安装
安装hive前,要同节点里已安装上面配置的MySQL和有MySQL JDBC驱动器(驱动文件)
这里提供以下操作的所需文件下载,链接: https://pan.baidu.com/s/1F2rA55SW4e0Nm16CtRF4tQ 提取码: vwrp
3.1 解压
这里采用的hive版本是2.3.3,下载好后解压hive包
为了之后写路径方便,这里把apache-hive-2.3.3-bin文件夹设置软链接
3.2 配置环境变量
vi ~/.bashrc
在文件末尾写上hive的安装路径
export HIVE_HOME=/home/yeu/software/hive
export PATH=$HIVE_HOME/bin:$PATH
更新环境变量
source ~/.bashrc
查看hive版本号,如果有输出出来的就是已安装成功
3.3 配置hive-env.sh
进入目录cd hive/conf/
,首先新建一个空文件hive-env.sh
$ touch hive-env.sh
接着复制hive-env.sh.template,编写
$ cp hive-env.sh.template hive-env.sh
$ vi hive-env.sh
找到写有hadoop路径的那行,去掉注释然后把后面的路径改为节点上安装hadoop的路径
HADOOP_HOME=/home/yeu/software/hadoop
3.4 配置hive-site.xml
也是在conf里,新建文件hive-site.xml,编写
$ touch hive-site.xml
$ vi hive-site.xml
编写mysql数据库的连接配置:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> #& 并的意思 ,这行的node1为这节点主机的名称
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value> #MySQL JDBC驱动文件
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value> #你的MySQL账号名,用普通账号要先在MySQL为那普通账号设置授权才行,我这里是用root账号
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>你的MySQL密码</value>
<description>password to use against metastore database</description>
</property>
<!-- 下面两个的是修改临时文件夹的路径 -->
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/yeu/software/iotmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/yeu/software/iotmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
</configuration>
我的用户名是yeu
,所以在该路径下,新建了iotmp文件夹,并授权
$ mkdir -p /home/yeu/software/iotmp
$ chmod -R 775 /home/yeu/software/iotmp
3.5 修改hive-config.sh
进入hive下的bincd /home/yeu/software/hive/bin
sudo vi hive-config.sh
在该文件的最后面添加Java(jdk)、hadoop、hive的路径:
export JAVA_HOME=/home/yeu/software/jdk
export HADOOP_HOME=/home/yeu/software/hadoop
export HIVE_HOME=/home/yeu/software/hive
(不进行3.5操作在最后也能进行之后的初始化hive操作)
3.6 MySQL JDBC驱动器
这里采用的MySQL驱动文件是mysql-connector-java-5.1.46-bin.jar
,也可以下载用MySQL官网的MySQL5版本的最新驱动
解压出来后放到hive的lib文件夹下
3.7 在HDFS中创建目录和设置权限
启动hadoop,在hadoop中创建hive需要用到的目录并设置权限。
$ start-all.sh #启动hadoop
$ hdfs dfs -mkdir /tmp
$ hdfs dfs -mkdir -p /user/hive/warehouse
$ hdfs dfs -chmod g+w /tmp
$ hdfs dfs -chmod g+w /user/hive/warehouse
3.8 初始化meta数据库
进入/home/yeu/software/hive/lib目录(其实在任意目录都能执行),初始化Hive元数据对应的MySQL数据库:
schematool -initSchema -dbType mysql
yeu@node1:~/software/hive/lib$ schematool -initSchema -dbType mysql
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/yeu/software/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/yeu/software/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL: jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&useSSL=false
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: root
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed
yeu@node1:~/software/hive/lib$
初始化成功
注:之前已成功初始化meta数据库的,如果想重新再初始化meta数据库的要先删除与其设置连接的MySQL里的hive数据库再来初始化,不然会报错
3.9 启动Hive
启动hive前,确保hadoop集群启动
$ start-all.sh
$ hive
创建个hive_1数据库
hive已正式安装成功
累死了
最后
以上就是痴情水池为你收集整理的Ubuntu18.04 MySQL+hive安装Ubuntu18.04 MySQL+hive安装的全部内容,希望文章能够帮你解决Ubuntu18.04 MySQL+hive安装Ubuntu18.04 MySQL+hive安装所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复