阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu14.04安装配置Hadoop2.6.0(完全分布式)与 wordcount实例运行

475次阅读
没有评论

共计 10794 个字符,预计需要花费 27 分钟才能阅读完成。

我的环境是:Ubuntu14.04+Hadoop2.6.0+JDK1.8.0_25

官网 2.6.0 的安装教程:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html

为了方面配置,我在每台机器上都使用了 hadoop 用户来操作,这样做的确够方便。

结点信息:(分布式集群架构:master 为主节点,其余为从节点)

机器名

IP

作用

master

122.205.135.254

NameNode and JobTracker 

slave1

122.205.135.212

DataNode and TaskTracker 

1.JDK 的安装

首先 Hadoop 运行需要 Java 的支持,所以必须在集群中所有的节点安装 JDK,

jdk1.8.0_25 的详细安装见我的另一篇文章:http://www.linuxidc.com/Linux/2015-01/112030.htm 注意:最好将集群中的 JDK 都安装在同一目录下,便于配置。实践中,笔者一般将 JDK 安装在 /usr/java 这个目录,但并不是必须的。

2. 配置 hosts 文件

修改集群中所有机器的 /etc/hosts,打开该文件的命令如下:

sudo gedit /etc/hosts

添加:

122.205.135.254 master

122.205.135.212 slave1

如图所示:

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

注意:这里的 master、slave1、slave2 等等,指的是机器的机器名(使用命令 hostname 可以查看本机的机器名),切记,如果不是机器名的话会出问题的,并且集群中所有结点的机器名都应该不一样。

3.SSH 无密码登录

Hadoop 主从节点无密码登录的安装配置详细见我的另一篇章:点击打开链接

4.Hadoop 的安装与配置

(1). 下载解压 Hadoop 稳定版

我用的是 hadoop-2.6.0,下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/stable/

将下载后的 Hadoop 拷贝到 hadoop 目录下,解压到 master 服务器的 /hadoop 目录下(配置好 master 结点后再将其复制到其它的服务器上,一般来说,群集中所有的 hadoop 都安装在同一目录下):

解压命令如下:

tar xzfv hadoop-2.6.0.tar.gz

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

(2). 配置 Hadoop

1. 修改 hadoop-2.6.0/etc/hadoop/hadoop-env.sh,添加 JDK 支持:

export JAVA_HOME=/usr/java/jdk1.8.0_25

如果不知道你的 JDK 目录,使用命令 echo $JAVA_HOME 查看。

2. 修改 hadoop-2.6.0/etc/hadoop/core-site.xml

注意:必须加在 <configuration></configuration> 节点内

<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.6.0/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

3. 修改 hadoop-2.6.0/etc/hadoop/hdfs-site.xml

<property>
    <name>dfs.name.dir</name>
    <value>/home/hadoop/hadoop-2.6.0/dfs/name</value>
    <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
</property>
 
<property>
    <name>dfs.data.dir</name>
    <value>/home/hadoop/hadoop-2.6.0/dfs/data</value>
    <description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

4. 修改 hadoop-2.6.0/etc/hadoop/mapred-site.xml

<property>
    <name>mapred.job.tracker</name>
    <value>master:9001</value>
    <description>Host or IP and port of JobTracker.</description>
</property>

5. 修改 hadoop-2.6.0/etc/hadoop/masters

列出所有的 master 节点:

master

6. 修改 hadoop-2.6.0/etc/hadoop/slaves

这个是所有 datanode 的机器,例如:

slave1

slave2

slave3

slave4

7. 将 master 结点上配置好的 hadoop 文件夹拷贝到所有的 slave 结点上

以 slave1 为例:命令如下:

scp -r  ~/hadoop-2.6.0 hadoop@slave1:~/

安装完成后,我们要格式化 HDFS 然后启动集群所有节点。

5. 启动 Hadoop

1. 格式化 HDFS 文件系统的 namenode

(这里要进入 hadoop-2.6.0 目录来格式化好些):

cd hadoop-2.6.0  // 进入 hadoop-2.6.0 目录

bin/hdfs namenode -format  // 格式化

2. 启动 Hadoop 集群
启动 hdrs 命令如下:

sbin/start-dfs.sh // 开启进程

成功的话输入 jps 会出现如下界面:

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

补充,关闭 hdfs 集群的命令如下:

sbin/stop-dfs.sh

我们也可以通过网页来看是否正常安装与配置,地址如下:http://master:50070/

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-01/112029p2.htm

6. 实例运行(运行 wordcount 程序)

1. 创建 input 目录

在 Hadoop-2.6.0 目录下创建 input 目录命令如下:

mkdir input

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

2. 在 input 创建 f1、f2 并写内容

命令如下:

cat input/f1 Hello world  bye jj

