大数据环境生态搭建

大数据环境生态搭建

一、通用操作

1、更改三台节点的主机名

输入命令: hostnamectl set-hostname master 更改master节点的名字
输入命令:hostnamectl set-hostname slave1 更改 slave1 节点的名字
输入命令:hostnamectl set-hostname slave2 更改slave2 节点的名字

2、关闭三台机器 linux 的安全模式

输入命令:vim /etc/sysconfig/selinux 改为 disabled
在这里插入图片描述

3、关闭三台机器的防火墙

输入命令:systemctl stop firewalld 关闭防火墙
输入命令:systemctl disable firewalld 防止开机自启
输入命令:systemctl status firewalld 查看防火墙状态
在这里插入图片描述

4、设置三台机器的免密的登录

输入命令:ssh-keygen -t rsa 然后连续按三个回车
在这里插入图片描述
三条命令都在 master 节点上直接执行
输入命令:ssh-copy-id master 秘钥分发给master节点
输入命令:ssh-copy-id slave1 秘钥分发给slave1节点
输入命令:ssh-copy-id slave2 秘钥分发给slave2节点
在这里插入图片描述

5、创建用户组和用户

输入命令:groupadd aex 创建aex用户组
输入命令: useradd -m aex -g aex 创建aex用户属于aex组
要是想给创建的用户添加所有的权限,包括文件系统的
输入命令:sudo visudo 在下面添加 aex ALL=(ALL) ALL 就添加了所有的权限了
在这里插入图片描述

二、安装 JDK1.8

在 master 节点 /opt 目录下建一个 /opt/software 目录,用来存放所有的安装包
在这里插入图片描述
将 jdk1.8 安装包放进去
在这里插入图片描述
在建立一个 module 目录,解压好的包都放这里面
在这里插入图片描述
输入命令: tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
在这里插入图片描述
输入命令: mv jdk1.8.0_212/ jdk1.8 把名字改为 jdk1.8
接下来配置jdk环境
输入命令:vim /etc/profile 添加下面的配置
在这里插入图片描述

export JAVA_HOME=/opt/module/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin

输入命令:source /etc/profile 配置好了保存一下配置
在这里插入图片描述
输入命令:java -version 可以看到 java 的版本了
在这里插入图片描述
输入命令:vim hello.java 创建一个java类
在这里插入图片描述
输入命令:javac hello.java 编译java类
输入命令:java hello 运行 java 程序
在这里插入图片描述

三、Hadoop 完全分布式

将 hadoop3.1.3 解压到 /opt/module 目录下
输入命令·: tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
请添加图片描述
然后分发给其他的两个节点
输入命令: scp -r hadoop-3.1.3/ root@slave1:/opt/module/ 分发到 slave1 节点
输入命令:scp -r hadoop-3.1.3/ root@slave1:/opt/module/ 分发到 slave2 节点
配置环境变量
输入命令:vim /etc/profile 添加下面的配置

export HADOOP_HOME=/opt/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

可以看到安装成功了
在这里插入图片描述

1、配置 core-site.xml

输入命令:cd $HADOOP_HOME/etc/hadoop 进入hadoop的配置目录
输入命令:vim core-site 配置 core-site 文件
添加如下的配置
在这里插入图片描述

<configuration>
	<!-- 指定 NameNode 的地址 -->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://hadoop102:8020</value>
 </property>
 <!-- 指定 hadoop 数据的存储目录 -->
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/opt/module/hadoop-3.1.3/data</value>
 </property>
 <!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
 <property>
 <name>hadoop.http.staticuser.user</name>
 <value>aex</value>
 </property>
</configuration>

2、配置 hdfs-site.xml

输入命令:vim hdfs-site.xml 配置hdfs
添加4如下配置
在这里插入图片描述


<configuration>
<!-- nn web 端访问地址-->
<property>
 <name>dfs.namenode.http-address</name>
 <value>master:9870</value>
 </property>
<!-- 2nn web 端访问地址-->
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>slave2:9868</value>
 </property>
</configuration>

3、配置 yarn-site.xml

输入命令:vim yarn-site.xml
添加如下配置
在这里插入图片描述

<configuration>
 <!-- 指定 MR 走 shuffle -->
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定 ResourceManager 的地址-->
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>slave1</value>
 </property>
 <!-- 环境变量的继承 -->
 <property>
 <name>yarn.nodemanager.env-whitelist</name>
 
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
 </property>
