二、大数据环境搭建

PART1. 大数据环境准备

1.1 关闭防火墙

systemctl status firewalld.service  #查看防火墙运行状态
systemctl stop firewalld.service   #关闭防火墙
systemctl disable  firewalld.service  #禁止开机自启

1.2 关闭selinux

vi /etc/selinux/config

在这里插入图片描述

1.3 SSH免密登录

ssh-keygen -t rsa    #四下回车键
ssh-copy-id ip

1.4 JDK安装

rpm -qa | grep java #查看系统中是否有openjdk,有的话,则使用[rpm -e 文件名]命令进行删除

yum install lrzsz -y #安装终端与windows交互的插件
sudo rz  #上传命令

#创建用于安装软件的目录[app],用于存放安装包的目录[tools]
cd /home
mkdir app
mkdir tools

tar -zxvf ./jdk-8u171-linux-x64.tar.gz -C /home/app/
cd /home/app
mv jdk1.8.0_171/ jdk1.8  #重命名文件
vim /etc/profile  #修改环境变量
写入内容:
#JAVA_HOME
export JAVA_HOME=/home/app/jdk1.8
export PATH=:$JAVA_HOME/bin:$PATH

source /etc/profile #保存退出后生效
java- version  #查看安装版本

在这里插入图片描述

PART2. Hadoop环境搭建

安装软件:hadoop2.9.2

1. 解压安装包

tar -zxvf hadoop-2.9.2.tar.gz -C ../app/

vim /etc/profile    #修改环境变量
##HADOOP_HOME
export HADOOP_HOME=/home/app/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

source /etc/profile

hadoop version  #查看环境是否生效

在这里插入图片描述

2. 配置文件修改

2.1 HDFS配置

cd /home/app/hadoop-2.9.2/etc/hadoop/   #进入到配置文件的路径
hadoop-env.sh
vim hadoop-env.sh 

#指定Java路径
export JAVA_HOME=/home/app/jdk1.8

在这里插入图片描述

core-site.xml
vim core-site.xml

#添加内容
#tmp文件需自行创建
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://stu:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/home/app/hadoop-2.9.2/tmp</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.groups</name>
                <value>*</value>
        </property>

hdfs-site.xml
vim hdfs-site.xml

#添加内容
#需要递归创建dfs/name  dfs/data
#dfs.replication为副本数量,一台机器为1,多台机器可增加
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>stu:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/app/hadoop-2.9.2/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/app/hadoop-2.9.2/dfs/data </value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.web.ugi</name>
                <value>supergroup</value>
        </property>

slaves
vim slaves

#添加内容
#本文件为datanode与nodemanger的工作指定节点
stu

2.2 MapReduce配置

mapred-env.sh
vim mapred-env.sh

#指定MapReduce使用的jdk路径
export JAVA_HOME=/home/app/jdk1.8
mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

#添加内容
#指定Yarn资源调度框架
       <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>stu:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>stu:19888</value>
        </property>

2.3 Yarn资源框架配置

yarn-env.sh
vim yarn-env.sh

#指定Yarn使用的jdk路径
export JAVA_HOME=/home/app/jdk1.8
yarn-site.xml
vim yarn-site.xml

#指定ResourceMnager的master节点信息
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>stu</value>
</property>
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

3. Hadoop格式化

hdfs namenode -format
#出现下图所示内容,为格式化成功
#只能格式化一次

在这里插入图片描述

4. 启动与关闭

#关闭虚拟机前,务必关闭服务进程,否则会进入安全模式
#启动完成后 jps命令查看进行
start-all.sh
stop-all.sh

在这里插入图片描述

5. WEB管理页面

ip:50070

在这里插入图片描述

在这里插入图片描述

框内的组件,可在页面上进行文件的上传,迁移工作
在这里插入图片描述

PART3. Hive部署

安装软件:Hive(2.3.7)+MySQL(5.7.26)

# hive安装包
apache-hive-2.3.7-bin.tar.gz
# MySQL安装包
mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# MySQL的JDBC驱动程序
mysql-connector-java-5.1.46.jar

在这里插入图片描述

1. MySQL安装

1.1 删除MariaDB

​ centos7自带的 MariaDB(MariaDB是MySQL的一个分支),与要安装的MySQL有冲突,需要删除。

# 查询是否安装了mariadb
rpm -aq | grep mariadb

# 删除mariadb。-e 删除指定的套件;--nodeps 不验证套件的相互关联性
rpm -e --nodeps mariadb-libs

1.2 安装依赖

yum install net-tools  perl -y

1.3 安装MySQL

# 解压缩
tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

# 依次运行以下命令
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

1.4 启动数据库

systemctl enable mysqld
systemctl start mysqld

1.5 查找root账户密码

grep password /var/log/mysqld.log

在这里插入图片描述

1.6 修改root密码

​ 使用初始密码登录后,修改root密码

在这里插入图片描述

# 进入MySQL,使用前面查询到的口令
mysql -u root -p

# 设置口令强度;将root口令设置为12345678;刷新
set global validate_password_policy=0;
set password for 'root'@'localhost' =password('12345678');
flush privileges;

​ validate_password_policy 密码策略(默认是1),可配置的值有以下:
​ 0 or LOW 仅需需符合密码长度(由参数validate_password_length【默认为8】指定)
​ 1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符
​ 2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionaryfile)中

1.7 创建hive用户

-- 创建用户设置口令、授权、刷新
CREATE USER 'hive'@'%' IDENTIFIED BY '12345678';
GRANT ALL ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;

2. Hive安装

1. 解压

