首页 文章 精选 留言 我的

精选列表

搜索[向量化执行],共10018篇文章
优秀的个人博客,低调大师

执行“hdfs dfs -ls”时报ConnectException

原因可能是指定的端口号9000不对,该端口号由hdfs-site.xml中的属性“dfs.namenode.rpc-address”指定,即为NameNode的RPC服务端口号。 文件上传后,被存储在DataNode的data(由DataNode的hdfs-site.xml中的属性“dfs.datanode.data.dir”指定)目录下,如: $HADOOP_HOME/data/current/BP-139798373-172.25.40.171-1397735615751/current/finalized/blk_1073741825 文件名中的“blk”是block,即块的意思,默认情况下blk_1073741825即为文件的一个完整块,Hadoop未对它进额外处理。 hdfsdfs-lshdfs://172.25.40.171:9000 14/04/1712:04:02WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.attempts;Ignoring. 14/04/1712:04:02WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.retry.interval;Ignoring. 14/04/1712:04:02WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.attempts;Ignoring. 14/04/1712:04:02WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.retry.interval;Ignoring. 14/04/1712:04:02WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.attempts;Ignoring. 14/04/1712:04:02WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.retry.interval;Ignoring. JavaHotSpot(TM)64-BitServerVMwarning:Youhaveloadedlibrary/data/hadoop/hadoop-2.4.0/lib/native/libhadoop.so.1.0.0whichmighthavedisabledstackguard.TheVMwilltrytofixthestackguardnow. It'shighlyrecommendedthatyoufixthelibrarywith'execstack-c',orlinkitwith'-znoexecstack'. 14/04/1712:04:02WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicable 14/04/1712:04:03WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.attempts;Ignoring. 14/04/1712:04:03WARNconf.Configuration:mapred-site.xml:anattempttooverridefinalparameter:mapreduce.job.end-notification.max.retry.interval;Ignoring. ls:CallFromVM-40-171-sles10-64/172.25.40.171toVM-40-171-sles10-64:9000failedonconnectionexception:java.net.ConnectException:拒绝连接;Formoredetailssee:http://wiki.apache.org/hadoop/ConnectionRefused

优秀的个人博客,低调大师

Grafana 源码遭窃,拒绝向黑客支付赎金

Grafana 在社交平台发帖称,最近有未经授权的第三方获取了访问 Grafana Labs GitHub 环境的令牌,使得攻击者能够访问其代码库。 但经调查确认,在此次事件中没有客户数据或个人信息被访问,也没有发现对客户系统或运营造成任何影响的证据。 目前,Grafana 已查明凭证泄露的源头。并已注销了遭泄露的凭证,同时增加了额外的安全措施以防止类似事件再次发生。 Grafana 表示:“攻击者试图勒索我们,要求我们支付赎金以阻止其公开我们的代码库。” 但该公司拒绝了这一提议,结合自身经验并援引了 FBI 长期以来的建议,“支付赎金并不能保证你或你的组织能够找回任何数据”,只会助长犯罪分子的气焰,“刺激其他人参与此类非法活动”。 “我们已经确定,正确的做法是不支付赎金。 作为 Grafana Labs 标准安全措施的一部分,我们将在调查结束后分享事件后审查的更多信息。” Grafana 是一个用于监控和可观察性的开源平台,可视化来自 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres 等多个来源的指标、日志等。目前尚不清楚黑客是否窃取了任何专有代码或信息,该公司发言人尚未对此事作出回应。

优秀的个人博客,低调大师

Ferrous Systems 向 Rust 项目捐赠 Ferrocene 语言规范

Rust 基金会发文宣布,Ferrous Systems 已同意将其 Ferrocene 语言规范 (FLS) 贡献给 Rust 项目。 "这笔慷慨的捐赠将为提供官方 Rust 规范提供更清晰的途径。它还将使 Rust 项目能够监督其持续发展,为已经依赖 FLS 的公司和个人提供信心,并标志着 Rust 生态系统的一个重要里程碑。" 众所周知,Rust 一直缺乏一份官方的语言规范。2022 年 12 月,Rust 项目提交了一份 RFC 以鼓励 Rust 项目开始制定规范。该 RFC 于 2023 年 7 月获得批准,并开始工作的推进。起初,Rust 项目规范团队(t-spec)希望以 Rust Reference 为指导,从头开始创建文档。 但考虑到现有的一份被广泛应用的外部 Rust 规范 -- FLS。为避免行业内存在两种高度可见的 Rust 规范而造成的潜在混淆,t-spec 团队决定尝试将 FLS 与 Rust Reference 集成以创建官方 Rust 项目规范。 FLS 是对 Rust 编程语言的描述,由 Ferrous Systems 于 2022 年 7 月开发,Ferrocene 是专为安全关键型和受监管行业设计的 Rust 编译器和工具链。FLS 为 Rust 的语法、语义和行为提供了结构化和详细的参考,可作为验证、合规性和标准化工作的基础。 在经过沟通后,Ferrous Systems 同意将其 FLS 贡献给 Rust 项目,并允许 Rust 项目接管其开发和管理。 公告指出,FLS 集成到 Rust 项目会有一个过渡期。第一阶段的工作将涉及将 FLS 整合到项目的工具和流程中,以符合现有的 Rust 项目目标。 “一旦集成完成,Ferrous Systems 将能够依赖该项目的规范版本并停止使用自己的版本。更广泛地说,这项工作将为其他需要 Rust 规范的人提供官方、权威的参考,帮助他们使用 Rust 编程语言。”