</configuration>

4、配置 mapred-site.xml

输入命令:mapred-site.xml

添加以下配置
在这里插入图片描述

<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
</configuration>

输入命令: scp -r $HADOOP_HOME root@slave1:$HADOOP_HOME hadoop 配置分发给 slave1
输入命令: scp -r $HADOOP_HOME root@slave2$HADOOP_HOME hadoop 配置分发给 slave2

5、配置 hadoop-env.sh

输入命令:vim hadoop-env.sh 在里面添加 jdk 的路径,不然hdfs找不到jdk
在这里插入图片描述

export JAVA_HOME=/opt/module/jdk1.8

然后在 hadoop /sbin 目录下 start-yarn.sh 和 stop-yarn.sh 的第一行 添加下面内容
输入命令:vim /opt/hadoop3.1.3/sbin/start-yarn.sh
输入命令:vim /opt/hadoop3.1.3/sbin/stop-yarn.sh

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

6、进行 hadoop 初始化

输入命令:hdfs namenode -format 初始化hadoop
输入命令:start-all.sh 可以看到节点已经启动起来了
在这里插入图片描述-
进入webUI界面
在这里插入图片描述

四、scala2.12 版本

先安装 scala 才能安装 spark
scala下载地址:https://www.scala-lang.org/download/all.html
/opt/software 目录的 scala2.12 的压缩包解压到/opt/module 目录下
输入命令:tar -zxvf scala-2.12.11.tgz -C /opt/module/
输入命令: mv scala-2.12.11/ scala 改个名字,改为scala
在这里插入图片描述
输入命令:vim /etc/profile 添加 scala 环境变量
在这里插入图片描述

export SCALA_HOME=/opt/module/scala
export PATH=$PATH:$SCALA_HOME/bin

输入命令:scala -version 查看scala 是否安装成功
在这里插入图片描述

五、Spark On Yarn

将 spark3.2 的压缩包上传到 /opt/software 目录下
在这里插入图片描述
输入命令: tar -zxvf spark-3.2.3-bin-hadoop3.2-scala2.13.tgz -C /opt/module/ 解压到 /opt/module 目录下
输入命令:mv spark-3.2.3-bin-hadoop3.2-scala2.13/ spark 改名为spark
在这里插入图片描述
输入命令:vim /etc/profile 添加下面的配置
在这里插入图片描述

export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin

输入命令:spark-submit --version 查看是否安装成功
在这里插入图片描述

1、配置 yarn-site.xml

输入命令:vim $HADOOP_HOME/etc/hadoop/yarn-site.xml 配置 yarn-site.xml 文件,添加下面内容
在这里插入图片描述

 <!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
</property>

<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>

2、配置 spark-env.sh

输入命令:vim /opt/module/spark/spark-env.sh 添加JAVA_HOME 和 YARN_CONF_DIR
输入命令:spark-env.sh.template spark-env.sh 先改个名,配置文件才能生效
在这里插入图片描述
输入命令:vim spark-env.sh 添加以下内容
在这里插入图片描述

export JAVA_HOME=/opt/module/jdk1.8
export YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop

输入命令: spark-submit \ --class org.example.hive_targer1.hive01_provinceeverymonth \ /opt/jars/job2.jar 提交任务到 spark on yarn
运行结果:
在这里插入图片描述

六、Flink On Yarn

将 flink1.13 的压缩包上传到 /opt/software 目录
输入命令:tar -zxvf flink-1.13.0-bin-scala_2.12.tgz -C /opt/module/ 解压到 /opt/module 目录
输入命令:mv flink-1.13.0/ flink 我们改个名
在这里插入图片描述
输入命令:vim /etc/profile 增加环境变量
在这里插入图片描述

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
export FLINK_HOME=/opt/module/flink
export PATH=$PATH:$FLINK_HOME/bin

输入命令:flink version 查看版本
在这里插入图片描述

1、配置 flink-conf.yaml

输入命令:vim /opt/module/flink/conf/flink-conf.yaml 添加以下配置,只需要将这个值改为8,其他不变
在这里插入图片描述
Per Job(Job 分离模式提交): bin/flink run -d -t yarn-per-job -c com.atguigu.wc.StreamWordCount FlinkTutorial-1.0-SNAPSHOT.jar

七、Hive