cd /home/tools
tar -zxvf apache-hive-2.3.7-bin.tar.gz -C ../app/

cd ../app
mv apache-hive-2.3.7-bin/ hive-2.3.7/

2. 修改环境变量

vim /etc/profile

# 在 /etc/profile 文件中增加环境变量
export HIVE_HOME=/home/app/hive-2.3.7
export PATH=$PATH:$HIVE_HOME/bin
# 执行并生效
source /etc/profile

3.修改Hive配置

cd /home/app/hive-2.3.7/conf
vim hive-site.xml

写入以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- hive元数据的存储位置 -->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://stu:3306/hivemetadata?createDatabaseIfNotExist=true&amp;useSSL=false</value>
	</property>
	
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
	</property>
	
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>hive</value>	
	</property>
<!-- 连接数据库的口令 -->
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>12345678</value>
	</property>

<!-- 数据默认的存储位置(HDFS) -->
	<property>
		<name>hive.metastore.warehouse.dir</name>
		<value>/user/hive/warehouse</value>
	</property>

<!-- 在命令行中,显示当前操作的数据库 -->
	<property>
		<name>hive.cli.print.current.db</name>
		<value>true</value>	
	</property>
	
<!-- 在命令行中,显示数据的表头 -->	
	<property>
		<name>hive.cli.print.header</name>
		<value>true</value>
	</property>

	<property>
		<name>hive.metastore.client.socket.timeout</name>
		<value>3600</value>
	</property>
	
<!-- 操作小规模数据时,使用本地模式,提高效率 -->
	<property>
		<name>hive.exec.mode.local.auto</name>
		<value>true</value>
	</property>
	
</configuration>

注:

​ 注意jdbc的连接串,如果没有 useSSL=false 会有大量警告

​ 在xml文件中 & 表示 &

4. 拷贝JDBC驱动

将 mysql-connector-java-5.1.46.jar 拷贝到 $HIVE_HOME/lib

cp mysql-connector-java-5.1.46.jar ../app/hive-2.3.7/lib/

5. 初始化数据库

schematool -dbType mysql -initSchema

在这里插入图片描述

6. 启动Hive

# 启动hive服务之前,请先启动hdfs、yarn的服务
# set hive.exec.mode.local.auto=true;  开启本地运算模式,节约计算资源
hive

hive> show databases;

在这里插入图片描述

7. 日志文件修改

​ Hive的log默认存放在 /tmp/root 目录下(root为当前用户名);这个位置可以修改

#进入到Hive配置文件目录下
#重命名生效配置文件
mv hive-log4j2.properties.template hive-log4j2.properties

#logs文件需要自行创建
property.hive.log.dir = /home/app/hive-2.3.7/logs

在这里插入图片描述

PART4. Spark部署

Spark2.4.1 https://archive.apache.org/dist/spark/

1. 解压安装包

cd /home/tools
tar -zxvf spark-2.4.1-bin-hadoop2.7.tgz -C ../app/
mv spark-2.4.1-bin-hadoop2.7/ spark-2.4.1

2. 设置环境变量

vi /etc/profile

export SPARK_HOME=/home/app/spark-2.4.1
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

source /etc/profile

3. 配置文件

文件位置:$SPARK_HOME/conf

slaves

mv slaves.template slaves  #重命名文件,使其生效

vim slaves  
# 写入worker节点的主机名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Xwiq3Rv-1656744427579)(G:\Note\image\image-20220629144147900.png)]

spark-defaults.conf

mv spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf

#写入内容
#创建 HDFS 目录:/spark-log
spark.master	spark://stu:7077
spark.eventLog.enabled	true
spark.eventLog.dir	hdfs://stu:9000/spark-log
spark.serializer	org.apache.spark.serializer.KryoSerializer
spark.driver.memory	4g

备注:
spark.master 定义master节点,缺省端口号 7077
spark.eventLog.enabled 开启eventLog
spark.eventLog.dir eventLog的存放位置
spark.serializer 一个高效的序列化器
spark.driver.memory 定义driver内存的大小(缺省1G)

spark-env.sh

mv spark-env.sh.template spark-env.sh

vim spark-env.sh
#写入内容
export JAVA_HOME=/home/app/jdk1.8
export HADOOP_HOME=/home/app/hadoop-2.9.2
export HADOOP_CONF_DIR=/home/app/hadoop-2.9.2/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/home/app/hadoop-2.9.2/bin/hadoop classpath)
export SPARK_MASTER_HOST=stu
export SPARK_MASTER_PORT=7077

4. 启动与关闭

cd /home/app
#默认webUI为8080
sbin/start-all.sh
sbin/stop-all.sh

5. 替换内置SQL模块【可选】

​ Spark 内嵌的 Hive,在实际使用中, 几乎没有任何人会使用。所以,我们指定使用外置的Hive。

#Spark 要接管 Hive 需要把 hive-site.xml copy 到conf/目录下
cp /home/app/hive-2.3.7/conf/hive-site.xml /home/app/spark-2.4.1/conf/

#Mysql 的驱动 copy 到 jars/目录下
cp /home/tools/mysql-connector-java-5.1.46.jar /home/app/spark-2.4.1/jars/

#把core-site.xml和hdfs-site.xml 拷贝到conf/目录下
cp /home/app/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /home/app/spark-2.4.1/conf/
cp /home/app/hadoop-2.9.2/etc/hadoop/core-site.xml /home/app/spark-2.4.1/conf/

cd /home/app/spark-2.4.1
bin/spark-shell
spark.sql("show databases").show
#能查询到Hive中的数据库与表内容

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值