优秀的个人博客,低调大师

新手向- 爬取分析拉勾网招聘信息

[TOC] 爱写bug(ID:icodebugs) 作者:爱写bug 前言: ​ 看了很多网站,只发现获取拉勾网招聘信息是只用post方式就可以得到,应当是非常简单了。推荐刚接触数据分析和爬虫的朋友试一下。 在python3.7、acaconda3环境下运行通过 数据爬取篇: 1、伪造浏览器访问拉勾网 打开Chrome浏览器,进入拉勾网官网,右键->检查,调出开发者模式。 然后在拉勾网搜索关键词 算法工程师 回车,然后点击下一页、下一页,此时开发者工具里的Network 下XHR(表示该网站是以Ajax方式获取刷新信息的)应当如下图(图中已标明了一些关键信息): 每次点击下一页图中XHR下以PositionAjax开头的请求就会多一条,图下方 Form Data 里 page numberpn 就会增加1,网站地址:https://www.lagou.com/jobs/list_ + 搜索关键词 city= + 城市名称 +&cl=false&fromSearch=true&labelWords=&suginput= 当然搜索关键词是中文的话一定要 unicode 转码。这里我们以关键字为算法工程师,地区为全国 为例,所以URL: 转码前: https://www.lagou.com/jobs/list_算法工程师?city=全国&cl=false&fromSearch=true&labelWords=&suginput= 转码后: https://www.lagou.com/jobs/list_%E7%AE%97%E6%B3%95%E5%B7%A5%E7%A8%8B%E5%B8%88?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput= 根据图中 Request Headers 构造请求头伪造成浏览器访问: headers = { 'Accept': "application/json, text/javascript, */*; q=0.01", 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36", 'Referer': "https://www.lagou.com/jobs/list_%E7%AE%97%E6%B3%95%E5%B7%A5%E7%A8%8B%E5%B8%88?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=" } 然后根据图中 Form Data来构造表单,只有pn表示的当前所在页数需要不断改变,所以 pn 定义一个变量num表示当前页数: form_data = { 'first': 'true', 'pn': num, 'kd': '算法工程师' } 然后试一下: request=requests.post(url,data=form_data,headers=headers) print(request.text) 但是尴尬的是这个时候post请求获得的回复是: {"status":false,"msg":"您操作太频繁,请稍后再访问","clientIp":"182.245.65.138","state":2402} 由于该网站的反爬措施,此时无论把请求头构造的多好都没用,哪怕用本地的Cookie。 所以我们采用 Seesion 对话方式: s = requests.Session() # 创建一个session对象 s.get(url_start, headers=headers, timeout=3) # 使用session维持同一个会话 cookie = s.cookies # 使用该会话的cookie response = s.post(url, data=form_data, headers=headers, cookies=cookie, timeout=3) 连接成功! 2、获取招聘数据 然后解析返回的 json 对象。我们先在开发者工具里把 PositionAjax 项的 Headers 改到 Preview 看一下Chrome帮我们格式化好的 json 内容: 出现了,我们想要的数据 在 content -> positionResult -> result , 一共从0到14共15条信息,这对应了网站每页现实的信息数。而最下面还有 totalCount: 16945 这是搜索该关键词 算法工程师 下的总条目数。可以根据这个算出一共有多页的信息(16945 / 15)而不是网站上显示的只有30页。由于时间关系,本次示例只获取29页数据。本次示例只获取29页数据。 def parse_page(job_json): job_list = job_json['content']['positionResult']['result'] company_info = [] for job in job_list: job_info = [] job_info.append(job['companyFullName'])#公司全称 job_info.append(job['companySize'])#规模 job_info.append(job['financeStage'])#融资情况 job_info.append(job['district'])#位置 job_info.append(job['positionName'])#职位 job_info.append(job['workYear'])#工作经验要求 job_info.append(job['education'])#学历 job_info.append(job['salary'])#工资 job_info.append(job['positionAdvantage'])#福利待遇 company_info.append(job_info)#把所有职位情况添加到网页信息page_info return company_info 我们就把每个公司的各类招聘情况存储在 company_info 里了。 最后把所有 company_info 汇总在一起: result = parse_page(job_json) all_company += result # 所有公司招聘信息汇在一起 接着以CSV格式存储在本地: path = 'A:\Temp\\' # 指定csv数据存储路径 df.to_csv(path + 'lagou_algorithm_data.csv', index=False) print('保存路径:' + path + 'lagou_algorithm_data.csv') 数据图片: 数据分析篇: 1、数据清洗: ​ 我们获得的数据都是以字符串形式存储的,而且像工资(20k—30k)、工作经验(3—5年)都是以区间的形式表现出来的,应该求其平均值(工资25k,工作经验4年)。另外像工作经验 不限、应届毕业生等,我们应该把该公司要求年限 改为0。 pattern = '\d+' # 正则表达式-匹配连续数字 # 统计每个公司的平均经验要求 lagou_data['平均经验'] = lagou_data['经验'].str.findall( pattern) # findall查找所有['经验']下的数字字符串 avg_work_year = [] for i in lagou_data['平均经验']: if len(i) == 0: # 长度为0则意为着没数字,既工作经验为不限、应届毕业生等,即没有工作经验要求 avg_work_year.append(0) else: # 匹配的是两个数值的工作经验区间 几年到几年,, year_list = [int(j) for j in i] # 得到每一个数转为int型 avg_year = sum(year_list)/2 # 求工作区间的平均值,平均年限 avg_work_year.append(avg_year) lagou_data['平均经验'] = avg_work_year # 统计每个公司给出的平均工资 lagou_data['平均工资'] = lagou_data['工资'].str.findall(pattern) avg_salary = [] for k in lagou_data['平均工资']: salary_list = [int(n) for n in k] salary = sum(salary_list)/2 avg_salary.append(salary) lagou_data['平均工资'] = avg_salary # 新列一项平均工资 存储的csv文件(你需要先存到本地才能看得到)会多两列 平均经验 和 平均工资: 2、数据可视化: 由于本篇为基础篇只画两个最简单的图且不做过多渲染美化,数据可视化都是一些简单的绘图,只有一个中文显示乱码问题,其他并没有什么坑,所以不做过多描述。 解决中文乱码问题: plt.rcParams['font.sans-serif'] = ['SimHei'] # 替换sans-serif字体显示中文 plt.rcParams['axes.unicode_minus'] = False # 解决坐标轴负数的负号显示问题 平均工资直方图: # 绘制工资频率直方图 plt.hist(lagou_data['平均工资'], alpha=0.8, color='steelblue') plt.xlabel('工资/千元') plt.ylabel('频数') plt.title("算法工程师平均工资直方图") plt.savefig(path+'lagou_algorithm_salary.jpg') # 指定保存路径 plt.show() 平均工作经验要求直方图(代码与上面相似,省略): 学历要求饼状图: # 绘制学历要求饼图 count = lagou_data['学历'].value_counts() plt.pie(count, labels=count.keys(), shadow=True,autopct='%2.2f%%') plt.savefig(path+'lagou_algorithm_education.jpg') plt.show() 绘制福利待遇词云: 这里要注意一下,上面设置的全局显示字体仅对matplotlib,有效,所以这里要指定一下字体防止中文乱码。 # 绘制福利待遇词云 color_mask = imread(path+'china_map.jpg') strs = '' for line in lagou_data['福利']: strs += line # 连接所有字符串 cut_strs = ' '.join(jieba.cut(strs)) # 使用中文分词jieba,将字符串分割成列表 word_cloud = WordCloud(font_path='C:\Windows\Fonts\微软雅黑\msyh.ttc',mask=color_mask,background_color='white').generate(cut_strs) # 指定显示字体避免中文乱码 word_cloud.to_file(path+'lagou_algorithm_wordcloud.jpg') # 存储图片 plt.imshow(word_cloud) plt.show() 这里词云背景指定为中国地图: 公司福利词云最终效果图: 总结: ​ 本文面向新手,文中不可避免有一些设置不合理的问题(数据量过少、工资取平均值代表不了实际情况),但还是可以从一定程度上反映出这个岗位的待遇和工资水平。 工资绝大部分集中在 2万到3万之间真的是相当高了。不过要求也不低,在多年的工作经验要求下,依然要求硕士毕业学历的公司依然占比 33%。相信过不了多久,本科和硕士的学历要求占比就会换一下位置了。五(六)险一金是开的最多的福利待遇,算是公司准则了。现在公司都流行用弹性工作、氛围什么的精神福利来招人了么。 所有源代码及地图素材:https://github.com/zhangzhe532/icodebugs/tree/master/DataAnalysis/lagou_data_Analysis 注: 文章主要参考: Python Data Science Handbook(Python数据科学手册) pandas API 文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html 可视化WordCloud: https://www.jianshu.com/p/daa54db9045d matplotlib中文乱码问题 :https://www.cnblogs.com/hhh5460/p/4323985.html 网站反爬机制日新月异,所以本文有较强的时效性,无法保证您在实践时是否还可行. 所有数据、操作仅作学习交流,不会用于商业用途。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册