将 Hive3.13 的压缩包上传到 /opt/software 目录下
输入命令: tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/module/ 解压到/opt/module 目录下
输入命令: mv apache-hive-3.1.3-bin/ hive 改名为hive
在这里插入图片描述
输入命令:vim /etc/profile 添加下面的配置
在这里插入图片描述

export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

输入命令:hive --version
在这里插入图片描述

1、安装mysql

输入命令:rpm -qa|grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 检查系统是否安装过mysql
在这里插入图片描述
将 mysql 5.7 的压缩包上传到 /opt/module/
输入命令:tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C /opt/module/ 解压到 /opt/module 目录下
在这里插入图片描述
输入命令:yum install -y libaio 安装这个依赖,下面的安装命令依次执行
输入命令: rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令:rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令: rpm -ivh mysql-community-devel-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令: rpm -ivh mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令: rpm -ivh mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令: rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令:rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令: rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令: rpm -ivh mysql-community-test-5.7.28-1.el7.x86_64.rpm --force --nodeps
输入命令:vim my.cnf 删除datadir的值,如果这个目录下有内容的话,全部删除
在这里插入图片描述
可以看到我们没有
在这里插入图片描述
输入命令:sudo mysqld --initialize --user=mysql 初始化数据库
输入命令:sudo cat /var/log/mysqld.log 查看临时密码,root@localhost 后面那个
在这里插入图片描述
输入命令:sudo systemctl start mysqld 启动mysql服务
输入命令:mysql -uroot -p>&5tqKZA4fFt 这是刚刚那个临时密码
输入命令:set password = password("p@ssw0rd"); 密码修改为p@ssw0rd
在这里插入图片描述
修改 mysql 库下的 user 表中的 root 用户允许任意 ip 连接
输入命令:update mysql.user set host='%' where user='root'; 在这里插入图片描述

2、Hive 元数据配置到mysql

将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib 目录下
输入命令: cp mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
在这里插入图片描述

3、配置 hive-site.xml 文件

在 $HIVE_HOME/conf 目录下 新建 hive-site.xml 文件
输入命令:vim $HIVE_HOME/conf/hive-site.xml 添加下面的内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 连接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/metastore?useSSL=false</value>
</property>

<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>

<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>p@ssw0rd</value>
</property>

<!-- Hive 元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>

<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>

<!-- Hive 默认在 HDFS 的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
</configuration>

输入命令: hdfs dfs -mkdir -p /user/hive/warehouse 创建hive在hdfs的工作目录
输入命令:mysql -uroot -pp@ssw0rd 进入mysql
输入命令:create database metastore 新建hive元数据库
在这里插入图片描述
输入命令:schematool -initSchema -dbType mysql - verbose
在这里插入图片描述
输入命令:vim $HIVE_HOME/conf/hive-site.xml 以元数据方式访问hive,添加以下内容
在这里插入图片描述

<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>

输入命令:nohup /opt/module/hive/bin/hive --service hiveserver2 & 启动hiveserver2 服务
输入命令:hive --service metastoew & 启动hive服务

八、zookeeper

将zookeeper3.5.7 的压缩包上传到 /opt/module 目录下
输入命令: tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/ 解压到 /opt/module 目录
输入命令:mv apache-zookeeper-3.5.7-bin/ zookeeper 改名为 zookeeper
在这里插入图片描述
输入命令: mkdir /opt/module/zookeeper/zkDate 创建一个zkDate 目录
输入命令:vim myid 在zkDate 目录下,新建一个这个文件,里面就添加一个2,这个是与server相对应的编号
在这里插入图片描述
输入命令:scp -r zookeeper/ root@slave1:/opt/module/ 分发给slave1
输入命令:scp -r zookeeper/ root@slave2:/opt/module/ 分发给slave2
输入命令:cd /opt/module/zookeeper/conf 进入这个目录
输入命令: mv zoo_sample.cfg zoo.cfg 给这个文件名改个名字
在这里插入图片描述
输入命令:vim zoo.cfg 添加下面的配置
在这里插入图片描述

dataDir=/opt/zookeeper/zkDate

server.2=master:2888:3888
server.3=slave1:2888:3888
server.4=slave2:2888:3888

输入命令: scp -r zoo.cfg root@slave1:/opt/module/zookeeper/conf/ 分发给slave1
输入命令: scp -r zoo.cfg root@slave1:/opt/module/zookeeper/conf/ 分发给slave2
输入命令: bin/zkServer.sh start 三台机器启动 zookeeper

