Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >谈谈个人网站的建立(四)—— 日志系统的建立

谈谈个人网站的建立(四)—— 日志系统的建立

作者头像
Zephery
发布于 2018-03-12 08:57:19
发布于 2018-03-12 08:57:19
2.4K00
代码可运行
举报
文章被收录于专栏:ZepheryZephery
运行总次数:0
代码可运行

谈谈个人网站的建立(四)—— 日志系统的建立

欢迎访问我的网站http://www.wenzhihuai.com/ 。感谢,如果可以,希望能在GitHub上给个star,GitHub地址https://github.com/Zephery/newblog

建立网站少不了日志系统,用来查看网站的访问次数、停留时间、抓取量、目录抓取统计、页面抓取统计等,其中,最常用的方法还是使用ELK,但是,本网站的服务器配置实在太低了(1GHZ、2G内存),压根就跑不起ELK,所以只能寻求其他方式,目前最常用的有百度统计友盟,这里,本人使用的是百度统计,提供了API给开发者使用,能够将自己所需要的图表移植到自己的网站上。日志是网站及其重要的文件,通过对日志进行统计、分析、综合,就能有效地掌握网站运行状况,发现和排除错误原因,了解客户访问分布等,更好的加强系统的维护和管理。下面是我的百度统计的概览页面:

<div align="center">

</div>

企业级的网站日志不能公开,但是我的是个人网站,用来跟大家一起学习的,所以,需要将百度的统计页面展示出来,但是,百度并不提供日志的图像,只提供API给开发者调用,而且还限制访问次数,一天不能超过2000次,这个对于实时统计来说,确实不够,所以只能展示前几天的访问统计。这里的日志系统分为三个步骤:1.API获取数据;2.存储数据;3.展示数据。页面效果如下,也可以点开我的网站的日志系统:

<div align="center">

</div>

百度统计提供了Tongji API的JavaPython版本,这两个版本及其复杂,可用性极低,所以,本人用Python写了个及其简单的通用版本,整体只有28行,代码在这,https://github.com/Zephery/baidutongji。下面是具体过程

1.网站代码安装

先在百度统计中注册登录之后,进入管理页面,新增网站,然后在代码管理中获取安装代码,大部分人的代码都是类似的,除了hm.js?后面的参数,是记录该网站的唯一标识。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?code";
  var s = document.getElementsByTagName("script")[0];
  s.parentNode.insertBefore(hm, s);
})();
</script>

同时,需要在申请其他设置->数据导出服务中开通数据导出服务,百度统计Tongji API可以为网站接入者提供便捷的获取网站流量数据的通道。

<div align="center">

</div>

至此,我们获得了username、password、token,然后开始使用三个参数来获取数据。

2.根据API获取数据

官网的API详细的记录了接口的参数以及解释,

链接:https://api.baidu.com/json/tongji/v1/ReportService/getData,详细的官方报告请访问官网TongjiApi

所需参数(必须):

参数名称

参数类型

描述

method

string

要查询的报告

start_date

string

查询起始时间

end_date

string

查询结束时间

metrics

string

自定义指标

其中,参数start_date和end_date的规定为:yyyyMMdd,这里我们使用python的原生库,datetime、time,获取昨天的时间以及前七天的日期。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
today = datetime.date.today()   # 获取今天的日期
yesterday = today - datetime.timedelta(days=1) # 获取昨天的日期
fifteenago = today - datetime.timedelta(days=7) # 获取前七天的日期
end, start = str(yesterday).replace("-", ""), str(fifteenago).replace("-", "")  # 格式化成yyyyMMdd格式

3.构建请求

说明:siteId可以根据个人百度统计的链接获取,也可以使用Tongji API的第一个接口列表获取用户的站点列表。首先,我们构建一个类,由于username、password、token都是通用的,所以我们将它设置为构造方法的参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Baidu(object):
    def __init__(self, siteId, username, password, token):
        self.siteId = siteId
        self.username = username
        self.password = password
        self.token = token

然后构建一个共同的方法,用来获取提交数据之后返回的结果,其中提供了4个可变参数,分别是(start_date:起始日期,end_date:结束日期,method:方法,metrics:指标),返回的是字节,最后需要decode("utf-8")一下变成字符:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def getresult(self, start_date, end_date, method, metrics):
    body = {"header": {"account_type": 1, "password": self.password, "token": self.token,
                       "username": self.username},
            "body": {"siteId": self.siteId, "method": method, "start_date": start_date,
                     "end_date": end_date,
                     "metrics": metrics}}
    data = bytes(json.dumps(body), 'utf8')
    req = urllib.request.Request(base_url, data)
    response = urllib.request.urlopen(req)
    the_page = response.read()
    return the_page.decode("utf-8")

