大数据实训

文章目录

整体框架

在这里插入图片描述

前期准备

安装vmware

安装xshell

配置ip地址

查看自己的IP地址区间,子网掩码,网关然后进行如下配置
编辑文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33
加入以下信息

GATEWAY=
IPADDR=
MASK
DNS1=8.8.8.8
DNS2=4.4.4.4

创建hadoop用户

useradd -md /home/hadoop hadoop

设置hadoop的密码

exit到root用户

设置密码:passwd hadoop
输入:hadoop两次

在这里插入图片描述

拷贝到其他节点(前提配置好了),以做到免密登录
ssh-copy-id CC1

测试是否能登录:
ssh CC1

注意这里登录成功后都是在对CC1进行操作,如果要对本机进行操作需要exit

切换到haddop用户

su -l hadoop

hadoop集群搭建

1、初始工作

修改计算机名

vi /etc/hostname

配置主机地址映射

在CC3(主节点中)
以root形态编辑
vi /etc/hosts
在其后追加如下信息

ip地址 主机名
ip地址 主机名

防火墙

systemctl status firewalld

像这样绿色的active就执行下面的,

systemctl stop firewalld

systemctl disable firewalld.service

关闭另一个东西:
查看状态,如果不是disable执行下面
getenforce

执行
setenforce 0
一劳永逸:
vi /etc/sysconfig/selinux
改变
在这里插入图片描述

ssh免密工作——单方面验证

打通自己到自己以及其他主机的映射,而不需要其他主机到自己的映射
在NN上执行以下操作
切换到hadoop用户:su -l hadoop
生成:ssh-keygen,四下回车

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

查看:ls .ssh/

2、服务器基础环境准备

集群时间同步

yum -y install ntpdate
ntpdate ntp4.aliyun.com

jdk安装配置

传到 /install/tar里面
mkdir -p /install/tar && cd /install/tar
rz -y

tar包:

解压到之前创建的software目录,默认解压到当前目录
tar -zxvf jdk-8u271-linux-x64.tar.gz -C /software/

进入到目录
cd /software
查看解压文件
ls -al
配置jdk环境
vi /etc/profile
在最后追加下面几句

JAVA_HOME=/software/jdk1.8.0_271
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib
export PATH JAVA_HOME

执行刷新(也许)
source /etc/profile
查看java版本
java -version
检查:java -version

3、上传,解压安装包

创建统一工作目录

mkdir -p /export/server/ #软件安装路径
mkdir -p /export/data/   #数据存储路径
mkdir -p /export/software/ #安装包存放目录

上传,解压安装包

  1. 下载hadoop的tar包
  2. 上传到主节点:rz -y,选择tar包
  3. 双击cc3再打开一个cc3的会话
  4. 解压到software文件夹tar -zxvf hadoop-3.2.2.tar.gz -C /software/
  5. 等很久很久以后。。。
  6. 进行环境配置
    vi /etc/profile
    在文件内进行一下配置
    在这里插入图片描述
    刷新改文件

5、编辑hadoop文件

进入到:cd /software/hadoop-3.2.2/etc/hadoop/

hadoop-env.sh中配置javahome

:ser nu显示行号,后面的都会提示行号
在这里插入图片描述
在最后加入以下信息

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

在core-site.xml中修改

添加下列

<property>
	<name>fs.defaultFS</name>
	<value>hdfs://CC2:9000</value>
</property>
<property>
	<name>hadoop.tmp.dir</name>
	<value>/software/hadoop-3.2.2/work</value>
</property>
<property>
	<name>hadoop.http.staticuser.user</name>
	<value>root</value>
</property>

hdfs-site.xml配置

<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>CC1:9868</value>
</property>

下面的数字是子节点个数

mapred-site.xml文件

分布式计算的布置,框架名称yarn

<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<property>
	<name>yarn.app.mapreduce.am.env</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
	<name>mapreduce.map.env</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
	<name>mapreduce.reduce.env</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

yarn-site.xml文件

配置分布式计算的运行时框架

  <property>
  	<name>yarn.resourcemanager.hostname</name>
      <value>CC2</value>
  </property>
  <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
  </property>
  <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.scheduler.minimum-allocation-mb</name>
      <value>512</value>
   </property>
   <property>
      <name>yarn.scheduler.maximum-allocation-mb</name>
      <value>1024</value>
   </property>
   <property>
      <name>yarn.nodemanager.vmem-pmem-ratio</name>
      <value>2</value>
   </property>

workers-工人们

里面放上所有主机名就行
我这里只有CC1一个主机

CC1
CC2

6、分发安装包

-r表示递归
将master机器上hadoop的安装目录拷到各个节点

  1. 将hadoop同步到子节点:scp -r hadoop-3.2.2 CC2:/software/
  2. 切回root用户exit
  3. 将profile文件同步到子节点:scp /etc/profile CC1:/etc/做一个覆盖操作
  4. 对每一个节点执行5
    检查是否同步成功hadoop version,如果有版本号则拷贝成功

