前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop完全分布式搭建部署

Hadoop完全分布式搭建部署

作者头像
星哥玩云
发布于 2022-08-08 08:04:46
发布于 2022-08-08 08:04:46
48900
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

1 环境准备

1.1 修改IP

1.2 修改主机名及主机名和IP地址的映射

1.3 关闭防火墙

1.4 ssh免密登录

1.5 安装JDK,配置环境变量

2 集群规划

节点名称

NN

JJN

DN

ZKFC

ZK

RM

NM

linux1

NameNode

JournalNode

DataNode

ZKFC

Zookeeper

NodeManager

linux2

NameNode

JournalNode

DataNode

ZKFC

ZooKeeper

ResourceManager

NodeManager

linux3

JournalNode

DataNode

ZooKeeper

ResourceManager

NodeManager

3 安装Zookeeper集群

安装详解参考 : Zookeeper集群搭建 https://www.linuxidc.com/Linux/2020-03/162767.htm

4 配置Hadoop

4.1修改 core-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
<!-- meNode的地址组装成一个集群mycluster -->
<property>
   <name>fs.defaultFS</name>
   <value>hdfs://mycluster</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop/data/ha/tmp</value>
</property>
<!-- 指定ZKFC故障自动切换转移 -->
<property>
     <name>ha.zookeeper.quorum</name>
     <value>linux1:2181,linux2:2181,linux3:2181</value>
</property>

</configuration>

4.2 修改hdfs-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<connfiguration>
<!-- 设置dfs副本数,默认3-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 完全分布式集群名称 -->
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>
<!-- 集群中NameNode节点都有哪些 -->
<property>
   <name>dfs.ha.namenodes.mycluster</name>
   <value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
   <name>dfs.namenode.rpc-address.mycluster.nn1</name>
   <value>linux1:8020</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
   <name>dfs.namenode.rpc-address.mycluster.nn2</name>
   <value>linux2:8020</value>
</property>
<!-- nn1的http通信地址 -->
<property>
   <name>dfs.namenode.http-address.mycluster.nn1</name>
   <value>linux1:50070</value>
</property>
<!-- nn2的http通信地址 -->
<property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>linux2:50070</value>
</property>
<!-- nn2的http通信地址 -->
<property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>linux2:50070</value>
</property>
<!-- 指定NameNode元数据在JournalNode上的存放位置 -->
<property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://linux1:8485;linux2:8485;linux3:8485/mycluster</value>
</property>
<!-- 配置隔离机制,即同一时刻只能有一台服务器对外响应 -->
<property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
</property>
<!-- 使用隔离机制时需要ssh无秘钥登录-->
<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- 声明journalnode服务器存储目录-->
<property>
   <name>dfs.journalnode.edits.dir</name>
   <value>/opt/module/hadoop/data/ha/jn</value>
</property>
<!-- 关闭权限检查-->
<property>
   <name>dfs.permissions.enable</name>
   <value>false</value>
</property>
<!-- 访问代理类:client,mycluster,active配置失败自动切换实现方式-->
<property>
   <name>dfs.client.failover.proxy.provider.mycluster</name>
 <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置自动故障转移-->
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
</property>
</configuration>

4.3 修改mapred-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 hadoop]# mv mapred-site.xml.template mapred-site.xml
[hadoop@linux1 hadoop]# vi  mapred-site.xml
<configuration>
<!-- 指定mr框架为yarn方式 -->
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
<!-- 指定mr历史服务器主机,端口 -->
  <property>   
    <name>mapreduce.jobhistory.address</name>   
    <value>linux1:10020</value>   
  </property>   
<!-- 指定mr历史服务器WebUI主机,端口 -->
  <property>   
    <name>mapreduce.jobhistory.webapp.address</name>   
    <value>linux1:19888</value>   
  </property>
<!-- 历史服务器的WEB UI上最多显示20000个历史的作业记录信息 -->    
  <property>
    <name>mapreduce.jobhistory.joblist.cache.size</name>
    <value>20000</value>
  </property>
<!--配置作业运行日志 --> 
  <property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
  </property>
  <property>
    <name>yarn.app.mapreduce.am.staging-dir</name>
    <value>/tmp/hadoop-yarn/staging</value>
  </property>
