1. 连接到HBase
连接到正在运行的HBase实例使用“hbase shell”命令。该命令位于HBase安装路径的/bin目录下。我这里将bin目录加入到了系统环境变量PATH中。执行命令:
|
1 2 3 4 5 6 7 8 9 |
$ hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found bind |
连接到正在运行的HBase实例使用“hbase shell”命令。该命令位于HBase安装路径的/bin目录下。我这里将bin目录加入到了系统环境变量PATH中。执行命令:
|
1 2 3 4 5 6 7 8 9 |
$ hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found bind |
前两天同事问了我一个中文乱码的问题。他写了一个json请求的接口,通过浏览器请求接口的时候,返回的json中包含的中文显示了乱码。后来使用jmeter进行测试时也发现返回的是乱码。
之前也遇到过几次Java/JSP中文乱码的问题,知道乱码通常发生在字节流和字符相互转换的过程中。检查了一些这个接口涉及到的几次字节流转换的地方都没发现问题。我这个同事还是挺细心的,…
这是整理的Spark官网的《QuickStart》教程。在这篇教程里我们会先使用shell初步接触一下spark,然后再编写一个spark应用。我这里会优先使用scala来完成这些工作。如果想使用python或者java请直接移步原文。
sprak shell可以让我们快速的熟悉相关的API,同时它也是一个强大的交互式数据分析工具。目前spar…
很多时候,我们要查看的内容必须要先登录才能找到,比如知乎的回答,QQ空间的好友列表、微博上关注的人和粉丝等。要使用爬虫直接登录抓取这些信息时,有一个不太好解决的难题,就是这些网站设置的登录规则以及登录时的验证码识别。不过,我们可以想办法绕过去,思路是这样的:先使用浏览器登录,从浏览器获取登录后的“凭证”,然后将这个“凭证”放到爬虫里,模拟用户的行为继续抓取。…
说明:以下的代码基于httpclient4.5.2实现。
我们要使用java的HttpClient实现get请求抓取网页是一件比较容易实现的工作:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
public static String get(String url |
Fork/Join框架是ExecutorService接口的一个实现,通过它我们可以实现多进程。Fork/Join可以用来将一个大任务递归的拆分为多个小任务,目标是充分利用所有的资源尽可能增强应用的性能。
和任何ExecutorService接口的实现一样,Fork/Join也会使用线程池来分布式的管理工作线程。Fork/Join框架的独特之处在于它使用了wo…
在抓取网页时遇到了一段报错信息:
|
1 2 3 4 5 6 |
Traceback (most recent call last): File "D:/pythonDevelop/spider/pic_grab.py", line 14, in <module> print(get("http://pp.163 |
这一节看下如何抓取网页中的图片。目标网址是:http://pp.163.com/longer-yowoo/pp/10069141.html。这里有一组我非常喜欢的图片。
要抓取网页首先就要找出图片的网址。这里仍然是使用BeautifulSoup,具体如何使用在前一节《使用BeautifulSoup解析网页》时说过,现在就不说了。看下代码好了:
|
1 2 3 |
之前的内容已经大致实现了如何获取网页、分析网页、获取目标内容。接下来的目标是如何让网页抓取进行得更效率些。在进行抓取的时候,时间的消耗主要是在请求等待的时间上,所以一个最容易想到的优化方式就是使用多线程。
多线程的实现还是比较简单的,下面是一个简单的线程实现方案:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!python # encoding |
使用lambda表达式可以创建简洁的匿名方法。不过,有时候lambda表达式只是简单的调用了已有的方法。此时,使用方法引用无疑是一个更简洁易读的方案。
再来看看之前使用过的Person类:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class Person { &nbs |