cat input/f2 Hello world  bye jj

或者手动创建文本文件,并在里面放下英文文章

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

3. 在 hdfs 创建 /porrylee/input 目录

命令如下:

bin/hadoop fs  -mkdir /porrylee

bin/hadoop fs  -mkdir /porrylee/input

4. 将 f1、f2 文件 copy 到 hdfs /porrylee/input 目录

命令如下:

bin/hadoop fs  -put input/ /porrylee

5. 查看 hdfs 上是否有 f1、f2 文件

命令如下:

bin/hadoop fs -ls /porrylee/input/

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

6、执行 wordcount 程序

命令如下:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /porrylee/input/ /output/wordcount3

执行完毕后如下,

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

7. 查看执行结果

命令如下:

hadoop@master:~/hadoop-2.6.0$ bin/hdfs dfs -cat /output/wordcount3/*

执行后,可以看到统计结果

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

7. 附录(核心代码)

package com.felix;
import java.io.IOException;
import java.util.Iterator;
import java.util.StringTokenizer;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reducer;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.mapred.TextInputFormat;
import org.apache.hadoop.mapred.TextOutputFormat;
/**
 *
 * 描述:WordCount explains by Felix
 * @author Hadoop Dev Group
 */
public class WordCount
{
    /**
    * MapReduceBase 类: 实现了 Mapper 和 Reducer 接口的基类(其中的方法只是实现接口,而未作任何事情)
    * Mapper 接口:
    * WritableComparable 接口:实现 WritableComparable 的类可以相互比较。所有被用作 key 的类应该实现此接口。
    * Reporter 则可用于报告整个应用的运行进度,本例中未使用。
    *
    */
    public static class Map extends MapReduceBase implements
            Mapper<LongWritable, Text, Text, IntWritable>
    {
        /**
        * LongWritable, IntWritable, Text 均是 Hadoop 中实现的用于封装 Java 数据类型的类,这些类实现了 WritableComparable 接口,
        * 都能够被串行化从而便于在分布式环境中进行数据交换,你可以将它们分别视为 long,int,String 的替代品。
        */
        private final static IntWritable one = new IntWritable(1);
        private Text word = new Text();
       
        /**
        * Mapper 接口中的 map 方法:
        * void map(K1 key, V1 value, OutputCollector<K2,V2> output, Reporter reporter)
        * 映射一个单个的输入 k / v 对到一个中间的 k / v 对
        * 输出对不需要和输入对是相同的类型,输入对可以映射到 0 个或多个输出对。
        * OutputCollector 接口:收集 Mapper 和 Reducer 输出的 <k,v> 对。
        * OutputCollector 接口的 collect(k, v) 方法: 增加一个 (k,v) 对到 output
        */
        public void map(LongWritable key, Text value,
                OutputCollector<Text, IntWritable> output, Reporter reporter)
                throws IOException
        {
            String line = value.toString();
            StringTokenizer tokenizer = new StringTokenizer(line);
            while (tokenizer.hasMoreTokens())
            {
                word.set(tokenizer.nextToken());
                output.collect(word, one);
            }
        }
    }
    public static class Reduce extends MapReduceBase implements
            Reducer<Text, IntWritable, Text, IntWritable>
    {
        public void reduce(Text key, Iterator<IntWritable> values,
                OutputCollector<Text, IntWritable> output, Reporter reporter)
                throws IOException
        {
            int sum = 0;
            while (values.hasNext())
            {
                sum += values.next().get();
            }
            output.collect(key, new IntWritable(sum));
        }
    }
    public static void main(String[] args) throws Exception
    {
        /**
        * JobConf:map/reduce 的 job 配置类,向 hadoop 框架描述 map-reduce 执行的工作
        * 构造方法:JobConf()、JobConf(Class exampleClass)、JobConf(Configuration conf) 等
        */
        JobConf conf = new JobConf(WordCount.class);
        conf.setJobName(“wordcount”);          // 设置一个用户定义的 job 名称
        conf.setOutputKeyClass(Text.class);    // 为 job 的输出数据设置 Key 类
        conf.setOutputValueClass(IntWritable.class);  // 为 job 输出设置 value 类
        conf.setMapperClass(Map.class);        // 为 job 设置 Mapper 类
        conf.setCombinerClass(Reduce.class);      // 为 job 设置 Combiner 类
        conf.setReducerClass(Reduce.class);        // 为 job 设置 Reduce 类
        conf.setInputFormat(TextInputFormat.class);    // 为 map-reduce 任务设置 InputFormat 实现类
        conf.setOutputFormat(TextOutputFormat.class);  // 为 map-reduce 任务设置 OutputFormat 实现类
        /**
        * InputFormat 描述 map-reduce 中对 job 的输入定义
        * setInputPaths(): 为 map-reduce job 设置路径数组作为输入列表
        * setInputPath():为 map-reduce job 设置路径数组作为输出列表
        */
        FileInputFormat.setInputPaths(conf, new Path(args[0]));
        FileOutputFormat.setOutputPath(conf, new Path(args[1]));
        JobClient.runJob(conf);        // 运行一个 job
    }
}

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