</configuration>

4.4 修改 slaves

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
linux1
linux2
linux3

4.5修改yarn-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux2 hadoop]$ vi yarn-site.xml
<configuration>
<!-- reducer获取数据的方式 -->
 <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--启用resourcemanager ha-->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <!--声明两台resourcemanager的地址-->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>rmCluster</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>linux2</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>linux3</value>
    </property>
    <!--指定zookeeper集群的地址-->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>linux1:2181,linux2:2181,linux3:2181</value>
    </property>
    <!--启用自动恢复-->
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>
    <!--指定resourcemanager的状态信息存储在zookeeper集群-->
    <property>
        <name>yarn.resourcemanager.store.class</name>    
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property>
</configuration>

4.5 拷贝hadoop到其他节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 module]$ scp -r hadoop/ hadoop@linux2:/opt/module/
[hadoop@linux1 module]$ scp -r hadoop/ hadoop@linux3:/opt/module/

4.6 配置Hadoop环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 module]$ vim /etc/profile
export HADOOP_HOME=/opt/module/hadoop
export PATH=$Java_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH


生效
[hadoop@linux1 module]$ source /etc/profile

5 启动集群

1)在各个JournalNode节点上,输入以下命令启动journalnode服务:(前提zookeeper集群已启动)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 hadoop]$ hadoop-daemon.sh start journalnode
[hadoop@linux2 hadoop]$ hadoop-daemon.sh start journalnode
[hadoop@linux3 hadoop]$ hadoop-daemon.sh start journalnode

cd /opt/module/hadoop/data

 产生clusterID的集群编号

cd /opt/moudle/hadoop/data/ha

tmp目录也会产生clusterID集群编号

启动nn1上namenode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 current]$ hadoop-daemon.sh start namenode
starting namenode, logging to /opt/module/hadoop/logs/hadoop-hadoop-namenode-linux1.out
[hadoop@linux1 current]$ jps
13040 NameNode
13121 Jps
5442 QuorumPeerMain
12403 JournalNode

3)在[nn2]上,同步nn1的元数据信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux2 hadoop]$ hdfs namenode -bootstrapStandby

 4)启动nn2上的namenode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux2 hadoop]$ hadoop-daemon.sh start namenode
starting namenode, logging to /opt/module/hadoop/logs/hadoop-hadoop-namenode-linux2.out
[hadoop@linux2 hadoop]$ jps
2368 JournalNode
2498 NameNode
1783 QuorumPeerMain
2574 Jps
[hadoop@linux2 hadoop]$ 

5)在[nn1]上,启动所有datanode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 current]$  hadoop-daemons.sh start datanode
linux1: starting datanode, logging to /opt/module/hadoop/logs/hadoop-hadoop-datanode-linux1.out
linux2: starting datanode, logging to /opt/module/hadoop/logs/hadoop-hadoop-datanode-linux2.out
linux3: starting datanode, logging to /opt/module/hadoop/logs/hadoop-hadoop-datanode-linux3.out
[hadoop@linux1 current]$ 

访问地址:http://linux2:50070/dfshealth.html#tab-overview

访问地址:http://linux1:50070/dfshealth.html#tab-overview 

 6)手动切换状态,在各个NameNode节点上启动DFSZK Failover Controller,先在哪台机器启动,哪个机器的NameNode就是Active NameNode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 current]$ hadoop-daemon.sh start zkfc
[hadoop@linux2 current]$ hadoop-daemon.sh start zkfc

设置第一个为active
[hadoop@linux1 current]$  hdfs haadmin -transitionToActive nn1 --forcemanual 

Web页面查看

 7启动yarn

 (1)在linux2中执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux2 hadoop]$ start-yarn.sh

(2)在linux3中执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux3 hadoop]$ yarn-daemon.sh start resourcemanager

(3)查看服务状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux3 hadoop]$ yarn rmadmin -getServiceState rm1
active
[hadoop@linux3 hadoop]$ yarn rmadmin -getServiceState rm2
standby
[hadoop@linux3 hadoop]$ 

测试集群