九、kafka

将 kafka2.12 压缩包上传到 /opt/module 目录下
输入命令:tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/ 解压到 /opt/module 目录下
输入命令: mv kafka_2.12-3.0.0/ kafka 改名为kafka
在这里插入图片描述
输入命令:vim /opt/module/kafka/config/server.properties 修改里面的配置,只更改这两个

log.dirs=/opt/module/kafka/datas
zookeeper.connect=master:2181,slave1:2181,slave2:2181/kafka

输入命令:mkdir datas kafka 下面创建一个 datas 目录,这回事kafka的日志存放的目录
在这里插入图片描述
输入命令: scp -r kafka/ root@slave1:/opt/module/ 将kafka分发给slave1
输入命令: scp -r kafka/ root@slave2:/opt/module/ 将kafka分发给slave2
分别在 slave1和slave2修改配置文件 vim /opt/module/kafka/config/server.properties 里面的
broker.id=1、broker.id=2
broker.id 不得重复,整个集群中唯一。 所以要修改一下是id唯一的
输入命令:vim /etc/profile 添加 kafka 的环境变量

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin

输入命令:scp -r /etc/profile root@slave1:/etc/profile 分发给 slave1
输入命令:scp -r /etc/profile root@slave2:/etc/profile 分发给slave2
输入命令: zkServer.sh start 先在三个节点启动 zookeeper 集群
输入命令:bin/kafka-server-start.sh -daemon config/server.properties 在三个节点依次启动kafka
创建主题:installtopic
输入命令:bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --partitions 2 --replication-factor 2 --topic installtopic
输入命令:bin/kafka-topics.sh --bootstrap-server master:9092 --list 查看服务器中所有的主题

十、flume

将 flume1.9.0 压缩包上传到 /opt/module 目录下
输入命令: tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/module/ 解压到 /opt/module 目录下
输入命令:mv apache-flume-1.9.0-bin/ flume 改名为flume
在这里插入图片描述
输入命令:cd flume/lib/ 将 lib 文件夹下的 guava-11.0.2.jar 删除以兼容 Hadoop 3.1.3
输入命令:rm -rf guava-11.0.2.jar 删除这个依赖
输入命令:bin/flume-ng agent -n a1 -c conf/ -f job/file_to_kafka flume 启动命令

十一、sqoop

将 sqoop1.4.7 的压缩包上传到 /opt/software 目录下
输入命令: tar -zxvf spark-3.2.3-bin-hadoop3.2-scala2.13.tgz -C /opt/module/ 解压到 /opt/module 目录
输入命令: mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop 改名为 sqoop

1、配置 sqoop-env.sh

输入命令:cd /opt/module/sqoop/conf 进入这个目录
输入命令: mv sqoop-env-template.sh sqoop-env-sh 改为 sqoop-env.sh
在这里插入图片描述
输入命令:vim sqoop-env.sh 添加下面的内容
在这里插入图片描述

export ZOOKEEPER_HOME=/opt/module/zookeeper
export HADOOP_COMMON_HOME=/opt/module/hadoop-3.1.3
export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3
export HIVE_HOME=/opt/module/hive
export ZOOKEEPER_HOME=/opt/module/zookeeper
export ZOOCFGDIR=/opt/module/zookeeper

把mysql的驱动拷贝到 /opt/module/sqoop/lib 目录下
输入命令: cp mysql-connector-java-5.1.37.jar /opt/module/sqoop/lib/ 将mysql 驱动拷贝到 lib 目录下
输入命令:bin/sqoop help 查看命令提示
在这里插入图片描述
连接mysql数据库,可以看到已经连接成功了
输入命令:bin/sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password p@ssw0rd
在这里插入图片描述
下面是sqoop 导入数据的语法格式

bin/sqoop import \   --导入
--connect jdbc:mysql://hadoop102:3306/shtd_store \  --mysql数据库连接
--username root \			-- 用户
--password p@ssw0rd \       --密码
--table user_info \         --表名
--target-dir /user/dates \	--hdfs 文件地址
--delete-target-dir \   --如果有这个文件就删除,在公司里就不要用了,测试的时候还可以
--num-mappers 1 \			--mappers 数量 
--fields-terminated-by "\t"  --数据的分割符
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值