希文的个人博客

白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

0%

Centos7搭建hadoop分布式集群

## Hadoop搭建

(其他组件安装最近更新)

一.系统一些基本配置

1.更改网卡配置(克隆之后把另外两台ip改了)

1
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#网卡里面的配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #使用static配置
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=316c77f2-75e6-47cd-ba71-227d4ac9457f
DEVICE=ens33
ONBOOT=yes #开机启动配置
#查看自己的ip和网关
IPADDR=192.168.232.111 #静态ip
GATEWAY=192.168.232.2 #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8
DNS2=0.0.0.0

2.重启网卡

1
service network restart

重启之后这样才对
3.测试网路是否连通

1
ping www.baidu.com

连通的图片
4.关闭防火墙:查看防火墙状态

1
firewall-cmd --state

防火墙状态
5.临时关闭防火墙,开机还会启动

1
systemctl stop firewalld

临时关闭的状态
6.设置开机不启动

1
systemctl disable firewalld

在这里插入图片描述
7.常用软件安装

1
2
3
4
5
yum -y install vim
yum -y install wget
yum -y install lrzsz
yum -y install net-tools
yum -y install psmisc

8.配置阿里yum源

备份/etc/yum .repos.d/CentOS-Base.repo文件

1
2
3
cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.back

下载阿里云的yum源配置

1
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清楚原来的缓存,构建新缓存

1
2
yum clean all
yum makecache

9.添加节点信息

1
vim /etc/hosts
1
2
3
192.168.232.111 master
192.168.232.112 slave1
192.168.232.113 slave2

10.修改hostname(修改完成后重启生效)

1
2
hostname(修改完成后重启生效)
hostnamectl set-hostname master #修改hostname为master

10.配置节点之间免密访问(在一台机器上执行,再将该节点克隆两份即可,克隆之后在做两次)
在家目录下,执行以下代码生成密钥对,一路回车即可:

1
ssh-keygen -t rsa -P ''

在这里插入图片描述
将公钥文件写入授权文件中,并赋予权限

1
2
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

11.克隆虚拟机(看图 注意:虚拟机需要关闭)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
##注意要修改克隆的ip地址以及名称(上面步骤1和10)

12.节点间免密访问测试(任意两台节点都需要测试,第一次需要输入“yes”)
在这里插入图片描述

二.开始安装jdk(可以去官网下载jdk)

  1. 自行选择下载jdk(点击百度网盘可以下载) jdk百度网盘链接 提取码:d4cf

  2. 用xftp上传jdk-8u162-linux-x64.tar.gz文件到/opt/java(上传完解压文件,然后改名)

    /usr/local/java之前用这个目录

1
2
3
4
mkdir /opt/java
cd /opt/java
tar -zxvf jdk-8u162-linux-x64.tar.gz
mv jdk1.8.0_162 jdk
  1. 设置环境变量
1
vi /etc/profile
1
2
3
#加入下面内容
export JAVA_HOME=/opt/java/jdk
export PATH=$JAVA_HOME/bin:$PATH
  1. 执行命令使设置生效
1
source /etc/profile
  1. 验证java是否安装成功
1
java -version

在这里插入图片描述

6.执行以下命令,在其他两台节点安装(如果ssh没有使文件生效就去子节点再去执行一下)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#给子节点创建java文件夹
ssh slave1 mkdir /opt/java
ssh slave2 mkdir /opt/java

#将master节点上的安装包分发到其他节点
scp -r /opt/java slave1:/usr/local
scp -r /opt/java slave2:/usr/local

#将master节点的配置好的环境变量覆盖到其他节点
scp -r /etc/profile slave1:/etc/profile
scp -r /etc/profile slave2:/etc/profile

#使修改生效
ssh slave1 source /etc/profile
ssh slave2 source /etc/profile

#查看是否安装成功
ssh slave1 java -version
ssh slave2 java -version

三.数据库安装

注意:

​ mariadb和mysql安装一个就行。

​ MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

1.mysql压缩版

1.下载linux版本安装包

官网下载网址:https://downloads.mysql.com/archives/community/

image-20220626083609228

2.用tabby软件SFTP将压缩文件.tar上传到linux服务器

上传到/opt/software/mysql路径下

image-20220626083657144

3.解压文件安装

1
2
3
4
5
6
cd /opt/software/mysql
#解压(第一个解压.xz文件,第第二个解压.gz文件)
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
tar -zxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.gz
#改名字
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8.0

解压图片(后来移动到/opt/software/mysql文件夹中)

image-20220626084209658

改名字图片

image-20220626085345521

/opt/software/mysql路径下创建一个存放mysql数据的文件夹

1
2
3
4
5
6
#创建文件夹
mkdir -p data/mysql8.0
#创建mysql用户
useradd mysql
#mysql数据目录改为mysql读写权限
chown -R mysql:mysql /opt/software/mysql/data/mysql8.0

设置配置文件,编译/etc/my.cnf , 内容如下

1
2
3
4
#查看
cat /etc/my.cnf
#编辑
vim /etc/my.cnf

原版my.cnf文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

修改后,英文状态下点击esc -> shift + : -> wq 保存退出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

#bind-address=127.0.0.1
port=3306
user=mysql
#安装目录
basedir=/opt/software/mysql/mysql8.0
datadir=/opt/software/mysql/data/mysql8.0
socket=/tmp/mysql.sock
#socket=/data/mysql/mysql.sock
log-error=/opt/software/mysql/data/mysql8.0/mysql.err
pid-file=/opt/software/mysql/data/mysql8.0/mysql.pid
##character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
log-error=/opt/software/mysql/data/mysql8.0/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
pid-file=/opt/software/mysql/data/mysql8.0/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

注意、注意、注意,很重要,补充知识:(看到就复制下来了)

不要将配置文件中的socket=/tmp/mysql.sock 改为你自定义目录文件的路径,如:#socket=/data/mysql/mysql.sock,非常容易出现一下图片中的错误,处理起来可能费时间和精力,我也像网上说的使用自己的目录且给/tmp/mysql.sock 建立了软连接也不管用,所以还是建议按照我的配置去配置,不要改socket的目录了。

sdfasdf

进入/opt/software/mysql/mysql8.0/bin目录下进行初始化mysql,一定要记住初始化输出日志末尾的密码(数据库管理员临时密码)

1
./mysqld --initialize --user=mysql --datadir=/opt/software/mysql/data/mysql8.0 --basedir=/opt/software/mysql/mysql8.0

如果出现下面错误

1
2
[root@master bin]# ./mysqld --initialize --user=mysql --datadir=/opt/software/mysql/data/mysql8.0 --basedir=/opt/software/mysql/mysql8.0
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方法:需要libaio包

1
yum install libaio

继续初始化

如果屏幕上没有打印则去日志文件中查看初始化完成后的临时密码:

1
cat /opt/software/mysql/data/mysql8.0/mysql.err

53711690

1
2
3
4
5
6
7
8
#将默认启动文件复制到指定目录
cp /opt/software/mysql/mysql8.0/support-files/mysql.server /etc/init.d/mysqld
#启动mysql服务
/etc/init.d/mysqld start
#停止mysql服务,需要的时候在停止
/etc/init.d/mysqld stop
#查看服务
ps -ef|grep mysql

image-20220626094703268

将mysql命令添加到系统环境变量

设置环境变量

1
vi /etc/profile
1
2
3
#加入下面内容
export MYSQL_HOME=/opt/software/mysql/mysql8.0
export PATH=$PATH:$MYSQL_HOME/bin

执行命令使设置生效

1
source /etc/profile

开机自启动命令

1
systemctl enable mysqld

mysql8.0修改密码

1
2
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxx';
FLUSH PRIVILEGES;

2061097-20201015163730289-669511775

