IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数仓搭建(一) -> 正文阅读

[大数据]数仓搭建(一)

数仓搭建(一)

一、准备

1.安装hadoop

见完全分布式运行模式

2.在hadoop103的bin目录中添加2个脚本

vim xsync(分发文件用)

vim xcall(在三台虚拟机上都执行同一个指令,并且将情况打印到控制台)

xsync:

!/bin/bash
#验证参数
if(($#!=1))
the
   echo 请传入要分发的单个文件!
   exit;
fi
#获取分发文件的绝对路径
dirpath=$(cd -P `dirname $1`; pwd)
filename=$(basename $1)
echo "要分发的文件路径是:$dirpath/$filename"
#获取当前的用户名
user=$(whoami)
#分发,前提是集群中的机器都有当前分发文件所在的父目录
for((i=102;i<=104;i++))
do
 echo -----------------------hadoop$i---------------------
 rsync -rvlt $dirpath/$filename $user@hadoop$i:$dirpath

done

xcall:

#!/bin/bash
#验证参数
if(($#==0))
then
        echo 请传入要执行的命令!
        exit;
fi

echo "要执行的命令是:$@"

#批量执行
for((i=102;i<=104;i++))
do
        echo -----------------------hadoop$i---------------------
        ssh  hadoop$i $@
done

二、hadoop LZO压缩

1.解压

将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-3.1.3/share/hadoop/common/

[guochao@hadoop102 common]$ pwd
/opt/module/hadoop-3.1.3/share/hadoop/common
[guochao@hadoop102 common]$ ls
hadoop-lzo-0.4.20.jar

2.同步

[guochao@hadoop102 common]$ xsync hadoop-lzo-0.4.20.jar

3.修改配置

core-site.xml增加配置支持LZO压缩


<configuration>
<property>
<name>io.compression.codecs</name>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec
</value>
</property>

<property>
    <name>io.compression.codec.lzo.class</name>
    <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
</configuration>

4.同步

[guochao@hadoop102 hadoop]$ xsync core-site.xml

三、Zookeeper安装

1.传输

用 XShell 文件传输工具将 zookeeper-3.4.10导入到 opt 目录下面的 software 文件夹下面

2.解压

解压到/opt/module/

[guochao@hadoop102 software]$ tar -zxvf zookeeper-3.4.10 -C /opt/module/

3.创建datas目录

进入zookeeper中创建目录datas

[guochao@hadoop102 module] cd /opt/module/zookeeper-3.4.10/
[guochao@hadoop102 zookeeper-3.4.10]$mkdir datas

4.改名

进入zookeeper中的conf中将zoo_sample.cfg 改名为 zoo.cfg

[guochao@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg

5.编辑zoo.cfg

将datadir改为data的地址

/opt/module/zookeeper-3.4.10/datas

在空白处添加

server.102=hadoop102:2888:3888
server.103=hadoop103:2888:3888
server.104=hadoop104:2888:3888

6.创建myid文件

在datas文件中创建myid文件输入102

7.分发

[guochao@hadoop102 conf]$ xsync zoo.cfg

之后在其他虚拟机上更改myid

8.编写zookeeper的启动脚本

在hadoop102的/home/guochao/bin目录下创建脚本

[guochao@hadoop102 bin]$ vim zk.sh

在脚本中编写如下内容

#! /bin/bash

case $1 in
"start"){
	for i in hadoop102 hadoop103 hadoop104
	do
		ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
	done
};;
"stop"){
	for i in hadoop102 hadoop103 hadoop104
	do
		ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
	done
};;
"status"){
	for i in hadoop102 hadoop103 hadoop104
	do
		ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh status"
	done
};;
esac
#!/bin/bash
if(($#!=1))
then
	echo 请输入start或stop或status!
	exit;
fi

if [ $1 = start ] || [ $1 = stop ] || [ $1 = status ]
then
	xcall zkServer.sh $1
else
	echo 请输入start或stop或status!
fi

增加脚本执行权限

[guochao@hadoop102 bin]$ chmod 777 zk.sh

Zookeeper集群启动脚本

[guochao@hadoop102 module]$ zk.sh start

Zookeeper集群停止脚本

[guochao@hadoop102 module]$ zk.sh stop

四、Flume安装

1.解压

2.分发

xsync

五、Kafka安装

1.解压

[guochaao@hadoop102 software]$ tar -zxvf kafka_2.11-0.11.0.2.tgz -C /opt/module/

2.修改配置文件

将delete的注释解开

将log.dirs的地址改为:

/opt/module/kafka/datas

在到下面将zookeeper.connect改为

hadoop102:2181,hadoop103:2181,hadoop104:2181

3.分发

退回module将kafka分发

Zookeeper要在kafka前启动

4.编写启动脚本kf

1)在/home/atguigu/bin目录下创建脚本kf.sh

[guochao@hadoop102 bin]$ vim kf.sh

在脚本中填写如下内容

#! /bin/bash

case $1 in
"start"){
        for i in hadoop102 hadoop103 hadoop104
        do
                echo " --------启动 $i Kafka-------"
                # 用于KafkaManager监控
                ssh $i "export JMX_PORT=9988 && /opt/module/kafka_2.11-0.11.0.2/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.11-0.11.0.2/config/server.properties "
        done
};;
"stop"){
        for i in hadoop102 hadoop103 hadoop104
        do
                echo " --------停止 $i Kafka-------"
                ssh $i "/opt/module/kafka_2.11-0.11.0.2/bin/kafka-server-stop.sh stop"
        done
};;
esac

2)增加脚本执行权限

[guochao@hadoop102 bin]$ chmod 777 kf.sh

3)kf集群启动脚本

[guochao@hadoop102 module]$ kf.sh start

4)kf集群停止脚本

[guochao@hadoop102 module]$ kf.sh stop

六、拦截器,第一层采集通道

1.创建目录myagents

进入Hadoop102的flume中创建目录myagents

[guochao@hadoop102 apache-flume-1.7.0-bin]$ mkdir myagents

2.在myagents中创建test.conf文件

[guochao@hadoop102 myagents]$ vim test.conf

输入

#a1是agent的名称,a1中定义了一个叫r1的source,如果有多个,使用空格间隔
a1.sources = r1
a1.sinks = k1
a1.channels = c1
#组名名.属性名=属性值
a1.sources.r1.type=TAILDIR
a1.sources.r1.filegroups=f1 
#读取/tmp/logs/app-yyyy-mm-dd.log ^代表以xxx开头$代表以什么结尾 .代表匹配任意字符
#+代表匹配任意位置
a1.sources.r1.filegroups.f1=/tmp/logs/^app.+.log$
#JSON文件的保存位置
a1.sources.r1.positionFile=/opt/module/flume/test/log_position.json

#定义拦截器
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = com.atguigu.dw.flume.MyInterceptor$Builder


#定义sink
a1.sinks.k1.type=logger

#定义chanel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000

#连接组件 同一个source可以对接多个channel,一个sink只能从一个channel拿数据!
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1

3.分发

[guochao@hadoop102 myagents]$ xsync test.conf 
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 19:57:25  更:2021-07-04 19:57:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 18:25:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码