我的环境是:Ubuntu14.04+Hadoop2.6.0+JDK1.8.0_25

官网 2.6.0 的安装教程:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html

为了方面配置,我在每台机器上都使用了 hadoop 用户来操作,这样做的确够方便。

结点信息:(分布式集群架构:master 为主节点,其余为从节点)

机器名

IP

作用

master

122.205.135.254

NameNode and JobTracker 

slave1

122.205.135.212

DataNode and TaskTracker 

1.JDK 的安装

首先 Hadoop 运行需要 Java 的支持,所以必须在集群中所有的节点安装 JDK,

jdk1.8.0_25 的详细安装见我的另一篇文章:http://www.linuxidc.com/Linux/2015-01/112030.htm 注意:最好将集群中的 JDK 都安装在同一目录下,便于配置。实践中,笔者一般将 JDK 安装在 /usr/java 这个目录,但并不是必须的。

2. 配置 hosts 文件

修改集群中所有机器的 /etc/hosts,打开该文件的命令如下:

sudo gedit /etc/hosts

添加:

122.205.135.254 master

122.205.135.212 slave1

如图所示:

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

注意:这里的 master、slave1、slave2 等等,指的是机器的机器名(使用命令 hostname 可以查看本机的机器名),切记,如果不是机器名的话会出问题的,并且集群中所有结点的机器名都应该不一样。

3.SSH 无密码登录

Hadoop 主从节点无密码登录的安装配置详细见我的另一篇章:点击打开链接

4.Hadoop 的安装与配置

(1). 下载解压 Hadoop 稳定版

我用的是 hadoop-2.6.0,下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/stable/

将下载后的 Hadoop 拷贝到 hadoop 目录下,解压到 master 服务器的 /hadoop 目录下(配置好 master 结点后再将其复制到其它的服务器上,一般来说,群集中所有的 hadoop 都安装在同一目录下):

解压命令如下:

tar xzfv hadoop-2.6.0.tar.gz

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

(2). 配置 Hadoop

1. 修改 hadoop-2.6.0/etc/hadoop/hadoop-env.sh,添加 JDK 支持:

export JAVA_HOME=/usr/java/jdk1.8.0_25

如果不知道你的 JDK 目录,使用命令 echo $JAVA_HOME 查看。

2. 修改 hadoop-2.6.0/etc/hadoop/core-site.xml

注意:必须加在 <configuration></configuration> 节点内

<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.6.0/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

3. 修改 hadoop-2.6.0/etc/hadoop/hdfs-site.xml

<property>
    <name>dfs.name.dir</name>
    <value>/home/hadoop/hadoop-2.6.0/dfs/name</value>
    <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
</property>
 
<property>
    <name>dfs.data.dir</name>
    <value>/home/hadoop/hadoop-2.6.0/dfs/data</value>
    <description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

4. 修改 hadoop-2.6.0/etc/hadoop/mapred-site.xml

<property>
    <name>mapred.job.tracker</name>
    <value>master:9001</value>
    <description>Host or IP and port of JobTracker.</description>
</property>

5. 修改 hadoop-2.6.0/etc/hadoop/masters

列出所有的 master 节点:

master

6. 修改 hadoop-2.6.0/etc/hadoop/slaves

这个是所有 datanode 的机器,例如:

slave1

slave2

slave3

slave4

7. 将 master 结点上配置好的 hadoop 文件夹拷贝到所有的 slave 结点上

以 slave1 为例:命令如下:

scp -r  ~/hadoop-2.6.0 hadoop@slave1:~/

安装完成后,我们要格式化 HDFS 然后启动集群所有节点。

5. 启动 Hadoop

1. 格式化 HDFS 文件系统的 namenode

(这里要进入 hadoop-2.6.0 目录来格式化好些):

cd hadoop-2.6.0  // 进入 hadoop-2.6.0 目录

bin/hdfs namenode -format  // 格式化

2. 启动 Hadoop 集群
启动 hdrs 命令如下:

sbin/start-dfs.sh // 开启进程

成功的话输入 jps 会出现如下界面:

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

补充,关闭 hdfs 集群的命令如下:

sbin/stop-dfs.sh

我们也可以通过网页来看是否正常安装与配置,地址如下:http://master:50070/

Ubuntu14.04 安装配置 Hadoop2.6.0(完全分布式)与 wordcount 实例运行

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-01/112029p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计10794字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7956485
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...