开放远程连接(开通后你的mysql就可以让其他远端客户端访问了),执行命令:

1
2
3
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

2061097-20201015163919405-2078695756

查看防火墙状态,运行状态才能开放3306端口

1
2
3
4
5
6
#查看防火墙状态
systemctl is-enabled firewalld
#开启防火墙
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld

开放端口

1
2
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload # 配置立即生效

关闭端口

1
2
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
firewall-cmd --reload # 配置立即生效

查看防火墙所有开放的端口

1
firewall-cmd --zone=public --list-ports

在安全组中启用3306端口

image-20220626111059545

到此,你的mysql已经安装成功,本地电脑的navicat也可以连接开心的使用去吧。

image-20220626111230642

其他问题:如果前面没有出现不用做安装完libaio包继续初始化mysql出现

1
2
3
4
5
6
2022-06-26T01:23:44.558906Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2022-06-26T01:23:44.559003Z 0 [System] [MY-013169] [Server] /opt/software/mysql/mysql8.0/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 15622
2022-06-26T01:23:44.560967Z 0 [ERROR] [MY-010124] [Server] Fatal error: Can't change to run as user 'mysql' ; Please check that the user exists!
2022-06-26T01:23:44.560975Z 0 [ERROR] [MY-013236] [Server] The designated data directory /opt/software/mysql/data/mysql8.0/ is unusable. You can remove all files that the server added to it.
2022-06-26T01:23:44.561021Z 0 [ERROR] [MY-010119] [Server] Aborting
2022-06-26T01:23:44.561158Z 0 [System] [MY-010910] [Server] /opt/software/mysql/mysql8.0/bin/mysqld: Shutdown complete (mysqld 8.0.20) MySQL Community Server - GPL.

解决问题

1
2
3
4
#创建mysql用户
useradd mysql
#mysql数据目录改为mysql读写权限
chown -R mysql:mysql /opt/software/mysql/data/mysql8.0

2.yum安装MariaDB完全支持mysql

在云主机中输入:yum install mariadb-server,在线安装Mariadb

img

进入自动安装,完毕会有如下提示:

img

第一次使用MariaDB之前,需要进行初始化操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
启动MariaDB
systemctl start mariadb

设置开机启动
systemctl enable mariadb

MariaDB初始化配置
mysql_secure_installation

密码验证,初次直接敲回车
Enter current password for root (enter for none):<–初次运行直接回车

设置root用户密码-教学这里使用root
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

其他配置:
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

img

1
2
登录MariaDB:
mysql -uroot -proot

img

1
2
退出MariaDB
exit;

四.Hadoop安装

  1. 自行选择下载jdk(点击百度网盘可以下载) hadoop百度网盘链接 提取码:3bq4
  2. 用xftp上传hadoop文件到/opt/hadoop(上传完解压文件,然后改名)
1
2
3
4
mkdir /opt/hadoop
cd /opt/hadoop
tar -zxvf hadoop-2.7.5.tar.gz
mv hadoop-2.7.5 hadoop
  1. 配置环境变量
1
2
3
4
5
6
7
vim /etc/profile
#在末尾增加以下内容,然后保存
#HADOOP
export HADOOP_HOME=/opt/hadoop/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#使文件生效
source /etc/profile
  1. 配置env文件(打开hadoop-env.sh,找到“export JAVA_HOME”这行配制jdk路径。)
1
2
3
vi /opt/hadoop/hadoop/etc/hadoop/hadoop-env.sh
#写入下列路径(编辑完保存退出即可。)
export JAVA_HOME=/opt/java/jdk
  1. 配置核心组件文件(/opt/hadoop/hadoop/etc/hadoop/core-site.xml)
1
vim /opt/hadoop/hadoop/etc/hadoop/core-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
#编辑的文件(将下列的配置代码放在文件的<configuration>和</configuration>,保存退出即可)
<property>
<!-- hdfs的地址名称:schame,ip,port-->
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<!-- hdfs的基础路径,被其他属性所依赖的一个基础路径(这里应该是tmpDatas,之前是名字是hadoopdata) -->

