首页 文章 精选 留言 我的

精选列表

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

2025 回望“开源”:从人类群智,到 AI 智能

"开源"不仅仅意味着开放源代码,更是一种协作、共享与透明的文化理念。它让个人智慧汇聚成群体智慧,也为人工智能的快速进化提供了强大加速器。 在20世纪80—90年代,"自由软件""共享软件"等思想逐步演化,直到1998年"Open Source"概念正式提出,才被全球开发者普遍接受。开源精神的内核是"开放、协作、共享",它不仅推动了软件技术的民主化,也塑造了一个跨越国界的创新共同体。 早在1948年,阿兰·图灵便提出:当"人工神经元"的数量足够多时,智能将会自发涌现。1950年,他又提出了著名的"图灵测试",让人类第一次正视"机器能否思考"这一问题。 1986年,《自然》杂志刊登了神经网络学习中的"权重调整"研究,这些实验方法与代码在学界被主动共享。那时"开源"一词尚未固化,但科学共享的精神与后来的开源理念天然契合。 从GNU的诞生,到Linux的全球协作;从深度学习的兴起,到GPT的爆发——开源与AI的故事,既是技术的演进史,也是人类集体智慧如何驱动机器智能的缩影。 梳理近几年全球范围内开源圈的重大事件,你会发现,虽然开源在其它软件领域依然存在影响力,但在技术、产业与舆论关注上,特别是自 2023 年 Llama 开始,AI 大模型已成为开源最集中的焦点,标志着开源与智能技术深度融合的新纪元。 基于这一观察,开源中国特别策划了 GOTC 2025 全球开源技术峰会 线上特别展览。 此次线上展览包含两部分,通过“ 开源 x AI 长廊(仅支持桌面端浏览)”与“ 中国开源项目大赏 2025”,我们希望为开发者展示“用开源的软件与硬件,拼出人类集体智能从 GNU 到 GPT 的 40 年跃迁”,同时也给予中国开源开发者秀出开源活力的舞台。 我们将这 40 年历程划分为 3 个阶段。 开源火种(1983-1997) 开源的火种源自对自由、共享与协作的追求。1983 年,GNU 计划的提出拉开了自由软件运动的序幕,它不仅挑战了专有软件的垄断,也激发了全球开发者对技术民主化的向往。从自由软件的理念到 Linux 的全球协作,这一阶段记录了开源精神如何从萌芽走向广泛实践,也奠定了后续技术与社区创新的基础。 开源吞噬软件(1998-2022) 自 1998 年开放源代码促进会(OSI)成立以来,开源开始全面重塑软件生态。从服务器到桌面,从数据库到浏览器,从 Linux 到 Apache、MySQL、PostgreSQL,再到 Kubernetes、Docker、云原生基础设施,开源的触角延伸到软件开发的每一个环节。软件不再是单一公司的专属资产,而成为全球协作与共享的产物。开源模式不仅加速了技术创新,也重构了产业格局,呈现出“吞噬传统软件”的强大趋势。 开源吞噬 AI(2023至今) 人工智能领域的开源实践远在大模型出现之前就已萌芽:从 1990 年代学术界共享神经网络实验代码,到 2000 年代 Torch、Theano 等深度学习框架开源,再到 2015 年 TensorFlow 和 Keras 的出现,开源始终为 AI 研究提供基础工具和协作平台。然而,自 2017 年 Transformer 架构问世以来,大模型的出现使开源成为 AI 发展的最核心动力。开源框架、模型权重、训练代码、数据集和工具的共享,使得智能从实验室快速走向全球应用,同时重塑研究生态和产业格局。虽然开源在其它软件领域依然存在影响力,但在技术、产业与舆论关注上,特别是自 2023 年 Llama 开始,AI 大模型已成为开源最集中的焦点,标志着开源与智能技术深度融合的新纪元。 此次线上展览中, 中国开源项目大赏 2025 板块,则汇聚了一批活跃且优秀的开源项目,为中国开源开发者秀出自己的开源活力提供了一个舞台。 完整内容请查看:GOTC 2025 全球开源技术峰会 线上特别展览 。 也欢迎关注 GOTC 2025 全球开源技术峰会,此次会议,将通过行业展览、主题发言、圆桌讨论等形式来诠释此次大会主题 ——“万源共振,智构未来”。会议聚焦 Agentic AI、大模型时代的“开源”、AI+软件工程、软件基础设施智能化、AI Coding、具身智能等热门话题,探讨开源未来,助力开源发展。 GOTC 2025 官网: https://gotc.oschina.net

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

