首页 文章 精选 留言 我的

精选列表

搜索[node],共10000篇文章
优秀的个人博客,低调大师

Deno 继颠覆 Node 之后,又“内部”拒绝了 TypeScript

Deno 团队计划删除所有内部代码构建时的 TS 类型检查与捆绑。打算将所有运行时代码转移到同一个 JavaScript 文件当中,但仍将使用随附的 d.ts 文件保存类型定义与说明文档。理由是: 在变更文件时,TypeScript 往往需要几分钟的编译时间,这导致连续编译过程变得非常缓慢; 在创建 Deno 可执行文件以及面向用户的 API 源文件时,TypeScript 结构会引发一系列运行时性能问题; TypeScript 本身对于 Deno 代码的组织工作毫无帮助,反而增强了代码组织负担。Deno 团队提出的一大现实问题,是 TypeScript 会在两个位置复制相互独立的 Body 类,https://github.com/denoland/deno/issues/4748 由于 TypeScript 编译器无法帮助开发者生成 d.ts 文件,内部代码与运行时 TypeScript 声明必须以手动方式保持同步; 他们维护着两台 TS 编译器主机:一台用于内部 Deno 代码,另一台用于外部用户代码,但二者的作用其实非常相似。 需注意的是,Deno 将仅在内部代码中停用 TypeScript,Deno 用户代码中的 TypeScript 部分仍将保留,类型检查自然也将并存。 虽然 TypeScript 常被视为 JavaScript 的改进版本,但此次情况提醒我们问题也许没那么简单。与任何其他语言一样,TypeScript 也有自己的缺陷。其最重要的问题之一,在于缓慢的编译速度。 在从纯 JavaScript 转换至 TypeScript 时,小型项目可能编译变慢的问题还不算严重,但大型项目(例如复杂的 React 应用程序)则将深受其害。从 Deno 项目的体量出发,停止使用 TypeScript 也算是顺理成章。 但这种性能妥协也可以理解,毕竟在开发过程中进行类型检查,相当于用编译时长换取安全保障。当然,TypeScript 项目中也提供关于如何解决并缩短编译时间的大量说明文档。最有趣的方法之一是项目引用,意味着开发人员可以将大规模 TypeScript 代码片段拆分为较小的代码片段。 感兴趣的朋友可以移步 Google 发布的文档,了解 Deno 项目团队在移除 TypeScript 并转而使用 JavaScript 方面的完整讨论。 Ryan Dahl 及其合作者在其中全面探讨了当前问题、解决方案以及实现途径。 稿源:https://startfunction.com/deno-will-stop-using-typescript

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

安装hadoop伪分布式模式(Single Node Cluster)

