Linux CentOS下大数据环境搭建(zookeeper+hadoop+hbase+spark+scala)

Linux CentOS下大数据环境搭建(zookeeper+hadoop+hbase+spark+scala)


前言

本篇文章是结合我个人学习经历所写,如果遇到什么问题或者我有什么错误,欢迎讨论。


一、本篇文章所用到的软件和文件(另外还提供了可能会用到的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

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

总结

舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷。

  • 25
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值