centos7搭建mongodb3.4.6集群

0、需要环境 安装包:mongodb-linux-x86_64-3.4.6.tgz 安装路径:/usr/mongodb 服务器: 192.168.177.131/132/133 mongos 20000 config server 21000 shard1 20001 shard2 20002 shard3 20003 1、解压到 /usr/local 解压后重命名为mongodb,方便以后操作 2、创建目录 mkdir -p mongodb/mongos/log mkdir -p mongodb/config-server/data mkdir -p mongodb/config-server/log mkdir -p mongodb/shard1/data mkdir -p mongodb/shard1/log mkdir -p mongodb/shard2/data mkdir -p mongodb/shard2/log mkdir -p mongodb/shard3/data mkdir -p mongodb/shard3/log 其中data目录存放数据,log目录存放日志 mongos服务不存放数据,所以不需要数据目录,只需要log目录 3、配置服务器 config server vim /usr/local/mongodb/config-server.conf systemLog: destination: file path: "/usr/local/mongodb/config-server/log/config-server.log" logAppend: true storage: dbPath: "/usr/local/mongodb/config-server/data" journal: enabled: true directoryPerDB: true net: port: 21000 processManagement: fork: true pidFilePath: "/usr/local/mongodb/config-server/config-server.pid" sharding: clusterRole: configsvr replication: replSetName: configServer 冒号(:)和配置之间需要有空格 启动三台服务器 cd mongodb bin/mongod -f config-server.conf 登录任意一台配置服务器,初始化 #连接 mongodb/bin/mongo --port 21000 config = { _id : "configServer", members : [ {_id : 0, host : "192.168.177.131:21000" }, {_id : 1, host : "192.168.177.132:21000" }, {_id : 2, host : "192.168.177.133:21000" } ] } #初始化副本集 rs.initiate(config); #查看分区状态 rs.status(); 4、分片副本集 shard vim /usr/local/mongodb/shard1.conf systemLog: destination: file path: "/usr/local/mongodb/shard1/log/shard1.log" logAppend: true storage: dbPath: "/usr/local/mongodb/shard1/data" journal: enabled: true directoryPerDB: true net: port: 20001 processManagement: fork: true pidFilePath: "/usr/local/mongodb/shard1/shard1.pid" sharding: clusterRole: shardsvr replication: replSetName: shard1 启动三台服务器: cd mongodb bin/mongod -f shard1.conf 登陆任意一台服务器,初始化副本集 mongo --port 20001 #使用admin数据库 use admin config = { _id : "shard1", members : [ {_id : 0, host : "192.168.177.131:20001" }, {_id : 1, host : "192.168.177.132:20001" }, {_id : 2, host : "192.168.177.133:20001" } ] } #初始化副本集 rs.initiate(config); #查看分区状态 rs.status(); 配置第二,三个分片副本集,方法同第六步。 注意端口改为20002 20003 systemLog: destination: file path: "/usr/local/mongodb/shard2/log/shard2.log" logAppend: true storage: dbPath: "/usr/local/mongodb/shard2/data" journal: enabled: true directoryPerDB: true net: port: 20002 processManagement: fork: true pidFilePath: "/usr/local/mongodb/shard2/shard2.pid" sharding: clusterRole: shardsvr replication: replSetName: shard2 systemLog: destination: file path: "/usr/local/mongodb/shard3/log/shard3.log" logAppend: true storage: dbPath: "/usr/local/mongodb/shard3/data" journal: enabled: true directoryPerDB: true net: port: 20003 processManagement: fork: true pidFilePath: "/usr/local/mongodb/shard3/shard3.pid" sharding: clusterRole: shardsvr replication: replSetName: shard3 启动三台服务器: cd mongodb bin/mongod -f shard2.conf bin/mongod -f shard3.conf 登陆任意一台服务器,初始化副本集 mongo --port 20002 mongo --port 20003 #使用admin数据库 use admin config = { _id : "shard2", members : [ {_id : 0, host : "192.168.177.131:20002" }, {_id : 1, host : "192.168.177.132:20002" }, {_id : 2, host : "192.168.177.133:20002" } ] } config = { _id : "shard3", members : [ {_id : 0, host : "192.168.177.131:20003" }, {_id : 1, host : "192.168.177.132:20003" }, {_id : 2, host : "192.168.177.133:20003" } ] } #初始化副本集 rs.initiate(config); #查看分区状态 rs.status(); 5、路由服务器 mongos vim /usr/local/mongodb/mongos.conf systemLog: destination: file path: "/usr/local/mongodb/mongos/log/mongos.log" logAppend: true net: port: 20000 bindIp: 0.0.0.0 processManagement: fork: true pidFilePath: "/usr/local/mongodb/mongos/mongos.pid" sharding: configDB: configReplSet/192.168.177.131:21000,192.168.177.132:21000,192.168.177.133:21000 启动三台服务器: cd mongodb bin/mongos -f mongos.conf 注意此处启动使用的是mongos 6、启用分片 目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。 #登陆任意一台mongos mongo --port 20000 #使用admin数据库 use admin #串联路由服务器与分配副本集 sh.addShard("shard1/192.168.177.131:20001,192.168.177.132:20001,192.168.177.133:20001"); sh.addShard("shard2/192.168.177.131:20002,192.168.177.132:20002,192.168.177.133:20002"); sh.addShard("shard3/192.168.177.131:20003,192.168.177.132:20003,192.168.177.133:20003"); #查看集群状态 sh.status() 至此集群已经搭建完成。 7、测试 连接mongos bin/mongo --port 20000 首先启动某个Database(数据库)的Sharding(分片)功能 mongos> sh.enableSharding("test") 对testDB数据库里的collection logs进行shard,shard key是sn字段,shard策略是hashed。使用hashed策略旨在让mongodb将数据均匀分布,如果使用{"sn",1}进行range shard,数据会按照大小顺序分布,就会出现某个shard数据很多,其他的很少的现象。 mongos> sh.shardCollection("testDB.logs", { "sn" : "hashed" } ) 查看shard信息 mongos> sh.status() 添加测试数据 mongos> use testDB mongos> for(var i=1; i<=100000; i++){db.log.insert({sn:i, msg:'Message ' + i});} 等待一段时间 查看log的shard信息 mongos> db.logs.stats() 可以看到三个分片几乎平均的保存了数据。 33143 33755 33102 { "sharded" : true, "capped" : false, "ns" : "testDB.logs", "count" : 100000, "size" : 5688895, "storageSize" : 1773568, "totalIndexSize" : 3944448, "indexSizes" : { "_id_" : 983040, "sn_hashed" : 2961408 }, "avgObjSize" : 56, "nindexes" : 2, "nchunks" : 6, "shards" : { "shard1" : { "ns" : "testDB.logs", "size" : 1920351, "count" : 33755, "avgObjSize" : 56, "storageSize" : 634880, "capped" : false, ... "ok" : 1 }, "shard2" : { "ns" : "testDB.logs", "size" : 1885397, "count" : 33143, "avgObjSize" : 56, "storageSize" : 544768, "capped" : false, ... "ok" : 1 }, "shard3" : { "ns" : "testDB.logs", "size" : 1883147, "count" : 33102, "avgObjSize" : 56, "storageSize" : 593920, "capped" : false, ... "ok" : 1 } }, "ok" : 1 } 8、后期运维 mongodb的启动顺序是,先启动配置服务器,在启动分片,最后启动mongos. /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/config-server.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard1.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard2.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard3.conf /usr/local/mongodb/bin/mongos -f /usr/local/mongodb/mongos.conf 关闭时,直接killall杀掉所有进程 killall mongod killall mongos 没有killall命令的使用<yum install psmisc>安装

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