至此,python获取百度统计的过程基本就没了,没错,就是那么简简单单的几行,完整代码见https://github.com/Zephery/baidutongji/blob/master/baidu.py,但是,想要实现获取各种数据,仍需要做很多工作。

4.实际运用

(1)需要使用其他参数怎么办

<div align="center">

</div>

python中提供了个可变参数来解决这一烦恼,详细请看http://www.jianshu.com/p/98f7e34845b5,可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def getresult(self, start_date, end_date, method, metrics, **kw):
    base_url = "https://api.baidu.com/json/tongji/v1/ReportService/getData"
    body = {"header": {"account_type": 1, "password": self.password, "token": self.token,
                       "username": self.username},
            "body": {"siteId": self.siteId, "method": method, "start_date": start_date,
                     "end_date": end_date, "metrics": metrics}}
    for key in kw:  #对可变参数进行遍历,如果有的话就往body中加入
        body['body'][key] = kw[key]

使用方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = self.getresult(start, end, "source/all/a",
                        "pv_count,visitor_count,avg_visit_time", viewType='visitor')  #其中viewTYpe便是可变参数

(2)获取的数据如何解析

百度统计返回的结果比较简洁而又反人类,以获取概览中的pv_count,visitor_count,ip_count,bounce_ratio,avg_visit_time为例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = bd.getresult(start, end, "overview/getTimeTrendRpt",
                      "pv_count,visitor_count,ip_count,bounce_ratio,avg_visit_time")

返回的结果是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[['2017/09/12'], ['2017/09/13'], ['2017/09/14'], ['2017/09/15'], ['2017/09/16'], ['2017/09/17'], ['2017/09/18']],   
[[422, 76, 76, 41.94, 221],  
 [284, 67, 65, 50.63, 215],   
 [67, 23, 22, 52.17, 153],   
 [104, 13, 13, 36.36, 243],   
 [13, 4, 4, 33.33, 66],   
 [73, 7, 6, 37.5, 652],  
 [63, 11, 11, 33.33, 385]  
 ], [], []]

即:翻译成人话就是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[[date1,date2,...]], 
 [[date1的pv_count, date1的visitor_count, date1的ip_count, date1的bounce_ratio, date1的avg_visit_time],
 [date2的pv_count, date2的visitor_count, date2的ip_count, date2的bounce_ratio, date2的avg_visit_time],
  ...,[]
 ],[],[]]

极其反人类的设计。还好用的python,python数组的特性实在太强了。出了可以运用x for x in range这类语法之外,还能与三元符(x if y else x+1,如果y成立,那么结果是x,如果y不成立,那么结果是x+1)一起使用,这里注意:如果当天访问量为0,其返回的json结果是'--',所以要判断是不是为'--',归0化,才能在折线图等各种图上显示。下面是pv_count的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pv_count = [x[0] if x[0] != '--' else 0 for x in result[1]]

(3)每周限制2000次

在开通数据导出服务的时候,不知道大家有没有注意到它的说明,即我们是不能实时监控的,只能将它放在临时数据库中,这里我们选择了Redis,并在centos里定义一个定时任务,每天全部更新一次即可。

<div align="center">

</div>

python中redis的使用方法很简单,连接跟mysql类似:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 字符串
pool = redis.ConnectionPool(host='your host ip', port=port, password='your auth')  # TODO redis地址
r = redis.Redis(connection_pool=pool)

本网站使用redis的数据结构只有set,方法也很简单,就是定义一个key,然后value是数组的字符串获取json。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip_count = [x[2] if x[2] != '--' else 0 for x in result[1]]
r.set("ip_count", ip_count)
# json
name = [item[0]['name'] for item in data[0]]
count = 0
tojson = []
for item in data[1]:
    temp = {}
    temp["name"] = name[count]
    temp["pv_count"] = item[0]
    temp["visitor_count"] = item[1]
    temp["average_stay_time"] = item[2]
    tojson.append(temp)
    count = count + 1
r.set("rukouyemian", json.dumps(tojson[:5]))

5.基本代码

下面是基本的使用代码,完整的使用代码就不贴了,有兴趣可以去我的github上看看,完整代码,希望能给个star哈哈哈,感谢

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import json
import time
import datetime
import urllib.parse
import urllib.request