<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmpDatas</value>
</property>
1
2
#创建hadoop数据目录
mkdir /opt/hadoop/hadoopdata

6.配置文件系统(/opt/hadoop/hadoop/etc/hadoop/hdfs-site.xml)

1
vim /opt/hadoop/hadoop/etc/hadoop/hdfs-site.xml
1
2
3
4
5
6
#编辑的文件(将下列的配置代码放在文件的<configuration>和</configuration>,保存退出即可)
<property>
<!-- 块的副本数-->
<name>dfs.replication</name>
<value>3</value>
</property>
  1. 配置yarn站点文件(/opt/hadoop/hadoop/etc/hadoop/yarn-site.xml)
1
vim /opt/hadoop/hadoop/etc/hadoop/yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#编辑的文件(将下列的配置代码放在文件的<configuration>和</configuration>,保存退出即可)

<property>
<!-- 指定yarn的shuffle技术-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>

  1. 配置MapReduce计算框架文件()

在“/opt/hadoop/hadoop/etc/hadoop”子目录下,系统已经有一个 mapred-site.xml.template文件,我们需要将其复制并改名,位置不变,命令是“

1
2
cp /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml
vim /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml

”,然后,用 vi编辑 mapred-site.xml 文件,需要将下面的代码填充到文件 中间

1
2
3
4
5
<property>
<!-- 指定mapreduce使用yarn资源管理器-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

编辑完毕,保存退出即可。

  1. 配置Master的slaves文件
  • slaves 文件给出了 Hadoop 集群的 Slave 节点列表。该文件十分重要,因为启动Hadoop 的时候,系统总是根据当前 slaves 文件中 Slave 节点名称列表启动集群,不在列表中的Slave 节点便不会被视为计算节点。

    1. 用 vi编辑 slaves 文件,我们应当根据自己所搭建集群的实际情况进行编辑。例如,我们这里由于已经安装了 Slave0 和 Slave1,并且计划将它们全部投入 Hadoop 集群运行,所以应当输入如下代码。
1
2
3
4
5
vi /opt/hadoop/hadoop/etc/hadoop/slaves

#写入下列(需要删除原来文件里面localhost那一行)
slave1
slave2
  1. 复制 Master 上的 Hadoop 到 Slave 节点(通过复制 Master 节点上的hadoop,能够大大提高系统部署效率。由于我们这里有Slave1 和 Slave2,所以要复制两次。)
1
2
3
scp -r /opt/hadoop root@slave1:/opt
scp -r /opt/hadoop root@slave2:/opt

  1. 复制Master上的配置文件到Slave节点
1
2
3
4
5
6
7
#将master节点的配置好的环境变量覆盖到其他节点
scp -r /etc/profile slave1:/etc/profile
scp -r /etc/profile slave2:/etc/profile

#使修改生效
ssh slave1 source /etc/profile
ssh slave2 source /etc/profile
  1. 格式化文件系统(该操作只需要在 Master 节点上进行,命令是“ hadoop namenode -format”)
1
hadoop namenode -format
  1. 启动和关闭 Hadoop
  • 可以使用 start-all.sh 命令启动 Hadoop 集群。
    首先进入 Hadoop 安装主目录,然后执行 shin/start-all.sh 命令,执行命令后,系统提示“ Are you sure want to continue connecting(yes/no)”,请输入yes,之后系统即可启动。
  • 要关闭 Hadoop 集群,可以使用 stop-all.sh 命令,
    下次启动 Hadoop 时候,无须 NameNode 的初始化,只需要使用start-dfs.sh 命令即可,然后接着使用 start-yarn.sh 启动 Yarn 。
  • 实际上,Hadoop 系统建议放弃(deprecated)使用 start-all. sh 和 stop-all.sh 一类的命令,而改用 start-dfs.sh 和 start-yarn .sh 命令。
  1. 验证 Hadoop 是否启动成功
  • 用户可以在终端执行 jps 命令查看 Hadoop 是否启动成功。在 Master 节点,执行 jps后如果显示的结果是四个进程的名称: SecondaryNameNode、 ResourceManager、 Jps 和NameNode,如下图所示,则表明主节点( Master )启动成功 。