目的 本文档介绍如何去安装单节点hadoop集群,以便你可以的了解和使用hadoop的HDFS和MapReduce. 环境: os: CentOS release 6.5 (Final) ip: 172.16.101.58 user:root hadoop-2.9.0.tar.gz SSH无密码登录配置 因为本文档使用root用户安装,所以需要配置好root用户ssh无密码登录本地节点 [root@sht-sgmhadoopdn-01 ~]#ssh-keygen -t rsa [root@sht-sgmhadoopdn-01 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys [root@sht-sgmhadoopdn-01 ~]# ssh localhost Java安装和配置 [root@sht-sgmhadoopdn-01 ~]# cd /usr/java [root@sht-sgmhadoopdn-01 java]# tar xf jdk-8u111-linux-x64.tar.gz [root@sht-sgmhadoopdn-01 java]# chown -R root:root jdk1.8.0_111/ [root@sht-sgmhadoopdn-01 bin]# /usr/java/jdk1.8.0_111/bin/java -version java version "1.8.0_111" [root@sht-sgmhadoopdn-01 ~]# vim ~/.bash_profile export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop export JAVA_HOME=/usr/java/jdk1.8.0_111 export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export LD_LIBRARY_PATH=/home/bduser/hadoop/hadoop-2.7.3/lib/native/:$LD_LIBRARY_PATH [root@sht-sgmhadoopdn-01 ~]# source .bash_profile [root@sht-sgmhadoopdn-01 ~]# which java /usr/java/jdk1.8.0_111/bin/java 下载和解压hadoop [root@sht-sgmhadoopdn-01 local]# wgethttp://www-us.apache.org/dist/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz [root@sht-sgmhadoopdn-01 local]# tar xf hadoop-2.9.0.tar.gz [root@sht-sgmhadoopdn-01 ~]#vim .bash_profile export HADOOP_HOME=/usr/local/hadoop-2.9.0 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH [root@sht-sgmhadoopdn-01 ~]# source .bash_profile [root@sht-sgmhadoopdn-01 ~]# which hadoop /usr/local/hadoop-2.9.0/bin/hadoop [root@sht-sgmhadoopdn-01 local]# hadoop version Hadoop 2.9.0 ...... hadoop jar命令解析 jar <jar> run a jar file,如果是yarn,则需要使用hadoop yarn jar 将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中: 正则表达式: [a-z]表示匹配包含在a-z之中的任意一个字符 + 表示匹配之前的项1次或者多次 [root@sht-sgmhadoopdn-01 ~]# cd /usr/local/hadoop-2.9.0 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# cp etc/hadoop/*.xmlinput/ [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+' [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# cat output/* 1dfsadmin Hadoop配置文件说明 (1)Hadoop 的运行方式是由配置文件决定的(运行 Hadoop时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。 (2)伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错 修改配置文件 Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 守护进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。 Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。 [root@sht-sgmhadoopdn-01 hadoop]#cat /usr/local/hadoop-2.9.0/etc/hadoop/core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop-2.9.0/tmp</value> <description>Abase for other temporary directories.</description> <property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]#cat /usr/local/hadoop-2.9.0/etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop-2.9.0/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop-2.9.0/tmp/dfs/data</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]# vim /usr/local/hadoop-2.9.0/etc/hadoop/hadoop-env.sh #export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/java/jdk1.8.0_111 启动hadoop集群 #NameNode 的格式化: [root@sht-sgmhadoopdn-01 hadoop]# hdfs namenode -format #开启NameNode 和DataNode 守护进程,(这一步会启动三个进程,分别是namenode,datanode,secondarynamenode) [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/start-dfs.sh #通过jps命令查看进程号和进程名称 [root@sht-sgmhadoopdn-01 logs]# jps 12704 DataNode 14273 Jps 12580 NameNode 27988 -- process information unavailable 13015 SecondaryNameNode 27832 -- process information unavailable #也可以通过stop-dfs.sh停止守护进程,(下次启动hadoop时,无需进行NameNode的初始化,只需要运行start-dfs.sh就可以) [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# /usr/local/hadoop-2.9.0/sbin/stop-dfs.sh 成功启动进程后可以通过浏览器访问,查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件: NameNodehttp://172.16.101.58:50070 运行hadoop伪分布实例MapReduce Job #创建hdfs目录/user/root/input,并把本地的文件拷贝到hdfs上 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -mkdir -p /user/root/input [root@sht-sgmhadoopdn-01 ~]# hdfs dfs -ls drwxr-xr-x- root supergroup0 2017-12-24 15:20 input [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -put /usr/local/hadoop-2.9.0/etc/hadoop/*.xml /user/root/input [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -ls /user/root/input Found 8 items -rw-r--r-- 1 root supergroup 7861 2017-12-24 15:20 /user/root/input/capacity-scheduler.xml -rw-r--r-- 1 root supergroup 1040 2017-12-24 15:20 /user/root/input/core-site.xml -rw-r--r-- 1 root supergroup 10206 2017-12-24 15:20 /user/root/input/hadoop-policy.xml -rw-r--r-- 1 root supergroup 1091 2017-12-24 15:20 /user/root/input/hdfs-site.xml -rw-r--r-- 1 root supergroup 620 2017-12-24 15:20 /user/root/input/httpfs-site.xml -rw-r--r-- 1 root supergroup 3518 2017-12-24 15:20 /user/root/input/kms-acls.xml -rw-r--r-- 1 root supergroup 5939 2017-12-24 15:20 /user/root/input/kms-site.xml -rw-r--r-- 1 root supergroup 690 2017-12-24 15:20 /user/root/input/yarn-site.xml [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar /usr/local/hadoop-2.9.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z]+' [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -cat output/* 1dfsadmin #默认不会覆盖结果文件,因此再次运行上面实例会提示出错:hdfs://localhost:9000/user/root/output already exists,需要先将output 删除。 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -rm -r /user/root/output Deleted /user/root/output [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar /usr/local/hadoop-2.9.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+' [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -cat output/* 1dfsadmin 1dfs.replication 1dfs.namenode.name.dir 1dfs.datanode.data.dir #也可以从hdfs上拷贝文件到本地 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -get /user/root/output /usr/local/hadoop-2.9.0/ 运行YARN在单节点上 (1)新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator)。 (2)YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性, 上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。 (3)如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。 (4)但 YARN 主要是为集群提供更好的资源管理与任务调度,然而这在单机上体现不出价值,反而会使程序跑得稍慢些。因此在单机上是否开启 YARN 就看实际情况了 [root@sht-sgmhadoopdn-01 hadoop]# mv/usr/local/hadoop-2.9.0/etc/hadoop/mapred-site.xml.template mapred-site.xml [root@sht-sgmhadoopdn-01 hadoop]# cat mapred-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]# cat yarn-site.xml <configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]# jps 27988 -- process information unavailable 30341 DataNode 32663 Jps 27832 -- process information unavailable 30188 NameNode 30525 SecondaryNameNode #前提是已经使用start-dfs.sh脚本启动过 [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/start-yarn.sh #相比使用MapReduce多了ResourceManager和NodeManager这两个进程 [root@sht-sgmhadoopdn-01 hadoop]# jps 27988 -- process information unavailable 30341 DataNode 32758 ResourceManager 855 Jps 27832 -- process information unavailable 411 NodeManager 30188 NameNode 30525 SecondaryNameNode #启动后可以通过浏览器访问: ResourceManager -http://172.16.101.58:8088 停止hadoop集群 [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/stop-yarn.sh [root@sht-sgmhadoopdn-01 hadoop]#/usr/local/hadoop-2.9.0/sbin/stop-dfs.sh [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/mr-jobhistory-daemon.sh stop historyserver no historyserver to stop 参考链接: http://www.powerxing.com/install-hadoop/ http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-common/SingleCluster.html

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

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等操作系统。

用户登录
用户注册