base_url = "https://api.baidu.com/json/tongji/v1/ReportService/getData"

class Baidu(object):
    def __init__(self, siteId, username, password, token):
        self.siteId = siteId
        self.username = username
        self.password = password
        self.token = token

    def getresult(self, start_date, end_date, method, metrics, **kw):
        base_url = "https://api.baidu.com/json/tongji/v1/ReportService/getData"
        body = {"header": {"account_type": 1, "password": self.password, "token": self.token,
                           "username": self.username},
                "body": {"siteId": self.siteId, "method": method, "start_date": start_date,
                         "end_date": end_date, "metrics": metrics}}
        for key in kw:
            body['body'][key] = kw[key]
        data = bytes(json.dumps(body), 'utf8')
        req = urllib.request.Request(base_url, data)
        response = urllib.request.urlopen(req)
        the_page = response.read()
        return the_page.decode("utf-8")

if __name__ == '__main__':
    # 日期开始
    today = datetime.date.today()
    yesterday = today - datetime.timedelta(days=1)
    fifteenago = today - datetime.timedelta(days=7)
    end, start = str(yesterday).replace("-", ""), str(fifteenago).replace("-", "")
    # 日期结束
    bd = Baidu(yoursiteid, "username", "password", "token")
    result = bd.getresult(start, end, "overview/getTimeTrendRpt",
                          "pv_count,visitor_count,ip_count,bounce_ratio,avg_visit_time")
    result = json.loads(result)
    base = result["body"]["data"][0]["result"]["items"]
    print(base)

6.展示数据

在将数据存进redis中之后,我们需要在博客中使用这些数据来制作图表。在newblog中使用方式也很简单,大概就是使用jedis读取数据,然后使用echarts或者highcharts展示。其中折线图以及线型图我都使用了highcharts,确实比echarts好看的多,但是地域图还是选择了echarts,毕竟中国的产品还是对中国的支持较好。

(1)PV、UV折线图

以图表PV、UV为例,由于存储进redis的是一个数组,所以,可以直接从redis中读取然后放到一个attribute里即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String pv_count = jedis.get("pv_count");
String visitor_count = jedis.get("visitor_count");
mv.addObject("pv_count", pv_count);
mv.addObject("visitor_count", visitor_count);