在这里插入图片描述

  • 在 Slave0 节点执行 jps 命令,打印的结果中会显示三个进程,分别是 NodeManager、
    Jps 和 DataNode ,如下图所示,表明从节点(Slave0)启动成功。其他节点可以类似验证。
    在这里插入图片描述

​ 16.jsp中进程解析

五.Hive数据仓库安装(启动hive之前要启动Hadoop命令为:start-all.sh)

1.自行选择下载hive(点击百度网盘链接可以下载) 百度网盘链接 提取码:vauh

1
2
#创建文件夹
mkdir /opt/Hive

2.用xftp上传压缩文件.gz文件到/opt/Hive(上传完解压文件,然后改名)
在这里插入图片描述

1
2
3
4
#解压文件夹
tar -zxvf apache-hive-2.3.4-bin.tar.gz
#给解压的文件改名为hive
mv apache-hive-2.3.4-bin hive

在这里插入图片描述
3.配置hive环境变量

1
2
3
4
5
6
7
8
9
10
#打开文件
vim /etc/profile
#打开文件后在对下面添加hive路径
export HIVE_HOME=/opt/Hive/hive
#参考这个我的路径前面配置了jkd,Hadoop路经。“export PATH=$HIVE_HOME/bin:$PATH”
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH
#使文件生效
source /etc/profile
#查看hive版本号(出现版本说明安装正确)
hive --version

在这里插入图片描述
4.修改hive配置文件

进入conf文件夹查看文件

1
2
cd /opt/Hive/hive/conf/
ls

在这里插入图片描述

1
2
3
cp hive-env.sh.template hive-env.sh
#添加hadoop环境变量
export HADOOP_HOME=/opt/hadoop/hadoop

在这里插入图片描述

查看hive-site.xml(如果没有就复制一份模板)

1
2
#复制模板(有hive-site.xml文件跳过这一步)
cp hive-default.xml.template hive-site.xml

配置hive-site.xml

1
vim hive-site.xml

在文件中添加(汉字是解释,把这一段放在文件最下面,在上面)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   <property>
<name>javax.jdo.option.ConnectionUserName</name>用户名(这是新添加的,记住删除配置文件原有的哦!)
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>密码
<value>123456</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>mysql
<value>jdbc:mysql://192.168.232.111:3306/hive</value>mysql的ip端口号
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>mysql驱动程序
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>system:java.io.tmpdir</name>
<value>/opt/Hive/hive/logs/tmp</value>
</property>

在这里插入图片描述

5.用xftp复制mysql的驱动程序到hive/lib下面,百度网盘中的mysql的jar包链接,验证码:h4m1。我用的jar包为:mysql-connector-java-5.1.21-bin.jar


6.在mysql中hive的schema(在此之前需要创建mysql下的hive数据库)

1
2
cd /opt/Hive/hive/bin
schematool -dbType mysql -initSchema

在这里插入图片描述

7.执行hive命令

1
hive

在这里插入图片描述

1.出现报错

1
show databases;

在这里插入图片描述
进入hive文件夹下的conf文件下,找到hive-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
修改前:
<property>
<name>hive.exec.local.scratchdir</name>
<value>${system:java.io.tmpdir}/${system:user.name}</value>
<description>Local scratch space for Hive jobs</description>
</property>


修改后:
<property>
<name>hive.exec.local.scratchdir</name>
<value>${system:java.io.tmpdir}/${user.name}</value>
<description>Local scratch space for Hive jobs</description>
</property>

在查看测试成功
在这里插入图片描述

六.Sqoop安装

