l******n 发帖数: 9344 | 1 使用单机处理大约1000个文件大约500G的log数据,要做一下几件事情:
1.从ip到city,这个需要先提取ip然后用第三方的api,然后统计地区的访问次数
2.timestamp,然后统计每个ip每日访问时间.
3.访问device信息,比如os, browser
4. spider记录统计
我就想到2种办法:
1.直接文本处理
2.到把数据提取出来后放到数据库,统计会比较快。但是第二个好像不太容易
哪位处理过类似的log的给点意见,如果有现成的轮子也说说。
谢谢 |
w***g 发帖数: 5958 | 2 现成的analytics框架很多。如果要自己做,并且查询老需要变的话
可以上单机的hadoop + hive。不推荐MySQL等数据库是因为导入500G
数据太慢。
用geoip库能本地做ip到city转换。
【在 l******n 的大作中提到】 : 使用单机处理大约1000个文件大约500G的log数据,要做一下几件事情: : 1.从ip到city,这个需要先提取ip然后用第三方的api,然后统计地区的访问次数 : 2.timestamp,然后统计每个ip每日访问时间. : 3.访问device信息,比如os, browser : 4. spider记录统计 : 我就想到2种办法: : 1.直接文本处理 : 2.到把数据提取出来后放到数据库,统计会比较快。但是第二个好像不太容易 : 哪位处理过类似的log的给点意见,如果有现成的轮子也说说。 : 谢谢
|
l*******m 发帖数: 1096 | 3 spark SQL dataframe. 把data frame cached
【在 l******n 的大作中提到】 : 使用单机处理大约1000个文件大约500G的log数据,要做一下几件事情: : 1.从ip到city,这个需要先提取ip然后用第三方的api,然后统计地区的访问次数 : 2.timestamp,然后统计每个ip每日访问时间. : 3.访问device信息,比如os, browser : 4. spider记录统计 : 我就想到2种办法: : 1.直接文本处理 : 2.到把数据提取出来后放到数据库,统计会比较快。但是第二个好像不太容易 : 哪位处理过类似的log的给点意见,如果有现成的轮子也说说。 : 谢谢
|
w********m 发帖数: 1137 | 4 建个hash,python扫一遍就完了。
用不着spark这样的牛刀。 |
l******n 发帖数: 9344 | 5 python当parser挺好
【在 w********m 的大作中提到】 : 建个hash,python扫一遍就完了。 : 用不着spark这样的牛刀。
|
t******i 发帖数: 35 | 6 同建议Spark, 单机版就行,也可以用python 写。优点在于第三方API 如果是web
async 的,Spark可以直接设置参数多核,可以加快速度,也避免了自己写 multi-
thread 系统的麻烦。
如果直接Hash扫一遍,万一内存不够存放咋办?
【在 l*******m 的大作中提到】 : spark SQL dataframe. 把data frame cached
|
w********m 发帖数: 1137 | 7 python是行读的,或者叫streaming。
打个比方,相当于放个500G的电影。 |
t*******l 发帖数: 3662 | 8 果子的笔记本内置的存储 seq read能上1000MB/s (注意 是大写的B)
普通的usb3的portable 外挂硬盘 能上100MB/s 就不错了
高级一点的大容量外置硬盘最多200MB/s
内置硬盘或者用 port multiplier 并联硬盘做raid 0 或者jbod的话 上到1000MB/s 也
很容易
单个外置盘用上ssd upgrade 和fusion drive 也可以上到 1000MB/s
直接用sandisk extreme 500 这样的外置ssd 盘 容量稍微小一些不到500GB 但是速度
可以上到400MB/s。不用配置很方便。
直接用ram disk 上到6GB/s 不成问题。而且random read 性能最好。
你要长期处理海量数据 而且有钱的话, 买infiniband 卡 自己搭个系统。随便怎么读
文件。随便有多大。这个东西听好。 |