1.查看集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux1 opt]$ jps
13040 NameNode
5442 QuorumPeerMain
12403 JournalNode
15139 NodeManager
14908 DFSZKFailoverController
13390 DataNode
15711 Jps
[hadoop@linux1 opt]$ 

[hadoop@linux2 hadoop]$ jps
2368 JournalNode
2498 NameNode
3746 Jps
1783 QuorumPeerMain
3271 NodeManager
2633 DataNode
3417 ResourceManager
3162 DFSZKFailoverController
[hadoop@linux2 hadoop]$ 

[hadoop@linux3 hadoop]$ jps
2147 JournalNode
2515 NodeManager
1733 QuorumPeerMain
2249 DataNode
2719 ResourceManager
2847 Jps
[hadoop@linux3 hadoop]$ 

创建文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@linux3 ~]# mkdir -p /opt/wcinput
root@linux3 ~]# cd /opt/
[root@linux3 opt]# chown hadoop:hadoop wcinput
root@linux3 opt]# su hadoop
[hadoop@linux3 opt]$ vi /opt/wcinput/my.txt
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hello world
hello scals
hello java
hello php
hello world
php   

放到hdfs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux3 opt]$ hadoop fs -put /opt/wcinput/my.txt /user/hadoop/input

执行单词统计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux3 opt]$ hadoop jar /opt/module/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /user/hadoop/input /user/hadoop/output

查看输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux3 opt]$ hadoop dfs -ls /usr/hadoop/output

将输出下载到本地

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux3 hadoop]$ hadoop dfs -get /user/hadoop/output/part-r-00000

查看文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[hadoop@linux3 hadoop]$ vim part-r-00000


hello   5
java    1
php     2
scals   1
world   2 

四 Hadoop集群群启脚本

1启动服务

zookeeper   hadoop 

2脚本

1 编写启动集群脚本  vi start-cluster.sh

#!/bin/bash echo "****************** 开始启动集群所有节点服务 ****************" echo "****************** 正在启动zookeeper *********************" for i in hadoop@linux1 hadoop@linux2 hadoop@linux3 do ssh $i '/opt/module/apache-zookeeper-3.6.0/bin/zkServer.sh start' done echo "******************** 正在启动HDFS *******************" ssh hadoop@linux1 '/opt/module/hadoop/sbin/start-dfs.sh' echo "********************* 正在启动YARN ******************" ssh hadoop@linux2 '/opt/module/hadoop/sbin/start-yarn.sh' echo "*************** 正在node21上启动JobHistoryServer *********" ssh hadoop@linux1 '/opt/module/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver' echo "****************** 集群启动成功 *******************"*

2 编写关闭集群脚本 vi stop-cluster.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
echo  "*************      开在关闭集群所有节点服务      *************"
echo  "*************  正在linux1上关闭JobHistoryServer  *************"
ssh   hadoop@linux1 '/opt/module/hadoop/sbin/mr-jobhistory-daemon.sh stop historyserver'
echo  "*************         正在关闭YARN               *************"
ssh   hadoop@linux2 '/opt/module/hadoop/sbin/stop-yarn.sh'
echo  "*************         正在关闭HDFS               *************"
ssh   hadoop@linux1 '/opt/module/hadoop/sbin/stop-dfs.sh'
echo  "*************         正在关闭zookeeper          *************"
for i in hadoop@linux1 hadoop@linux2 hadoop@linux3
do
     ssh $i '/opt/module/apache-zookeeper-3.6.0/bin/zkServer.sh stop'
done

[hadoop@linux1 hadoop]$ chmod +x start-cluster.sh 

在使用ssh命令的时候出现了找不到JAVA_HOME的问题 通过ssh登陆之后会发现找不到JAVA_HOME ,我的JAVA_HOME是定义在/etc/profile 里面的。 研究后发现远程登录和直接登录执行的文件是不一样的: /etc/profile: 当用户登录时,该文件被执行. /etc/bashrc: 当bash shell被打开时,该文件被执行. ssh作为远程登录的方式进入,当然就无法触发/etc/profile的执行,所以会发生找不到JAVA_HOME的问题,所以需要将java的配置信息配置到bashrc的文件中去,配置步骤如下所示: .bashrc是一个隐藏的文件,要打开并修改该文件需要:

(1) 命令 vim ~/.bashrc 进入到文件;

(2) 直接按 i 键可以对文件进行修改, Esc + :+ wq退出并保存修改之后的文件

(3) 命令 :source ~/.bashrc 更新 .bashrc

对该文件进行修改保存后,在执行相关的操作,就不会发生如上的问题啦。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
谷歌宣布支持使用Rust开发Chromium
谷歌计划在其开源浏览器项目 Chromium 中支持使用第三方 Rust 库,这是对 Rust 编程语言及其安全特性的一次重大认可。
深度学习与Python
2023/03/01
6700
谷歌宣布支持使用Rust开发Chromium
【2023 Week-2】Rust视界周刊 | Google 官宣在 Chromium 项目中支持使用 Rust
Rust 1.66.1 修复了 Cargo 在使用 SSH 克隆依赖项或注册表索引时不验证 SSH 主机密钥的问题。此安全漏洞被跟踪为 CVE-2022-46176[1]。所有包含 1.66.1 之前的 Cargo 的 Rust 版本都容易受到攻击。
张汉东
2023/03/06
1.6K0
【2023 Week-2】Rust视界周刊   | Google 官宣在 Chromium 项目中支持使用 Rust
谷歌“宠爱”升级,Rust 大步跨入 Android 平台
作者|褚杏娟、万佳、王强 “很高兴看到 Rust 在越来越多的项目中发挥作用。” 近日,谷歌宣布 Android 开源项目(AOSP)现已支持使用 Rust 编程语言来开发 OS。这一举动让正火的 Rust 语言热度再次上涨。 要用 Rust 解决什么问题? 目前,Android 项目主要用两种语言构建。Java(以及最近出现的与 jvm 兼容的语言,如 Kotlin) 已被用于操作系统的上层部分,如 UI 部分;在内核、驱动程序等 OS 的基础层面,则通常用 C 编写,有时也会使用 C++。 为了更适合
深度学习与Python
2023/04/01
1.8K0
谷歌“宠爱”升级,Rust 大步跨入 Android 平台
Android 平台基础支持转向 Rust(zdnet)
2021 年 4 月 7 日,zdnet 发布文章:Android 平台基础支持转向 Rust。2021 年 4 月 6 日,谷歌宣布,Rust 可以在 Android 开源项目内部使用。
niqin.com
2022/06/30
4790
Android 平台基础支持转向 Rust(zdnet)
【五万言】Rust 2022 生态版图调研报告(上)
去年我写了 2021 年 Rust 生态版图调研报告 | 星辰大海(上)[1] 和 (下)[2] ,大家能看到 Rust 在各个行业领域中开始暂露头角。2022 年,在政治动荡、经济下行和疫情肆虐的世界大环境下,Rust 却迎来了高质量的发展。2022 年,我愿称之为 Rust 发展元年。
张汉东
2023/03/06
1.2K0
【五万言】Rust 2022 生态版图调研报告(上)
Android 团队宣布 Android 开源项目(AOSP),已支持 Rust 语言来开发 Android 系统本身
Android 平台中,代码的正确性,是每个版本 Android 系统的安全性、稳定性,及其质量的重中之重。C/C++ 语言中的内存安全漏洞,仍然是最难解决的错误来源。我们投入了大量的精力和资源来检测、修复和缓解这类 bug,这些努力有效地防止了大量 bug 进入 Android 系统。然而,尽管做出了这些努力,内存安全漏洞仍然是稳定性问题的主要原因。并且,在 Android 系统高严重性的安全漏洞中,其始终占据大约 70% 的比例。
niqin.com
2022/06/30
1.8K0
Android 团队宣布 Android 开源项目(AOSP),已支持 Rust 语言来开发 Android 系统本身
抛弃 C / C++!微软官宣:请用 Rust 编写 Windows 驱动!
在这众多大厂之中,微软对于 Rust 的重视与支持力度也一直未减。继 5 月效仿 Linux 用 Rust 重写部分 Windows 内核后,近来微软在拥抱 Rust 上又进了一步:微软在 GitHub 中发布了一系列开发工具包,让开发者可以使用 Rust 语言来编写 Windows 驱动程序。
C语言与CPP编程
2023/10/09
7200
抛弃 C / C++!微软官宣:请用 Rust 编写 Windows 驱动!
RUST 编程语言使构建更安全的软件变得更加容易。RUST ALL THE THINGS 需要什么?
给各位分享一篇关于GitHub上的rust风格的开发人员如何可以使开发更加安全的博客,我已经帮大家翻译了
人不走空
2024/05/11
1210
RUST 编程语言使构建更安全的软件变得更加容易。RUST ALL THE THINGS 需要什么?
「快讯」Android 加入了对 Rust 语言的支持
Android 平台中代码的正确性是每一个 Android 版本安全性、稳定性和质量的重中之重。C 和 C++ 中的内存安全漏洞仍然是最难解决的不正确性原因。我们投入了大量的人力和物力来检测、修复和缓解这类 bug,这些努力有效 ¢¢ 地防止了大量的 bug 混入 Android 发行版中。然而,尽管做出了这些努力,内存安全漏洞仍然是造成稳定性问题的首要因素,并且一直占到 Android 高严重性安全漏洞的 70% 左右。
用户1250838
2021/05/31
9590
「快讯」Android 加入了对 Rust 语言的支持
呼吁停用 C/C++,微软 Azure CTO 更青睐 Rust
9 月 20 日,微软 Azure 现任 CTO、Sysinternals 主要开发者 Mark Russinovich 在其个人推特账号发表动态称是时候停止使用 C/C++启动任何新项目,并建议在需要使用 noc-GC 语言的场景下使用 Rust 编程语言。 Rust 由 Graydon Hoare 设计,而后在 Mozilla 成型,Rust 设计时借鉴了许多 C++ 的设计思想如并发特性等,也以高性能著称,还实现了内存安全。2015 年 Rust 作为 C/C++ 的替代品开始引起人们的关注,正因如此
IT大咖说
2022/09/27
7330
呼吁停用 C/C++,微软 Azure CTO 更青睐 Rust
Rust 语言风靡学术界
AWS 将 Rust 编译器团队负责人收入麾下的新闻让开发者们再次聚焦于这门兼具安全性与高性能的编程语言。近日,著名科学期刊 Nature 刊登了一篇文章,表明 Rust 语言也正在成为学术界最受欢迎的编程语言之一。
章鱼猫先生
2021/10/15
6040
Rust 语言风靡学术界
Mozilla将会在Firefox 48版本中引入Rust Component
Mozilla近日宣布,将会在Firefox的正式版中首次引入Rust代码。而该版本(Firefox 48)将于在2016年8月2日发布。 Rust是一种可以更为安全地替代C++的编程语言,因为其独特架构架构,能降低基于Rust的应用中内存泄漏的风险。 内存泄漏问题(例如释放后重利用、缓存溢出等)是最近安全漏洞的根源。不止是Adobe Flash Player,Firefox和Chrome等浏览器也深受其害。 因为自身特性的需要,七年前Mozilla决定赞助这个项目,并最终将其作为自己的编程语言。 Fire
CSDN技术头条
2018/02/12
8540
造就 Rust 的无名英雄
看到社区有朋友对 Brain 这篇文章已经做了翻译,但是出于对 Rust 发展背后付出的无名英雄的敬意,我又认真翻译了一遍。这篇翻译得到了 Brian 本人的授权。
张汉东
2021/05/11
7070
造就 Rust 的无名英雄
什么是Rust语言?探索安全系统编程的未来
在本篇博客中,我们将全面深入探讨Rust语言——一种革命性的系统编程语言,旨在提供内存安全、并发性支持和高性能操作。通过详尽的历史背景、发展史、技术意义及其解决的核心问题分析,本文将带您详细了解Rust语言的优势和应用场景。文章特别适合编程新手和资深开发者阅读,涵盖了丰富的代码示例和操作命令,助您从理论到实践全方位掌握Rust。关键词包括:Rust编程、系统编程、内存安全、并发编程、Rust历史和发展、Rust应用实例。
猫头虎
2024/04/20
6870
【Rust日报】2022-02-12 Amazon:Rust的可持续性
Rust 是一种作为开源项目实现的编程语言。它结合了 C 等系统编程语言的性能和资源效率与 Java 等语言的内存安全性。Rust 于 2010 年作为 Mozilla 的一个研究项目开始,Rust 1.0 于 2015 年推出。2020 年,对 Rust 的支持从 Mozilla 转移到 Rust 基金会,这是一个由 Amazon Web Services, Inc (AWS) 、谷歌、华为、微软和 Mozilla 合作创建的非营利组织。基金会的使命是支持 Rust 的成长和创新,成员公司从创始的 5 家公司发展到第一年的 27 家公司。
MikeLoveRust
2022/03/24
2970
Facebook 是如何引入并使用 Rust 的?
Facebook 正在拥抱当今最受欢迎 、发展最快的一门编程语言——Rust。当前,Facebook 除了为公司内部的 Rust 团队引进人才,还正式加入了 Rust 基金会,与 Mozilla(Rust 的创造者)、AWS、微软和谷歌等其他成员一起,致力于维持和发展 Rust 的开源生态系统。
MikeLoveRust
2021/07/16
8120
Facebook 是如何引入并使用 Rust 的?
C和C++不安全?谷歌宣布Android加入对Rust语言支持
机器之心报道 机器之心编辑部 Rust 越来越流行,开始跨入 Android 领域。谷歌宣布 AOSP (Android Open Source Project) 现已支持使用 Rust 开发 Android 操作系统。 Android 系统涉及很多组件,开发者会根据正在开发的 Android 部分而选择不同的编程语言。对于应用开发者来说,Java 和 Kotlin 是比较流行的选择;而对于从事操作系统以及内部底层的开发人员来说,C 和 C++ 是比较好的选择。 近日,谷歌为操作系统开发者增加了第 3 个
机器之心
2023/03/29
6270
C和C++不安全?谷歌宣布Android加入对Rust语言支持
Docker 之父:Go、Rust 为什么会成为云原生的主导语言?
作者 | Justin Cormack 译者 | 核子可乐 审校 | 褚杏娟 Docker 公司 CTO Justin Cormack 在 InfoQ 的会议上与 Docker 公司创始人、Docker 之父 Solomon Hykes、Vitess 联合创始人 Sougoumarane 、Krustlet 主要作者 Matt Butcher 等人一起探讨了等各大云原生项目在最开始为何选择了 Go 和 Rust 语言,并对云原生项目如何选择编程语言提出了几点建议。我们将本次大咖们的对话进行了编译
深度学习与Python
2023/03/29
7310
Docker 之父:Go、Rust 为什么会成为云原生的主导语言?
Android 支持 Rust 编程语言,以避免内存缺陷(thehackernews)
谷歌周二(2021-04-06)宣布,其开源版本的 Android 操作系统,将增加对 Rust 编程语言的支持,以防止内存安全漏洞。
niqin.com
2022/06/30
1.5K0
Android 支持 Rust 编程语言,以避免内存缺陷(thehackernews)
Linux 基金会要接管 Chromium 了吗?
纵观浏览器的发展历程,有三个重要节点。第一个节点是网景公司成立,发布第一款商用浏览器 Netscape Navigator,拉开互联网走向大众的序幕。第二个节点是微软 IE 击败 Netscape Navigator,成为浏览器的新霸主,然后不思进取,拖慢了 Web 发展的进程。第三个节点是谷歌 Chrome 浏览器崛起,甚至微软也不得不屈服,放弃自家的浏览器引擎,基于 Chromium,开发新一代浏览器 Edge。
云水木石
2025/01/23
460
Linux 基金会要接管 Chromium 了吗?
推荐阅读
相关推荐
谷歌宣布支持使用Rust开发Chromium
更多 >
目录
  • 1 环境准备
  • 2 集群规划
  • 3 安装Zookeeper集群
  • 安装详解参考 : Zookeeper集群搭建 https://www.linuxidc.com/Linux/2020-03/162767.htm
  • 4 配置Hadoop
  • 5 启动集群
  • 四 Hadoop集群群启脚本
    • 1启动服务
    • 2脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档