1.自行选择下载sqoop(点击百度网盘链接可以下载) 百度网盘链接 提取码:bhpf

1
2
#创建文件夹
mkdir /opt/Sqoop

2.用xftp上传压缩文件.gz文件到/opt/Sqoop(上传完解压文件,然后改名)

1
2
3
4
#解压文件
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
解压完改名
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop

3.配置环境变量

1
2
3
4
5
6
7
8
#打开文件
vim /etc/profile
#打开文件后在对下面添加hive路径
export SQOOP_HOME=/opt/Sqoop/sqoop
#参考这个我的路径前面配置了jkd,Hadoop,hive路经。“export PATH=$PATH:$SQOOP_HOME/bin"
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH:$SQOOP_HOME/bin:$PATH
#使文件生效
source /etc/profile

4.修改配置文件
Sqoop的配置文件与大多数大数据框架类似,在sqoop根目录下的conf目录中。

1
2
3
4
5
6
7
8
9
10
#进入目录
cd /opt/Sqoop/sqoop/conf
#复制文件并改名
cp sqoop-env-template.sh sqoop-env.sh
#进入文件
vim sqoop-env.sh
#文件里需要添加的参数
export HADOOP_COMMON_HOME=/opt/hadoop/hadoop
export HADOOP_MAPRED_HOME=/opt/hadoop/hadoop
export HIVE_HOME=/opt/Hive/hive

在这里插入图片描述
5.拷贝mysql驱动

拷贝上面hive用的mysql驱动到sqoop的lib目录下

6.验证 Sqoop
我们可以通过某一个 command 来验证 sqoop 配置是否正确:

1
sqoop help

在这里插入图片描述

1
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password xiwen123

在这里插入图片描述


七.安装Tomcat

  • 下载Tomcat8.5安装文件
1
wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.63/bin/apache-tomcat-8.5.63.tar.gz

  • 解压缩

将Tomcat安装文件解压缩到/opt目录下:

1
tar zxf apache-tomcat-8.5.63.tar.gz -C /opt/

查看并将文件夹重命名为tomcat-8.5

  • 配置环境变量

编辑/etc/profile文件

1
vim /etc/profile

vim会开启文档查看窗口,默认情况下不可修改文档内容,可以使用键盘的方向键浏览文档。这里使用移动到文档的最后一行,按键盘上的i键进入编辑模式,会看到文档下方提示-- INSERT --,该模式下可以对文档内容进行修改。

在文件最后声明CATALINA_HOME变量,并将$CATALINA_HOME/bin添加到PATH变量中:

1
2
3
export JAVA_HOME=/opt/jdk1.8.0
export CATALINA_HOME=/opt/tomcat-8.5
export PATH=$CATALINA_HOME/bin:$JAVA_HOME/bin:$PATH:$HOME/bin

然后按ESC退出编辑模式,输入:wq!保存本次修改并退出vim

/etc/profile文件的修改默认不会马上生效,可以使用命令source /etc/profile让本次修改在当前访问中生效。

配置成功后,检查环境变量是否配置成功,可以输入命令:

1
version.sh

如果可以输出上述信息,则环境变量配置成功。如果提示command not found,则表示配置失败,需要重新对/etc/profile进行配置。

解决Centos7下Tomcat启动过慢的问题:配置JVM使用伪随机函数生成器:

1
vim /opt/jdk1.8.0/jre/lib/security/java.security

将117行修改为securerandom.source=file:/dev/urandom

  • 启动Tomcat

可以直接使用命令启动Tomcat:

1
startup.sh

我们可以通过本地浏览器,远程访问云主机上的Tomcat首页。

关闭Tomcat的命令为shutdown.sh

需要注意,还应该在阿里云主机控制台安全组设定中,添加一条入方向规则,开放8080端口:

img

开发端口后,在云主机上启动Tomcat,然后在本地浏览器中输入http://云主机公网ip:8080,可以访问到云主机的Tomcat首页:

img