7、修改hadoop环境变量

  • NN上配置
    vim /etc/profile

    HADOOP_HOME=/software/hadoop-3.2.2
    PATH= P A T H : PATH: PATH:JAVA_HOME/bin: J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:HADOOP_HOME/sbin:$HADOOP_HOME/bin
    export PATH JAVA_HOME HADOOP_HOME

  • 同步到其他机器
    scp /etc/profile 主机名:/etc/

  • 重新加载:
    source /etc/profile

8、format操作

  • 首次启动必须进行format操作
  • 本质上是初始化工作
    hdfs namenode -format

导入rpm

mkdir -p /install/software
chmod 777 /install/software
装gcc
yum install gcc
用rz导入
rz -y
安装rpm工具

rpm -ivh --nodeps --force 'ls'

初识dfs

格式化分布式文件系统

只在主节点上执行

文件会被分成多个块,分布于其他节点
改变software的宿主
chown -R hadoop:hadoop hadoop-3.2.2
先切换到hadoop用户
su -l hadoop

改变工作目录:cd /software/hadoop-3.2.2
初始化:hdfs namenode -format
echo $?查看是否执行正确,如果为0则正确,非0就是错误

ls查看是否新增了work目录,(work很重要的一个东西)

在这里插入图片描述

启动hadoop集群:start-dfs.sh
向所有子节点发送jps查看当前进程,jdk提供的,

关闭项目集群:stop-dfs.sh
查看是否搭建成功:hdfs dfs -ls /
创建新的文件夹 hdfs dfs -mkdir test

分布式存储

基础命令

启动:start-dfs.sh
ls: hdfs dfs -ls /查看根目录下的东西
上传:hdfs dfs -put 本地文件 分布式路径
查看:hdfs dfs -cat 本地文件 /test/
下载:hdfs dfs -get 分布式目录 本地目录
mkdir :hdfs dfs -mkdir 分布文件路径
重命名:hdfs dfs -mv 分布路径 分布路径
查看:hdfs dfsadmin -report

分布式计算

启动:start-yarn.sh

先确认自己的防火墙关了
http://主节点ip:9870/
在这里插入图片描述

http://主节点ip:8088/
在这里插入图片描述

启动顺序:

  1. start-dfs.sh
  2. start-yarn.sh

关闭顺序:

  1. stop-yarn.sh
  2. stop-dfs.sh

用分布式存储放置数据

mkdir /install/data && cd /install/data
rz -y上传emp.log文件到data里
创建:hdfs dfs -mkdir -p /src/input
上传:hdfs dfs -put emp.log /src/input
查看:hdfs dfs -ls /src/input/emp.log

代码区

所使用的环境:eclipse,maven

配置maven

编写以下代码

打包成jar包

  1. 删除targer里面的所有内容(如果有)
  2. 右键porm.xml
  3. 点击Debug As => Maven Build

##上传到服务器
上传:rz -y
查看:ls

在分布式集群上运行jar包

对全部节点:su -l hadoop
主机上启动集群:start-dfs.sh
运行jar包:hadoop jar EmpBigData.jar com.zlt.bigdata.SalaryDriver /src/input /src/output

map100%就是成功

查看运行情况:ip地址:8088
查看统计结果:
hdfs dfs -ls /src/output
hdfs dfs -cat /src/output/part-r-00000,不一定是这个文件夹,可以一个一个看试试

数据的抽取与存储

数据抽取

在hdfs下执行编写的jar包

数据存储

安装配置mysql

向主节点上传 mysql8.0.1.zip文件
解压:unzip mysql-8.0.22 -d /software/
初始化:

  1. 切换到tools下面:cd tools
  2. 执行初始化: chmod +x ./InitMysql
  3. echo $看返回值是不是0

查看服务是否启动:lsof -itcp:3306
启动服务:/software/mysql-8.0.22/sbin/MysqlTools start
切换到mysql的bin目录下执行mysql命令
-P:端口号
-u:用户名
-p:密码
-e"some sql in here…":非交互式命令
./mysql -h127.0.0.1 -P3306 -uroot -p123456进入交互式
注意分号
查看有哪些数据库:show databases;
创建数据库:create database emp character set utf8;
创建表:./mysql -h127.0.0.1 -P3306 -uroot -p123456 -e"create table if not exists emp.salary(deptName varchar(50) not null,avgSalary int(6) not null)engine=myisam charset=utf8);"

查看创建情况:

  1. 选择数据库:use emp;
  2. 查看表:show tables;

将错误信息放到null:语句后假如>/dev/null,这里没有分号,如果是非交互式

安装配置sqoop——将dfs文件转到mysql

环境配置(无)
重要——转移命令
sqoop-export --export-dir '/data/output' --fields-terminated-by '	' --lines-terminated-by '
' --connect 'jdbc:mysql://192.168.162.123:3306/emp' --username 'root' --password '123456' --table 'salary' --columns "deptName,avgSalary"

进入到mysql查看

报表系统

linux机器上安装metabase

转到zip文件夹:cd /install/zip
上传metebase文件:rz -y
解压到software:unzip metabase0.37.2.zip -d /software/
到software查看:cd /software && ls
运行:cd /software/metabase0.37.2/bin && ./Startup.sh
如果不能执行:chmod a+x 文件名

查看:到本地浏览器输入以下地址:主机ip:3000

登录注册

随便填,不过要记住之后要登录

在metabase中使用mysql

在linux上启动mysql服务
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值