jsp中的使用如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="panel-heading" style="background-color: rgba(187,255,255,0.7)">
    <div class="card-title">
        <strong>PVUV折线图</strong>
    </div>
    </div>
    <div class="panel-body">
        <div id="linecontainer" style="width: auto;height: 330px"></div>
        <script>
            var chart = new Highcharts.Chart('linecontainer', {
                title: {
                    text: null
                },
                credits: {
                    enabled: false
                },
                xAxis: {
                    categories: ${daterange}
                },
                yAxis: {
                    title: {
                        text: '次数'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                tooltip: {
                    valueSuffix: '次'
                },
                legend: {
                    borderWidth: 0,
                    align: "center", //程度标的目标地位
                    verticalAlign: "top", //垂直标的目标地位
                    x: 0, //间隔x轴的间隔
                    y: 0 //间隔Y轴的间隔
                },
                series: [{
                    name: 'pv',
                    data:${pv_count}
                }, {
                    name: 'uv',
                    data:${visitor_count}
                }]
            })
        </script>

效果如下:

<div align="center">

</div>

(2)地域访问量

在python代码中先获取地域的数据,其结果如下,百度统计跟echarts都是百度的,果然,自家人对自己人的支持真是特别友好的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{'pv_count': 649, 'pv_ratio': 7, 'visitor_count': 2684, 'name': '广东'}, {'pv_count': 2, 'pv_ratio': 2, 'visitor_count': 76, 'name': '四川'}, {'pv_count': 1, 'pv_ratio': 1, 'visitor_count': 3, 'name': '江苏'}]

地域图目前支持最好的还是百度的echarts,使用方法见echarts的官网吧,这里不再阐述,展示地域图的时候需要获取下载两个文件,china.js(其提供了js和json,这里使用的js),echarts.js

部分代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript">
    var myChart = echarts.init(document.getElementById('diyu'));
    option = {
        tooltip: {
            trigger: 'item'
        },
        legend: {
            orient: 'vertical',
            left: 'left'
        },
        visualMap: {
            min: 0,
            max:${diyumax},
            left: 'left',
            top: 'bottom',
            text: ['高', '低'],           // 文本,默认为数值文本
            calculable: true
        },
        toolbox: {
            show: true,
            orient: 'vertical',
            left: 'right',
            top: 'center',
            feature: {
                dataView: {readOnly: false},
                restore: {},
                saveAsImage: {}
            }
        },
        series: [
            {
                name: '访问量',
                type: 'map',
                mapType: 'china',
                roam: false,
                label: {
                    normal: {
                        show: true
                    },
                    emphasis: {
                        show: true
                    }
                },
                data: [
                    <c:forEach var="diyu" items="${diyu}">
                    {name: '${diyu.name}', value: ${to.pv_count}},
                    </c:forEach>
                ]
            }
        ]
    };
    myChart.setOption(option);
</script>

结果如下:

结语

网上关于日志系统的几乎都是ELK,对于小网站的,隐私不是很重要的还是可以用用百度统计的,这套系统也折磨了我挺久的,特别是它那反人类的返回数据。期初本来是想使用百度统计的,后来考虑了一下ELK,尝试之后发现,服务器配置跑不起来,还是安安稳稳的使用了百度统计,于此做成了这个系统,美观度还是不高,颜色需要优化一下。最后,希望能在GitHub上给我个star吧。

日志系统地址:http://www.wenzhihuai.com/log.html

个人网站网址:http://www.wenzhihuai.com

个人网站代码地址:https://github.com/Zephery/newblog

百度统计python代码地址:https://github.com/Zephery/baidutongji

万分感谢

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
  为了能够借助Hive进行统计分析,首先我们需要将清洗后的数据存入Hive中,那么我们需要先建立一张表。这里我们选择分区表,以日期作为分区的指标,建表语句如下:(这里关键之处就在于确定映射的HDFS位置,我这里是/project/techbbs/cleaned即清洗后的数据存放的位置)
Edison Zhou
2018/08/20
6490
Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
七夕节马上就要到了,作为拥有对象(没有的话,可以选择 new 一个出来)的程序员来说,肯定是需要有一点表示才行的。用钱能买到的东西不一定能表达咱们的心意,但是用心去写的代码,还能让对象每天看到那才是最正确的选择。
猿来是前端
2022/09/19
9260
【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
【JavaScript期末大作业】基于html+css+javascript+jquery+bootstrap票务销售系统管理后台模板.md
✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (110套) 】 🌎超炫酷的Echarts大屏可视化源码:【🔰 echarts大屏展示大数据平台可视化(150套) 】 🎁 免费且实用的WEB前端学习指南: 【📂web前端零基础到高级学习视频教程 120G干货分享】 🥇 关于作者: 历任研发
IT司马青衫
2022/08/10
1.3K0
【JavaScript期末大作业】基于html+css+javascript+jquery+bootstrap票务销售系统管理后台模板.md
actions自动更新站点统计数据
获取百度统计开放api的token,利用python将百度统计api返回的统计数据下载保存为json文件,再利用JavaScript读取并处理json数据,将处理好的数据通过echarts.js绘制为图表。
Qwe7
2022/03/20
8300
谈谈个人网站的建立(一)——建站历史和技术架构
个人网站的建立 首先,帮忙点击一下我的网站http://www.wenzhihuai.com/ 。谢谢啊,如果可以,GitHub上麻烦给个star,以后面试能讲讲这个项目,GitHub地址https:
Zephery
2018/03/12
3.4K2
谈谈个人网站的建立(一)——建站历史和技术架构
时间序列分析应用:在COVID-19时期预测苹果股票
*免责声明:本练习未考虑诸如交易和佣金之类的费用。作者对使用本文承担的风险或利益概不负责。
deephub
2020/05/09
7290
时间序列分析应用:在COVID-19时期预测苹果股票
网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)
在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量、总带宽、ip统计和url统计等。 虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了 像每日PV,带宽,ip统计等数据也都可以在他们后台里查看到的。 ====================================================================== 通过下面的方法,可以快速根据子网掩码算出它的掩码位: 子网掩码 掩码位 255.255.255.0
洗尽了浮华
2018/01/22
1.6K0
网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)
质量看板开发实践(四):按照bug优先级、状态绘制饼图
上一篇完成了按照日期范围查询bug的柱状图,本篇承接前面的内容,绘制2个柱状图,分别按照bug优先级和bug状态进行统计
冰霜
2022/04/07
5100
Python 数据分析学习笔记
一、基本语法 [1507772432114_7239_1507772402948.jpg] 资料地址:http://www.icoolxue.com/album/show/113 1)python3新增特性: A: print()变化 B: 新增bytes类型,可以与str进行互换,以b字母作为前缀 C: 新增format()进行格式化处理 D: dict里面删除了iterkeys(),itervalues(), iteritems(), 新增keys(), values(), i
1039778
2018/01/15
1.9K0
Python 数据分析学习笔记
MySQL数据库基础练习系列50、站点访问量统计系统
很多学生或者说是初学者在学习完成数据库的基础增删改查后就自认为在数据库这里就很熟悉了,但是不接触项目根本部知道需求,我这里准备了50个项目的基本需求来让大家来熟练各类项目的列信息,让大家更好的深入项目进行实战式的练习,可以让大家在后面面试的时候有更多更丰富的资历让大家可以与面试官侃侃而谈。
红目香薰
2024/06/16
1210
MySQL数据库基础练习系列50、站点访问量统计系统
个人量化投资体系搭建(一)
作为一名技术人员利用量化交易来进行投资,才能让自己更理智的面对动荡不安的A股。如何建立起一个成熟的投资策略,是非常重要的,关键时刻也许可以让我们避免被割。
zucchiniy
2020/09/23
1.7K0
【ChatGPT】WordPress如何删除某用户ID下某一时间段的帖子?
因为我用的是WordPress博客,然后搭建的子比主题,有时候需要删除大量的垃圾贴和水帖,所以我直接问ChatGPT如何实现这个功能,我们首先需要告诉他怎么去实现这个功能,比如我删除帖子的SQL代码是:
半夜喝可乐
2023/08/02
2910
【ChatGPT】WordPress如何删除某用户ID下某一时间段的帖子?
量化分析经典策略总结
菲阿里四价同 R Breaker 一样,也是一种 日内 策略交易,适合短线投资者。
EmoryHuang
2022/10/31
2.5K0
谈谈个人网站的建立(八)—— 缓存的使用
一、概述 1.1 缓存介绍 系统的性能指标一般包括响应时间、延迟时间、吞吐量,并发用户数和资源利用率等。在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的SQL,MyBatis提供了一级缓存的方案优化这部分场景,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性能。 缓存常用语: 数据不一致性、缓存更新机制、缓存可用性、缓存服务降级、缓存预热、缓存穿透 可查看Redis实战(一) 使用缓存合理性 1.2 本站缓存架构 从没有使用缓存,到使用mybatis缓存
Zephery
2018/03/12
1.4K0
谈谈个人网站的建立(八)—— 缓存的使用
Selenium自动下载qbt数据
Selenium模拟浏览器自动下载数据 一开始固定休眠时,下载几个文件就会被踢下线, 随机休眠后基本无问题了
诡途
2022/05/09
3110
别再造假数据了,来试试 Faker 这个库吧!
在做程序开发的时候,我们经常会用到一些测试数据,相信大多数同学是这么来造测试数据的:
崔庆才
2019/08/09
8090
Python——如何优雅的爬取公众号信息
最近两个周业余时间在赶的一个项目,因为精力有限所以进展缓慢,索性就先把接近完善的这部分代码,先分享出来吧。
Ed_Frey
2019/09/16
3K0
Python——如何优雅的爬取公众号信息
HAWQ取代传统数仓实践(四)——定期ETL(Sqoop、HAWQ)
本文介绍了如何利用Rust语言和Cargo管理大型游戏服务器的程序架构,实现了游戏服务器的模块化设计,并利用Websocket通信机制实现了跨平台的游戏服务器通信。同时,本文还介绍了一些重要的基础概念和技术,包括Rust语言、Cargo、Websocket、游戏服务器、分布式系统、同步复制、负载均衡、Rust设计模式等。通过本文的学习,读者可以掌握利用Rust和Cargo开发高性能、可扩展、跨平台的游戏服务器的程序架构和技巧。
用户1148526
2018/01/03
2.2K0
HAWQ取代传统数仓实践(四)——定期ETL(Sqoop、HAWQ)
硬刚Doris系列」Apache Doris基本使用和数据模型
我们使用 event_day 列作为分区列,建立3个分区: p201706, p201707, p201708
王知无-import_bigdata
2022/06/05
2.4K0
硬刚Doris系列」Apache Doris基本使用和数据模型
Hive整合HBase实现数据同步
1、在node3中的hive的配置文件hive-site.xml增加自己的zookeeper集群属性(仅此一步) node3是用于hive集群中用于启动元数据存储的节点hive --service metastore
时间静止不是简史
2020/07/26
3.2K0
推荐阅读
相关推荐
Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档