CentOS7安装openshift3.9集群

CentOS7安装openshift集群 OpenShift官网:https://www.openshift.com/ Github:https://github.com/openshift/origin 开源容器应用程序平台,Origin是支持OpenShift的上游社区项目。围绕Docker容器打包和Kubernetes容器集群管理的核心构建,Origin还增加了应用程序生命周期管理功能和DevOps工具。Origin提供了一个完整的开源容器应用程序平台。 安装OpenShift Origin,它是Red Hat OpenShift的开源版本 环境CentOS7: Hostname Role IP master.aniu.so Master, etcd, and node 192.168.0.111 node1.aniu.so Computer Node 192.168.0.114 node2.aniu.so Computer Node 192.168.0.115 集群配置参考:https://docs.openshift.org/latest/install_config/install/planning.html 配置群集的一些系统要求 主节点至少16G的内存 在所有节点上,需要物理卷上的可用空间才能为Docker Direct LVM创建新的卷组,var目录至少40G,不然检测通不过 主机设置 安装依赖包,关闭防火墙,禁用selinux,添加sysctl net.ipv4.ip_forward=1,所有节点均执行 详情见:https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md#prerequisites参考:https://docs.openshift.org/latest/install_config/install/host_preparation.html#install-config-install-host-preparation yum install wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct -y yum install ansible pyOpenSSL -y 在所有节点上,安装OpenShift Origin 3.9存储库和Docker。 接下来,为Docker Direct LVM创建一个卷组,以便像下面那样设置LVM Thinpool。 # 以master为例,虽有节点都必须执行 [root@master ~]# yum -y install centos-release-openshift-origin37 docker [root@master ~]# vgcreate centos /dev/sdb1 #笔者vgname为centos Volume group "centos" successfully created [root@master ~]# echo VG=centos >> /etc/sysconfig/docker-storage-setup [root@master ~]# systemctl start docker [root@master ~]# systemctl enable docker 设置三个节点master节点与其他节点ssh免密。方便执行ansible-playbook # 在master节点上执行: [root@master ~]# ssh-keygen -t rsa # 创建免密设置 [root@master ~]# cat /etc/hosts # 参考笔者hosts,同步hosts到node1,node2 127.0.0.1 localhost localhost.localdomain pinpoint ########################################### ## openshift 192.168.0.113 master.aniu.so 192.168.0.114 node1.aniu.so 192.168.0.115 node2.aniu.so [root@master ~]# ssh-copy-id master.aniu.so /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system. (if you think this is a mistake, you may want to use -f option) [root@master ~]# ssh-copy-id node1.aniu.so /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system. (if you think this is a mistake, you may want to use -f option) [root@master ~]# ssh-copy-id node2.aniu.so /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system. (if you think this is a mistake, you may want to use -f option) 在主节点上,使用root登录并运行Ansible Playbook以设置OpenShift群集。 参考:https://docs.openshift.org/latest/install_config/install/stand_alone_registry.html yum -y install atomic-openshift-utils 配置ansible的hosts如下: [root@master ~]# cat /etc/ansible/hosts # add follows to the end [OSEv3:children] masters nodes etcd [OSEv3:vars] # admin user created in previous section ansible_ssh_user=root openshift_deployment_type=origin # use HTPasswd for authentication openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/.htpasswd'}] openshift_master_default_subdomain=apps.test.aniu.so # allow unencrypted connection within cluster openshift_docker_insecure_registries=172.30.0.0/16 [masters] master.aniu.so openshift_schedulable=true containerized=false [etcd] master.aniu.so [nodes] # set labels [region: ***, zone: ***](any name you like) master.aniu.so openshift_node_labels="{'region': 'infra', 'zone': 'default'}" node1.aniu.so openshift_node_labels="{'region': 'primary', 'zone': 'east'}" openshift_schedulable=true node2.aniu.so openshift_node_labels="{'region': 'primary', 'zone': 'west'}" openshift_schedulable=true # 运行deploy_cluster.yml手册以启动安装: ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/deploy_cluster.yml # 此步骤会很慢,笔者大概花了2个多小时。。。 正常执行完成查看状态 - 可能会出现的报错: Error from server (Forbidden): nodes is forbidden: User "system:anonymous" cannot list nodes at the cluster scope: User "system:anonymous" cannot list all nodes in the cluster 报错解决: [root@master ~]# oc login -u system:admin # 使用admin登录进行查看 Logged into "https://master.aniu.so:8443" as "system:admin" using existing credentials. You have access to the following projects and can switch between them with 'oc project <projectname>': * default kube-public kube-system logging management-infra openshift openshift-infra openshift-node openshift-web-console Using project "default". [root@master ~]# oc get nodes NAME STATUS ROLES AGE VERSION master.aniu.so Ready master 4h v1.9.1+a0ce1bc657 node1.aniu.so Ready <none> 4h v1.9.1+a0ce1bc657 node2.aniu.so Ready <none> 4h v1.9.1+a0ce1bc657 [root@master ~]# oc get nodes --show-labels=true NAME STATUS ROLES AGE VERSION LABELS master.aniu.so Ready master 4h v1.9.1+a0ce1bc657 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=master.aniu.so,node-role.kubernetes.io/master=true,region=infra,zone=default node1.aniu.so Ready <none> 4h v1.9.1+a0ce1bc657 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node1.aniu.so,region=primary,zone=east node2.aniu.so Ready <none> 4h v1.9.1+a0ce1bc657 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node2.aniu.so,region=primary,zone=west 创建一个新用户用来登录openshift 在master节点上创建用户: [root@master ~]# htpasswd /etc/origin/master/.htpasswd aniu # 用任何操作系统用户登录,然后登录OpenShift群集,只需添加一个HTPasswd用户 [root@master ~]# oc login Authentication required for https://master.aniu.so:8443 (openshift) Username: aniu Password: Login successful. You don't have any projects. You can try to create a new project, by running oc new-project <projectname> [root@master ~]# oc whoami aniu [root@master ~]# oc logout Logged "aniu" out on "https://master.aniu.so:8443" 可以从任何使用Web浏览器的客户端访问管理控制台。

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

