前言
本篇文章是结合我个人学习经历所写,如果遇到什么问题或者我有什么错误,欢迎讨论。
一、本篇文章所用到的软件和文件(另外还提供了可能会用到的api文档)
百度网盘链接:https://pan.baidu.com/s/1DCkQQVYqYHYtPws9hWGpgw?pwd=zh1y
提取码:zh1y
二、VMware虚拟机安装
软件在连接中VMwareWorkstation_V16.2.1_XiTongZhiJia的文件夹下。
双击运行安装包,这里下一步即可。
这里勾选我接受许可协议中的条款,然后下一步。
这里更改文件存放的位置,我更改到D盘VMware\VMware Workstation目录下,其他的全选,下一步即可。
这里更新和加入用户体验计划记得取消,然后点击下一步即可。
这里创建桌面和开始菜单程序文件夹看个人喜好选择,我是默认选择,然后下一步即可。
这里点击安装即可,软件开始安装,然后稍等一会软件安装完成。
安装完成后提示输入许可证密钥,如果是试用软件就点击完成即可,如果是想个人长期使用点击许可证,提示输入密钥,输入密钥即可。(我在下面放了几个密钥。注:密钥仅个人使用,不可商用。)
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
FA1M0-89YE3-081TQ-AFNX9-NKUC0
这里点击完成即可。
这里会提示要重启你的计算机,点击是,电脑会自动重启,等待即可。
三、虚拟机的创建
- 目前大数据集群的搭建分两种:一种是分布式集群,另一种的伪分布式环境。
- 分布式环境需要三台及以上的机器来搭建,伪分布式环境则可以用一台机器来搭建。
- 本文介绍的是利用虚拟机来搭建Hadoop集群。
- 首先需要创建三台虚拟机。
点击文件,新建虚拟机。
点击自定义,然后下一步。
这里默认下一步即可。
这里选择稍后安装操作系统,然后点击下一步。
这里选择Linux操作系统,版本选择CentOS7 64位,然后点击下一步。
这里虚拟机名称改为master,位置选择一个除C盘以外的位置,然后点击下一步。
这里是编辑虚拟机的配置,因为是Linux系统,所以对硬件配置要求不高,处理器配置根据自己电脑性能来选择(一般来说2核够学习阶段使用),点击下一步继续操作。
这里是给虚拟机分配内存,这里建议内存2G或者更高,要不然虚拟机运行时可能会崩溃,点击下一步继续。
这里选择使用网络地址转换,然后点击下一步继续。
这两步默认即可,点击下一步继续。
这里选择创建新虚拟磁盘,有利与对虚拟机的备份和迁移,点击下一步继续。
这里选择分配给虚拟机的磁盘容量,我这里给的是40G,点击下一步继续。
这里点击下一步继续即可。
这里就是虚拟机的详细配置信息了,点击完成。
点击编辑虚拟机设置,选择CD/DVD这一项,点击使用ISO镜像文件,点击预览在你计算机本地找到你下载好的CentOS 7的ISO文件,我把CentOS镜像放在我的分享的文件中的CentOS镜像目录下,点击确定即可。
到这里虚拟机就初步创建完成了,下面就是对虚拟出来的系统进行设置了。
点击打开虚拟机,就会出现这样的界面,提示安装CentOS 7系统,使用Ctrl+Alt键切换到虚拟机系统中,使用上下键选择Install CentOS 7这一项,回车确定,然后等待即可。
系统安装完成后就会出现这样的界面,然你选择系统语言,这里选择英语就好,如何选择汉语的话,在后续操作命令行中会出现一下困难,点击Continue继续。
这里自动分区警告,需要手动选择磁盘,点击INSTALLATION DESTINATION 进入此磁盘管理功能。
这里单击选择之前分好的40G硬盘分区,点击 Done 继续下一步。
这样就自动分区完成了,点击 DATA & TIME 修改日期和时间。
Region 选择Asia City 选择Shanghai ,但是虚拟机时间会比正常时间块8个小时,记得修改(这里不修改也可以,后面会进行时间同步),点击 Done 保存退出。
点击SOFTWARE SELECTION,进行选择。
选择安装图形化界面的选项。
点击Begin Installation就可以进行下一步安装了。
点击ROOT PASSWORD设置root用户密码。
这里设置root用户密码为123456,因为密码比较简单所以要点击两次Done保存。
这里设置普通用户的账号密码。
这里按照自己的喜好就好。
点击Finsh configuration进行下一步,然后等待虚拟机安装完毕。
点击Reboot重启虚拟机,一台CentOS虚拟机就搭建完毕。
因为搭建hadoop集群需要三台虚拟机,所以这里再克隆出两台虚拟机分别命名为slave1和slave2。
四、大数据开发环境
集群环境:3台虚拟机 Centos7 64位
1. 基础知识
因为权限问题,所以全程使用root权限账户
1.1. 虚拟机网络类型
桥接模式:
NAT模式:虚拟机只能被宿主机识别,虚拟机ip和宿主机的ip可以不是一个网段的
网桥模式:虚拟机的ip和宿主机的ip是同一网段
1.2. Linux的启动,有两种常用模式:图形界面和文本界面
启动到图形界面,想进入到文本界面:init 3
启动到文本界面,想进入到图形界面:init 5
重新启动计算机 :init 6
关闭计算机:init 0
1.3. 文本界面使用
登录 输入用户名 root 输入密码
设置默认启动的是文本界面
systemctl set-default multi-user.target
设置默认启动的是图形界面
systemctl set-default graphical.target
2. 网络环境
打开虚拟网络编辑器查看虚拟机ip
我这里net8模式的区间是192.168.152.128到192.168.152.254,所以在192.168.152.129到192.168.152.253这个区间的IP都是可用的。
使用命令(注:linux有自动补充命令的功能键tab键)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet //网络类型
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp //IP地址的类型:dhcp从dhcp服务器获取ip地址 static 固定ip地址
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=2ee3a0ad-301a-4c4e-9615-4e2d7e975aef
DEVICE=ens33
ONBOOT=no //no,计算机启动时,网卡不工作;yes 计算机启动时,网卡随之启动工作
vi编辑器使用:
i或者insert键进入修改状态
按esc键,输入:wq
# 固定ip地址:
BOOTPROTO=static
IPADDR=192.168.152.129
PREFIX=24
GATEWAY=192.168.152.2
DNS1=114.114.114.114
DNS2=202.103.24.68
# 重新启动网卡:
systemctl stop network //停止网卡服务
systemctl start network //启动网卡服务
systemctl status network //查看网卡状态
第一台虚拟机:master 192.168.152.129
第二台虚拟机:slave1 192.168.152.130
第三台虚拟机:slave2 192.168.152.131
保证三台机器之间相互连通
3. 修改计算机名
查看计算机名的命令:hostname
修改计算机名的命令:hostnamectl set-hostname 新的计算机名
修改三台虚拟机的计算机名称,分别为:master、slave1、slave2
4. 配置/etc/hosts文件
vi /etc/hosts
三台虚拟机中,都需要修改为
192.168.152.129 master
192.168.152.130 slave1
192.168.152.131 slave2
ping 计算机名 检验是否修改成功
5. 查看/关闭防火墙
查看防火墙状态:systemctl status firewalld.service
临时开启防火墙:systemctl start firewalld.service
临时关闭防火墙:systemctl stop firewalld.service
开机自动开启或关闭防火墙:
关闭:systemctl disable firewalld
开启:systemctl enable firewalld
图片为防火墙开启状态
6. 时间同步
6.1 查看时间和设置时间命令
查看时间:date
设置时间:date -s
如:
date -s 2022-09-23
date -s 15:33:00
date -s "2022-09-22 18:46:30"
6.2 安装NTP服务
master、slave1、slave2
master角色:
a. 安装ntp服务:yum install -y ntp
注:查询是否安装ntp服务:rpm -qa | grep ntp
b. 配置文件: vi /etc/ntp.conf
在打开的文件中写入:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
c. 启动ntp服务:systemctl start ntpd.service
d. 同步时间ntpdate命令
格式:ntpdate 时间服务器的网络地址
ntpdate ntp.ntsc.ac.cn
要求:这个机器不能运行ntpd服务的同时,运行ntpdate命令进行同步时间
ntp.ntsc.ac.cn //中国科学院国家授时中心NTP授时服务器地址
slave1和slave2:安装ntp服务
6.3 运行大数据环境:
保证时间同步,ntp服务启动
a. master角色的机器的ntpd服务已经启动
b. slave1和slave2角色的机器:保证没有启动ntp的服务,运行ntpdate master的ip
7. 免密钥登录
a.在master、slave1、slave2机器上生成密钥:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
b.将密钥复制到对应机器中
使用ssh-copy-id命令:格式: ssh-copy-id root@计算机名
以master为例:
将公钥复制到master、slave1和slave2三个机器中
复制到master机器:ssh-copy-id root@master
复制到slave1机器:ssh-copy-id root@slave1
先输入yes,然后要求输入用户名对应的密码(salve1机器的root的密码)
复制到slave2机器:ssh-copy-id root@slave2
复制公钥到对应机器之后,就可以通过命令"ssh 机器名"访问对应机器,使用"exit"退出
slave1和slave2做与master一样的事情。
8. 将需要的软件上传到三个虚拟机中
需要把下图中的文件上传的三台虚拟机中,我这里创建了一个名为soft的文件夹,将文件存放到soft文件夹中
这里我用到了Xftp软件
上传到虚拟机的结果如下图所示
9. Java安装和配置(三台虚拟机都需要配置)
9.1 解压安装包到指定目录
a. 创建安装目录
mkdir /usr/java
b. 解压软件
tar -xzvf soft/jdk-8u171-linux-x64.tar.gz -C/usr/java/
注:tar命令解压软件
tar -xzvf
选项:
c:压缩文件
x:解压软件
z:gzip压缩方式 gzip压缩文件扩展名:.gz
j:bzip2压缩方式 bzip2压缩文件扩展名:.bz2
v:输出相关信息
f:使用档案文件或设备,一般必选
例1:将a.txt、b.txt压缩成一个文件 m.tar
tar -czvf m.tar a.txt b.txt
例2:将m.tar解压到指定目录
tar -xzvf m.tar -C 指定路径
tar -xzvf m.tar -C abc
9.2 配置环境变量
临时设置环境变量:
export 环境变量名=值
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
永久生效:
修改/etc/profile :
vi / etc/profile
在最后添加:
#java envirement
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
重新启动计算机或者重新登录,让文件内容生效
不重启计算机或不重新登录:
source /etc/profile
运行命令:java -version
10. zookeeper的安装与配置
10.1 master机器:
10.1.1 解压安装包
创建安装目录:
mkdir /usr/zookeeper
解压文件:
tar -xzvf soft/zookeeper-3.4.10.tar.gz -C /usr/zookeeper/
10.1.2 修改配置文件
10.1.2.1 修改/etc/hosts
vi /etc/hosts
注:三台机器的host文件内容相同习惯
文件内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.152.129 master master.root
192.168.152.130 slave1 slave1.root
192.168.152.131 slave2 slave2.root
10.1.2.2 配置文件zoo.cfg
master机器:
cd /usr/zookeeper/zookeeper-3.4.10/conf/
cp zoo_sample.cfg zoo.cfg
创建两个目录:
mkdir /usr/zookeeper/zookeeper-3.4.10/zkdata
mkdir /usr/zookeeper/zookeeper-3.4.10/zkdatalog
修改zoo.cfg
vi zoo.cfg
修改内容如下:
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
dataLogDir= /usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
在/usr/zookeeper/zookeeper-3.4.10/zkdata目录中创建一个文件myid,内容是一个数字,在zoo.cfg文件中机器名对应的server.x=机器名:2888:3888,server右边的数字
vi /usr/zookeeper/zookeeper-3.4.10/zkdata/myid
输入1,保存退出
编辑/etc/profile文件:
vi /etc/proflie
在最后添加:
#zookeeper environment
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
保存退出
不启动系统情况下,让环境变量生效:
source /etc/profile
10.2 slave1和slave2机器
10.2.1 安装slave1和slave2机器的zookeeper
复制master机器中的zookeeper安装目录内容到slave1和slave2:
命令:scp
格式:scp -r 源目录 用户名@机器名:目标目录
执行:
scp -r /usr/zookeeper root@slave1:/usr
scp -r /usr/zookeeper root@slave2:/usr
10.2.2 修改slave1和slave2机器myid的内容
vi /usr/zookeeper/zookeeper-3.4.10/zkdata/myid
修改slave1机器/usr/zookeeper/zookeeper-3.4.10/zkdata/myid
将值1改为2
修改slave2机器/usr/zookeeper/zookeeper-3.4.10/zkdata/myid
将值1改为3
10.2.3 修改slave1和slave2中的/etc/profile
vi /etc/profile
在最后添加:
#zookeeper environment
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
保存退出
不启动系统情况下,让环境变量生效:
source /etc/profile
10.3 启动zookeeper
同步时间:
master机器 启动ntpd服务:systemctl start ntpd
slave1和slave2机器:ntpdate master
启动zookeeper:3台机器都要执行启动命令
/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start/status/stop
注:成功启动的情况,查看服务状态 Mode 是一个leader和两个follower
11. Hadoop的安装与配置
11.1 master机器的安装配置
11.1.1 创建Hadoop的安装目录
mkdir /usr/hadoop
11.1.2 解压hadoop软件
tar -xzvf soft/hadoop-2.7.3.tar.gz -C /usr/hadoop/
11.1.3 配置环境变量(三台机器都需要进行配置)
vi /etc/profile
在最后添加:
#hadoop environment
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$HADOOP_HOME/lib:$CLASSPATH
export PATH=$HADOOP_HOME/bin:$PATH
保存退出
执行:source /etc/profile
11.1.4 修改Hadoop-env.sh
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/java/jdk1.8.0_171
11.1.5修改core-site.xml
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml
在<configuration>和</configuration>之间添加下面的内容:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>60</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
</configuration>
11.1.6 修改yarn-site.xml
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/yarn-site.xml
在<configuration>和</configuration>之间添加下面的内容
<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.webapp.address</name>
<value>master:18088</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.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
11.1.7 修改hdfs-site.xml
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
在<configuration>和</configuration>之间添加下面的内容
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
11.1.8 修改mapred-site.xml
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template /usr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
在<configuration>和</configuration>之间添加下面的内容
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
11.1.9 修改/usr/hadoop/hadoop-2.7.3/etc/hadoop/slaves
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/slaves
文件内容:删除原来内容localhost,修改成下面的内容
slave1
slave2
11.1.10 创建/usr/hadoop/hadoop-2.7.3/etc/hadoop/master
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/master
文件内容:master
11.2 slave1和slave2机器的安装配置
复制master角色机器中的hadoop目录到slave1和slave2机器对应目录中
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/
11.3 格式化hadoop
在master机器中:
hadoop namenode -format
11.4 启动Hadoop
同步时间
启动zookeeper
再启动Hadoop:在master角色机器上执行
/usr/hadoop/hadoop-2.7.3/sbin/start-all.sh或
/usr/hadoop/hadoop-2.7.3/sbin/start-dfs.sh和
/usr/hadoop/hadoop-2.7.3/sbin/start-yarn.sh
如何查看Hadoop启动成功?
使用命令:jps
通过浏览器查看:http://master角色的ip:50070
11.5 结束Hadoop
/usr/hadoop/hadoop-2.7.3/sbin/stop-all.sh或
/usr/hadoop/hadoop-2.7.3/sbin/stop-dfs.sh和
/usr/hadoop/hadoop-2.7.3/sbin/stop-yarn.sh
结束zookeeper
12. HBase安装与配置
12.1 master角色机器
12.1.1 创建目录
mkdir /usr/hbase
12.1.2 解压
tar -xzvf soft/hbase-1.2.4-bin.tar.gz -C /usr/hbase
12.1.3 修改配置文件
vi /usr/hbase/hbase-1.2.4/conf/hbase-env.sh
添加如下内容:
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/java/jdk1.8.0_171
export HBASE_CLASSPATH=/usr/hadoop/hadoop-2.7.3/etc/hadoop
12.1.4 修改配置文件hbase-site.xml
vi /usr/hbase/hbase-1.2.4/conf/hbase-site.xml
在<configuration>和</configuration>之间添加如下内容:
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:6000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/zookeeper/zookeeper-3.4.10</value>
</property>
12.1.5 修改regionservers
vi /usr/hbase/hbase-1.2.4/conf/regionservers
删除原来的内容localhost
修改为如下内容:
slave1
slave2
12.1.6 复制配置文件hdfs-site.xml和core-site.xml
将Hadoop的两个配置文件hdfs-site.xml和core-site.xml复制到hbase的conf目录中
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml /usr/hbase/hbase-1.2.4/conf/
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml /usr/hbase/hbase-1.2.4/conf/
12.2 slave1和slave2机器
将master角色的hbase目录复制到slave1和slave2机器中
scp -r /usr/hbase root@slave1:/usr/
scp -r /usr/hbase root@slave2:/usr/
12.3 配置环境变量(三个机器)
vi /etc/profile
添加如下内容:
#hbase
export HBASE_HOME=/usr/hbase/hbase-1.2.4
export PATH=$HBASE_HOME/bin:$PATH
不重启机器生效,source /etc/profile
12.4 运行和测试
依次启动zookeeper、Hadoop
然后再启动HBase
在master角色机器上运行:
/usr/hbase/hbase-1.2.4/bin/start-hbase.sh
查看是否启动,使用jps命令
在浏览器中输入:http://master角色的ip:16010/master-status
结束HBase:输入/usr/hbase/hbase-1.2.4/bin/stop-hbase.sh
13 Hive数据仓库
13.1 角色分配
master角色 hive的客户端
slave1角色 hive服务端
slave2角色 安装mysql
13.2 slave2角色中安装mysql
centos7 不支持直接安装mysql5.7文章来源:https://www.toymoban.com/news/detail-852083.html
13.2.1 安装wget
yum -y install wget
13.2.2下载mysql的repo源
wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm
13.2.3 安装mysql的repo源
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
13.2.4 查看文件
ls -l /etc/yum.repos.d/mysql-com*
13.2 5 安装msyql
yum install mysql-community-server
13.2.6 查看安装mysql的安装版本
mysql -V
rpm -qa | grep mysql
13.2.7 重载所有修改过的配置文件
systemctl daemon-reload
重启msyql服务
systemctl start mysqld
启动centos7时,自动运行mysqld:
systemctl enable mysqld
13.2.8 登录mysql
默认安装的mysql,root用户是有密码
查看密码:grep "temporary password" /var/log/mysqld.log
登录:mysql -p"粘贴查到的密码"
修改root用户的密码:
注:在mysql环境中运行
修改mysql的密码安全策略
set global validate_password_policy=0;
修改密码的长度
set global validate_password_length=4;
修改root用户密码:
alter user 'root'@'localhost' identified by '123456';
13.2. 9 设置远程登录
登录到mysql中
创建一个远程用户root
create user 'root'@'%' identified by '123456';
添加远程登录用户(授予权限)
grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限:flush privileges;
13.3 hive的安装和配置(master机器)
13.3.1 创建安装目录
mkdir /usr/hive
13.3.2 解压
tar -xzvf soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive
13.3 3 复制解压hive目录到slave1中的/usr目录
在master角色中执行scp命令
scp -r /usr/hive root@slave1:/usr/
13.3.4 配置环境变量(master和slave1)
vi /etc/profile
添加下面的内容:
#hive envirment
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$HIVE_HOME/bin:$PATH
不重启计算机的情况下,让环境变量生效,执行:source /etc/profile
13.4 Hive服务群的配置(slave1机器)
13.4.1 将mysql的驱动程序复制slave1的hive的安装目录的lib目录中
cp /root/soft/mysql-connector-java-5.1.5-bin.jar /usr/hive/apache-hive-2.1.1-bin/lib/
13.4.2 修改配置文件hive-env.sh
cp /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh.template /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh
vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh
设置HADOOP_HOME的值
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
13.4.3 创建hive-site.xml文件
vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-site.xml
内容修改如下:
<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!--数据库连接JDBC的URL地址 -->
<property>
<name>javax.jdo.option.ConnectionURI</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!-- 数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- MySQL数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
</configuration>
13.5master作为client的配置
13.5.1 版本冲突和jar包依赖问题
cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
13.5.2 修改hive-env.sh
cp /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh.template /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh
vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh
设置HADOOP_HOME的值
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
13.5.3 创建hive-site.xml文件
vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-site.xml
内容修改如下:
<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!--使用本地服务连接Hive,默认为true -->
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!-- 连接服务器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>
13.6 hive启动
同步时间
启动zookeeper
启动Hadoop
启动HBase
启动Hive:
slave1角色:hive服务端
/usr/hive/apache-hive-2.1.1-bin/bin/hive --service metastore
master角色:hive客户端
/usr/hive/apache-hive-2.1.1-bin/bin/hive
hive客户端启动成功之后
show databases;
1) 退出hive的客户端:quit;
2) 退出hive的服务端:ctrl+c
14 scala语言的安装与配置
14.1 在master角色机器中安装
14.1.1 创建安装目录
mkdir /usr/scala
14.1.2 解压文件
tar -xzvf soft/scala-2.11.12.tgz -C /usr/scala/
14.1.3 配置环境变量
vi /etc/profile
添加如下内容:
#scala environment
export SCALA_HOME=/usr/scala/scala-2.11.12
export PATH=$SCALA_HOME/bin:$PATH
保存退出
执行source /etc/profile
14.1.4 查看scala是否安装成功?
scala -version
14.2 在slave1和slave2机器上安装
14.2.1 将master角色机器中安装的scala目录复制到slave1和slave2机器中
scp -r /usr/scala/ root@slave1:/usr/
scp -r /usr/scala/ root@slave2:/usr/
14.2.2 在slave1和slave2机器中,修改/etc/profile文件
vi /etc/profile
添加如下内容:
#scala environment
export SCALA_HOME=/usr/scala/scala-2.11.12
export PATH=$SCALA_HOME/bin:$PATH
保存退出
执行source /etc/profile
14.2.3 在slave1和slave2机器中,查看scala是否安装成功?
scala -version
15 spark的安装与配置(在三台机器中安装)
15.1 master角色
15.1.1 创建安装目录
mkdir /usr/spark
15.1.2 解压安装文件
tar -xzvf soft/spark-2.4.0-bin-hadoop2.7.tgz -C /usr/spark/
15.1.3 修改配置文件spark-env.sh
cp /usr/spark/spark-2.4.0-bin-hadoop2.7/conf/spark-env.sh.template /usr/spark/spark-2.4.0-bin-hadoop2.7/conf/spark-env.sh
vi /usr/spark/spark-2.4.0-bin-hadoop2.7/conf/spark-env.sh
添加如下内容:
export SPARK_MASTER_IP=master
export SCALA_HOME=/usr/scala/scala-2.11.12
export SPARK_WORKER_MOMERY=1024m
export JAVA_HOME=/usr/java/jdk1.8.0_171
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.3/etc/hadoop
15.1.4 配置spark的从节点,修改slaves文件
cp /usr/spark/spark-2.4.0-bin-hadoop2.7/conf/slaves.template /usr/spark/spark-2.4.0-bin-hadoop2.7/conf/slaves
vi /usr/spark/spark-2.4.0-bin-hadoop2.7/conf/slaves
删除原来的内容:localhost
添加下面内容:
slave1
slave2
15.1.5 修改配置文件/etc/profile
vi /etc/profile
添加如下内容:
#spark enviroment
export SPARK_HOME=/usr/spark/spark-2.4.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
执行source /etc/profile
15.2 slave1和slave2角色
15.2.1 将master角色机器的/usr/spark复制到slave1和slave2机器中
scp -r /usr/spark/ root@slave1:/usr/
scp -r /usr/spark/ root@slave2:/usr/
15.2.2 修改配置文件/etc/profile
vi /etc/profile
添加如下内容:
#spark enviroment
export SPARK_HOME=/usr/spark/spark-2.4.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
执行source /etc/profile
15.3 启动spark
先启动zookeeper
再启动Hadoop
jps查看
master角色
SecondaryNameNode
ResourceManager
NameNode
slave1角色
NodeManager
DataNode
slave2角色
NodeManager
DataNode
最后启动spark,mster角色中,执行:/usr/spark/spark-2.4.0-bin-hadoop2.7/sbin/start-all.sh
使用jps命令查看是否成功?worker角色和master角色
在浏览器中输入:http://master角色的ip:8080
或者:
http://master角色的机器名:8080
关闭spark
/usr/spark/spark-2.4.0-bin-hadoop2.7/sbin/stop-all.sh
总结
舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷。文章来源地址https://www.toymoban.com/news/detail-852083.html
到了这里,关于Linux CentOS下大数据环境搭建(zookeeper+hadoop+hbase+spark+scala)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!