hadoop1.2.1集群安装过程详解

hadoop集群安装过程详解 一,环境: 1,主机规划: 集群中包括4个节点:1个Master,2个Salve,节点之间局域网连接,可以相互ping通。 机器名称 IP地址 hadoop01 192.168.0.31 hadoop02 192.168.0.32 hadoop03 192.168.0.33 三个节点上均是CentOS6.3x86_64系统,并且有一个相同的用户hadoop。hadoop01做为master配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;另外两台配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。安装目录统一为/usr/local下 2,软件版本: hadoop-1.2.1.tar.gz,jdk-7u25-linux-x64.rpm 二,准备工作,三台机器都需要做 ,将三台机器selinux,iptables停用。 1,安装jdk [root@hadoop01 ~]# rpm -ivh jdk-7u25-linux-x64.rpm [root@hadoop01 ~]# cd /usr/java/ [root@hadoop01 java]# ls default jdk1.7.0_25 latest [root@hadoop01 java]# ln -s jdk1.7.0_25 jdk [root@hadoop01 java]# vim /etc/profile [root@hadoop01 java]# source /etc/profile让其java命令立即生效 [root@hadoop01 java]# java执行java命令,如果能正常执行就表示java安装完成 2,添加一个hadoop用户,用来运行hadoop集群 3,做三台机器之间做双机互信,原因master通过远程启动datanode进程和tasktracker进程,如果不做双机互信,会导致每次启动集群服务都会需要密码 [root@hadoop01 ~]# vim /etc/hosts 将hosts文件分别复制到另外两台。 4,切换到hadoop用户,对其用做双机互信,先在三台机器先执行ssh-keygen生成公钥与私钥。 将公钥复制到别的机器,需要对hadoop01,hadoop03,都做相同的动作。 [hadoop@hadoop01 ~]$ ssh-copy-id -i hadoop03 [hadoop@hadoop01~]$ ssh-copy-id -i hadoop01 5,同步时间,三台机器启用ntpd服务,另外两台执行相同的操作 [root@hadoop01 ~]# crontab -e */5 * * * * /usr/sbin/ntpdate ntp.api.bz &> /dev/null 三,配置master,也就hadoop01 [root@hadoop01 ~]# tar xf hadoop-1.2.1.tar.gz -C /usr/local/ [root@hadoop01~]# chown -R hadoop:hadoop/usr/local/hadoop-1.2.1 [root@hadoop01~]#su - hadoop [hadoop@hadoop01 ~]$ cd /usr/local/hadoop-1.2.1/ (1)Hadoop的配置文件都存储在conf下,配置文件解释 hadoop-env.sh:用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等; core-site.xml:用于定义系统级别的参数,它作用于全部进程及客户端,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置; hdfs-site.xml:HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置; mapred-site.xml:mapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置; masters:hadoop的master,secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode; slaves:Hadoop集群的slave(datanode)和tasktracker的主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程; Hadoop-metrics2.properties:控制metrics在hadoop上如何发布属性 Log4j.properties:系统日志文件、namenode审计日志、tarsktracker子进程的任务日志属性 (2)修改hadoop-env.sh [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/hadoop-env.sh (3)修改core-site.xml [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/core-site.xml hadoop.tmp.dir属性用于定义Hadoop的临时目录,其默认为/tmp/hadoop-${username}。HDFS进程的许多目录默认都在此目录中,/hadoop/tmp目录,需要注意的是,要保证运行Hadoop进程的用户对其具有全部访问权限。 fs.default.name属性用于定义HDFS的名称节点和其默认的文件系统,其值是一个URI,即NameNode的RPC服务器监听的地址(可以是主机名)和端口(默认为8020)。其默认值为file:///,即本地文件系统。 (4)修改hdfs-site.xml文件 [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/hdfs-site.xml dfs.name.dir属性定义的HDFS元数据持久存储路径,默认为${hadoop.tmp.dir}/dfs/name dfs.replication属性定义保存副本的数量,默认是保存3份,由于这里只有两台slave。所以设置2。 (5)修改mapred-site.xml文件 [hadoop@hadoop01 hadoop-1.2.1]$vim conf/mapred-site.xml (6)编辑masters文件 masters用于指定,辅助名称节点(SecondaryNameNode)的主机名或主机地址 [hadoop@hadoop01 hadoop-1.2.1]$vim conf/masters (7)编辑slaves文件,这个文件只需在master主机上编辑就行 用于指定各从服务器(TaskTracker或DataNode)的主机名或主机地址 在三台机器上分别创建两个目录: [root@hadoop01 local]# mkdir -p /hadoop/data [root@hadoop01 local]# mkdir -p /hadoop/tmp [root@hadoop01 local]# chown -R hadoop:hadoop /hadoop/ [root@hadoop02local]# mkdir -p /hadoop/data [root@hadoop02local]# mkdir -p /hadoop/tmp [root@hadoop02local]# chown -R hadoop:hadoop /hadoop/ [root@hadoop03local]# mkdir -p /hadoop/data [root@hadoop03local]# mkdir -p /hadoop/tmp [root@hadoop03local]# chown -R hadoop:hadoop /hadoop/ (8)配置slave:将配置的hadoop整个目录复制到hadoop02,haoop03 [root@hadoop01 ~]# scp -rp /usr/local/hadoop-1.2.1 hadoop02:/usr/local/ [root@hadoop01 ~]# scp -rp /usr/local/hadoop-1.2.1 hadoop03:/usr/local/ 修改权限: [root@hadoop02 ~]# chown -R hadoop:hadoop /usr/local/hadoop-1.2.1/ [root@hadoop03~]# chown -R hadoop:hadoop /usr/local/hadoop-1.2.1/ 四,启动集群: 1、格式化名称节点 与普通文件系统一样,HDFS文件系统必须要先格式化,创建元数据数据结构以后才能使用。 [hadoop@hadoop01 hadoop-1.2.1]$ bin/hadoop namenode -format 如果格式化出错,一般会提示错误,就像下面,已经在提示哪个文件,第几行,根据提示检查即可。 [hadoop@hadoop01 ~]$bin/start-all.sh [hadoop@hadoop01 ~]$ jps查看进程是否起来。secondarynamenode,nomenode,jobtracker三个进程必须都有,才正常 8549 SecondaryNameNode 8409 NameNode 8611 JobTracker 8986 Jps 或者这种方式查看集群是否正常 [hadoop@hadoop01 hadoop-1.2.1]$ bin/hadoop dfsadmin -report Safe mode is ON Configured Capacity: 37073182720 (34.53 GB) Present Capacity: 32421658624 (30.2 GB) DFS Remaining: 32421576704 (30.19 GB) DFS Used: 81920 (80 KB) DFS Used%: 0% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 ------------------------------------------------ Datanodes available: 2 (2 total, 0 dead) Name: 192.168.0.33:50010 Decommission Status : Normal Configured Capacity: 18536591360 (17.26 GB) DFS Used: 40960 (40 KB) Non DFS Used: 2325061632 (2.17 GB) DFS Remaining: 16211488768(15.1 GB) DFS Used%: 0% DFS Remaining%: 87.46% Last contact: Sat Aug 31 22:25:13 CST 2013 Name: 192.168.0.32:50010 Decommission Status : Normal Configured Capacity: 18536591360 (17.26 GB) DFS Used: 40960 (40 KB) Non DFS Used: 2326462464 (2.17 GB) DFS Remaining: 16210087936(15.1 GB) DFS Used%: 0% DFS Remaining%: 87.45% Last contact: Sat Aug 31 22:25:12 CST 2013 四,排错思路 1,是否是hadoop.tmp.dir,dfs.data.dir属性,如果定义在别的目录需要在集群中所有节点都创建,并让hadoop用户能够访问 2,查看进程对应的端口是否有在监听。在上面配置中将namenode的端口定义9000,jobtracker定义成9001 [hadoop@hadoop01 hadoop-1.2.1]$ netstat -tunlp |grep 9000 tcp 0 0 ::ffff:192.168.0.31:9000 :::* LISTEN 22709/java [hadoop@hadoop01 hadoop-1.2.1]$ netstat -tunlp |grep 9001 tcp 0 0 ::ffff:192.168.0.31:9001 :::* LISTEN 22924/java 3,查看日志,哪个服务没起来就查看对应的日志。 4,查看集群中所有节点的时间是不是一致。 5,iptable与selinux是否阻止。 6,/etc/hosts是否正确。 本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/1257862,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

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应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册