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

Ubuntu 14.04下Hadoop集群安装

122次阅读
没有评论

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

最近在自学 Hadoop,于是乎跟着一起玩玩,在此为她整理一篇基础搭建的博客,希望对她能有所帮助。同样,开始之前先来了解下,什么是 Hadoop。

Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。它是根据 Google 公司发表的 MapReduce 和 Google 文件系统的论文自行实现而成。Hadoop 框架透明地为应用提供可靠性和数据移动。它实现了名为 MapReduce 的编程范式:应用程序被分区成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。

Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System),简称 HDFS。HDFS 有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS 放宽了(relax)POSIX 的要求,可以以流的形式访问(streaming access)文件系统中的数据。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop 的框架最核心的设计就是 HDFS 和 MapReduce。HDFS 为海量的数据提供了存储,则 MapReduce 为海量的数据提供了计算。

搭建

搭建集群的话,需要最少两台机器来搭建一个多节点的 Hadoop 环境,我这里使用 Hadoop 最新稳定的 2.7.3 版本和三台云主机(1 主两从,Ubuntu 14.04 LTS)。

Ubuntu 14.04 下 Hadoop 集群安装 PDF 文档可以到 Linux 公社资源站下载:

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2017 年资料 / 2 月 /18 日 /Ubuntu 14.04 下 Hadoop 集群安装 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

1. 修改 hosts 文件

保证三台机器的网络是可达的前提下,更改主机名,并修改 hosts 文件:

# hostnamectl  set-hostname master  // 在 master 节点上执行
# hostnamectl  set-hostname slave-1  // 在 slave- 1 节点上执行
# hostnamectl  set-hostname slave-2  // 在 slave- 2 节点上执行
分别把三台机器的 hosts 文件进行修改:
# vim /etc/hosts
192.168.1.2  master
192.168.1.3  slave-1
192.168.1.4  slave-2

2. 在 master 和 slave 节点上安装 java:

# add-apt-repository ppa:webupd8team/java  // 添加 ppa
# apt-get update
# apt-get installOracle-java8-installer 
# java -version  // 检验 Java 版本
java version “1.8.0_121”
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

3. 禁用 IPv6

现在 Hadoop 目前对 IPv6 不是很好,在一些 Linux 发行版上可能造成一些未知 bug。在 Hadoop Wiki 上提供了方法来禁用,我这里修改 sysctl.conf 文件,添加以下几行:

# vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
# sysctl -p  // 使其立即生效

4. 创建 Hadoop User

在 master 和 slave 节点上执行:

# addgroup hdgroup  // 创建 hadoop group
# adduser —ingroup hdgroup hduser  // 创建 Hadoop User 并加入 Hadoop group
Adding user `hduser’ …
Adding new user `hduser’ (1001) with group `hdgroup’ …
Creating home directory `/home/hduser’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:            // 输入密码之后一路回车即可
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for hduser
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]

Hadoop 要求无密码登录,所以需要生成秘钥, 这里注意要用刚才创建的普通 hduser 用户, 分别在 master 和 slave 上执行如下操作:

# su – hduser
$ ssh-keygen -N ”
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa):
Created directory ‘/home/hduser/.ssh’.
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
The key fingerprint is:
5b:ae:c6:5a:ce:66:51:d3:6c:6c:14:9b:b2:8a:da:e9 hduser@master
The key’s randomart image is:
+–[RSA 2048]—-+
|            ..  |
|            .o  |
|          .=o    |
|          oo*    |
|        S.o+    |
|      ..=      |
|      ..+..      |
|    o ==.      |
|    ..E=+        |
+—————–+
$ ssh-copy-id hduser@master
$ ssh-copy-id hduser@slave-1
$ ssh-copy-id hduser@slave-2

5. 下载和安装 Hadoop

 登录 Hadoop 的官方下载地址,选择你需要的版本,复制下载链接,这里我选用最新的 2.7.3 版本:

Ubuntu 14.04 下 Hadoop 集群安装

打开链接之后,右键复制链接地址:

Ubuntu 14.04 下 Hadoop 集群安装

在 master 和 slave 上分别执行(你也可以在一台机器上下载完之后拷贝到另外两台上):

$ cd /home/hduser
$ wget -c 
$ tar -zxvf hadoop-2.7.3.tar.gz
$ mv hadoop-2.7.3 hadoop

6. 更改环境变量

首先确定之前安装的 java home 目录,查找办法如下(在任意一台机器上执行):

hduser@master:~$ env | grep -i java
JAVA_HOME=/usr/lib/jvm/java-8-oracle

分别在 master 和 slave 节点上执行以下操作, 编辑 ”.bashrc” 文件,添加如下几行:

$ vim .bashrc  // 编辑文件,添加如下几行
export HADOOP_HOME=/home/hduser/hadoop
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
$ source  .bashrc  //source 使其立即生效

分别在 master 和 slave 节点上执行以下操作, 更改 Hadoop-env 的 JAVA_HOME:

$ vim /home/hduser/hadoop/etc/hadoop/hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}  // 更改此行,或者注释掉新加以下一行
export JAVA_HOME=/usr/lib/jvm/java-8-oracle

————————————– 分割线 ————————————–

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 6.3 下 Hadoop 伪分布式平台搭建  http://www.linuxidc.com/Linux/2016-11/136789.htm

Ubuntu 14.04 LTS 下安装 Hadoop 1.2.1(伪分布模式)http://www.linuxidc.com/Linux/2016-09/135406.htm

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

实战 CentOS 系统部署 Hadoop 集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm

Hadoop 2.6.0 HA 高可用集群配置详解  http://www.linuxidc.com/Linux/2016-08/134180.htm

Spark 1.5、Hadoop 2.7 集群环境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

在 Ubuntu X64 上编译安装 Hadoop http://www.linuxidc.com/Linux/2016-12/138568.htm

CentOS 6.7 安装 Hadoop 2.7.3  http://www.linuxidc.com/Linux/2017-01/139089.htm

CentOS7+Hadoop2.5.2+Spark1.5.2 环境搭建  http://www.linuxidc.com/Linux/2017-01/139364.htm

————————————– 分割线 ————————————–

7.Hadoop 配置

Hadoop 的配置这里主要涉及四个配置文件:etc/hadoop/core-site.xml,etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml.

这里摘录网络上的一段话,在继续下面的操作之前一定要阅读这段,以便更好的理解:

Hadoop Distributed File System: A distributed file system that provides high-throughput access to application data. A HDFS cluster primarily consists of a NameNode that manages the file system metadata and DataNodes that store the actual data. If you compare HDFS to a traditional storage structures (e.g. FAT, NTFS), then NameNode is analogous to a Directory Node structure, and DataNode is analogous to actual file storage blocks.

Hadoop YARN: A framework for job scheduling and cluster resource management.

Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.

①在 master 和 slave 节点上更改 ”core-site.xml” 文件,master 和 slave 节点应该使用相同 ”fs.defaultFS” 值,而且必须指向 master 节点; 在“configuration”中间添加如下配置:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/tmp</value>
  <description>Temporary Directory.</description>
</property>
 
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:54310</value>
  <description>Use HDFS as file storage engine</description>
</property>

最终 core-site.xml 配置文件如下图所示:

Ubuntu 14.04 下 Hadoop 集群安装

如果 tmp 目录不存在,需要手动创建一个:

$ mkdir /home/hduser/tmp
$ chown -R hduser:hdgroup /home/hduser/tmp // 非 hduser 用户创建虚赋权

②只在 master 节点上更改 ”mapred-site.xml” 文件,由于没有这个文件,需要需要复制那个 template 文件生成一个:

$ cd /home/hduser/hadoop/
$ cp -av etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

编辑 xml 配置文件,在“configuration”中间添加如下配置:

 <property>
 <name>mapreduce.jobtracker.address</name>
 <value>master:54311</value>
 <description>The host and port that the MapReduce job tracker runs
  at. If“local”, then jobs are run in-process as a single map
  and reduce task.
</description>
</property>
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 <description>The framework for running mapreduce jobs</description>
</property>

③在 master 和 slave 节点上更改 ”hdfs-site.xml” 文件,在“configuration”中间添加如下配置:

 <property>
 <name>dfs.replication</name>
 <value>2</value>
 <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
 </description>
</property>
<property>
 <name>dfs.namenode.name.dir</name>
 <value>/data/hduser/hdfs/namenode</value>
 <description>Determines where on the local filesystem the DFS name node should store the name table(fsimage). If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.
 </description>
</property>
<property>
 <name>dfs.datanode.data.dir</name>
 <value>/data/hduser/hdfs/datanode</value>
 <description>Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored.
 </description>

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

并创建刚才配置文件中指定的目录:

$ mkdir -p /home/hduser/data/hduser/hdfs/{namenode,datanode}
$ chown -R hduser:hdgroup /home/hduser/data/  // 如果非 hduser 用户创建的需要赋权

1). 这里 dfs.replication 的默认值为 3,这里我设置了 2 个副本,代表每个存储到 HDFS 的文件都有额外一个副本,这里的值可以视集群规模而定。

2)dfs.namenode.name.dir 和 dfs.datanode.name.dir 是 namenode 和 datanode 存放 HDFS 数据块文件的位置,如果没有需要手动创建。

④在 master 和 slave 节点上更改 ”yarn-site.xml” 文件,master 和 slave 节点应该使用相同的值,并且指向 master 节点。在“configuration”中间添加如下配置:

<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>
<property>
 <name>yarn.resourcemanager.scheduler.address</name>
 <value>master:8030</value>
</property>
<property>
 <name>yarn.resourcemanager.address</name>
 <value>master:8032</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>master:8088</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>master:8031</value>
</property>
<property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>master:8033</value>
</property>

⑤更新 slave 文件

在 master 节点上修改 slave 文件, 添加 master 和 slave 节点的主机名或者 ip 地址,并去掉 ”localhost”:

$ vim /home/hduser/Hadoop/etc/hadoop/slaves
master
slave-1
slave-2

⑥格式化 namenode:

在启动 cluster 之前需要先格式化 namenode,在 master 上执行:

$ hdfs namenode -format

看到类似提示 INFO:”Storage directory /home/hduser/data/hduser/hdfs/namenode has been successfully formatted.” 表示格式化成功。

⑦启动服务

可以直接使用 Hadoop 提供的脚本 ”start-all.sh” 启动所有服务,也可以把 dfs 和 yarn 分别启动。可以使用绝对路径:/home/hduser/hadoop/sbin/start-all.sh,也可以直接调用 start-all.sh 脚本(因为前面已经改过 PATH 的路径):

$ start-all.sh

如下图所示没有看到任何错误信息,表示集群已成功启动:

Ubuntu 14.04 下 Hadoop 集群安装

⑧验证查看

  使用 jps 命令分别在 master 和 slave 上查看启动的服务

Ubuntu 14.04 下 Hadoop 集群安装

Ubuntu 14.04 下 Hadoop 集群安装

网页验证:

浏览器打开:http://master:50070

Ubuntu 14.04 下 Hadoop 集群安装

查看 yarn web console: http://master:8088/cluster/nodes

如果所有 node 均正常启动,这里能够全部显示:

Ubuntu 14.04 下 Hadoop 集群安装

Hadoop 解压的 share 目录里给我们提供了几个 example 的 jar 包,我们执行一个看下效果:

$ hadoop jar /home/hduser/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar  pi 30 100

执行之后通过浏览器访问:http://master:8088/cluster/apps

能够看到当前执行的任务:

Ubuntu 14.04 下 Hadoop 集群安装

写在最后:

如果在新增了节点或者删除节点的时候出现了问题,首先删除 slave 的 hadoop.tmp.dir,然后重新启动试试看,如果还是不行, 尝试把 Master 的 hadoop.tmp.dir 删除(意味着 dfs 上的数据也会丢失)然后需要重新 namenode –format。

如果有任何报错信息记得去查 log 日志,文件位置在 Hadoop 的安装目录 logs 文件夹下。

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

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140783.htm

最近在自学 Hadoop,于是乎跟着一起玩玩,在此为她整理一篇基础搭建的博客,希望对她能有所帮助。同样,开始之前先来了解下,什么是 Hadoop。

Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。它是根据 Google 公司发表的 MapReduce 和 Google 文件系统的论文自行实现而成。Hadoop 框架透明地为应用提供可靠性和数据移动。它实现了名为 MapReduce 的编程范式:应用程序被分区成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。

Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System),简称 HDFS。HDFS 有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS 放宽了(relax)POSIX 的要求,可以以流的形式访问(streaming access)文件系统中的数据。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop 的框架最核心的设计就是 HDFS 和 MapReduce。HDFS 为海量的数据提供了存储,则 MapReduce 为海量的数据提供了计算。

搭建

搭建集群的话,需要最少两台机器来搭建一个多节点的 Hadoop 环境,我这里使用 Hadoop 最新稳定的 2.7.3 版本和三台云主机(1 主两从,Ubuntu 14.04 LTS)。

Ubuntu 14.04 下 Hadoop 集群安装 PDF 文档可以到 Linux 公社资源站下载:

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2017 年资料 / 2 月 /18 日 /Ubuntu 14.04 下 Hadoop 集群安装 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

1. 修改 hosts 文件

保证三台机器的网络是可达的前提下,更改主机名,并修改 hosts 文件:

# hostnamectl  set-hostname master  // 在 master 节点上执行
# hostnamectl  set-hostname slave-1  // 在 slave- 1 节点上执行
# hostnamectl  set-hostname slave-2  // 在 slave- 2 节点上执行
分别把三台机器的 hosts 文件进行修改:
# vim /etc/hosts
192.168.1.2  master
192.168.1.3  slave-1
192.168.1.4  slave-2

2. 在 master 和 slave 节点上安装 java:

# add-apt-repository ppa:webupd8team/java  // 添加 ppa
# apt-get update
# apt-get installOracle-java8-installer 
# java -version  // 检验 Java 版本
java version “1.8.0_121”
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

3. 禁用 IPv6

现在 Hadoop 目前对 IPv6 不是很好,在一些 Linux 发行版上可能造成一些未知 bug。在 Hadoop Wiki 上提供了方法来禁用,我这里修改 sysctl.conf 文件,添加以下几行:

# vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
# sysctl -p  // 使其立即生效

4. 创建 Hadoop User

在 master 和 slave 节点上执行:

# addgroup hdgroup  // 创建 hadoop group
# adduser —ingroup hdgroup hduser  // 创建 Hadoop User 并加入 Hadoop group
Adding user `hduser’ …
Adding new user `hduser’ (1001) with group `hdgroup’ …
Creating home directory `/home/hduser’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:            // 输入密码之后一路回车即可
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for hduser
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]

Hadoop 要求无密码登录,所以需要生成秘钥, 这里注意要用刚才创建的普通 hduser 用户, 分别在 master 和 slave 上执行如下操作:

# su – hduser
$ ssh-keygen -N ”
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa):
Created directory ‘/home/hduser/.ssh’.
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
The key fingerprint is:
5b:ae:c6:5a:ce:66:51:d3:6c:6c:14:9b:b2:8a:da:e9 hduser@master
The key’s randomart image is:
+–[RSA 2048]—-+
|            ..  |
|            .o  |
|          .=o    |
|          oo*    |
|        S.o+    |
|      ..=      |
|      ..+..      |
|    o ==.      |
|    ..E=+        |
+—————–+
$ ssh-copy-id hduser@master
$ ssh-copy-id hduser@slave-1
$ ssh-copy-id hduser@slave-2

5. 下载和安装 Hadoop

 登录 Hadoop 的官方下载地址,选择你需要的版本,复制下载链接,这里我选用最新的 2.7.3 版本:

Ubuntu 14.04 下 Hadoop 集群安装

打开链接之后,右键复制链接地址:

Ubuntu 14.04 下 Hadoop 集群安装

在 master 和 slave 上分别执行(你也可以在一台机器上下载完之后拷贝到另外两台上):

$ cd /home/hduser
$ wget -c 
$ tar -zxvf hadoop-2.7.3.tar.gz
$ mv hadoop-2.7.3 hadoop

6. 更改环境变量

首先确定之前安装的 java home 目录,查找办法如下(在任意一台机器上执行):

hduser@master:~$ env | grep -i java
JAVA_HOME=/usr/lib/jvm/java-8-oracle

分别在 master 和 slave 节点上执行以下操作, 编辑 ”.bashrc” 文件,添加如下几行:

$ vim .bashrc  // 编辑文件,添加如下几行
export HADOOP_HOME=/home/hduser/hadoop
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
$ source  .bashrc  //source 使其立即生效

分别在 master 和 slave 节点上执行以下操作, 更改 Hadoop-env 的 JAVA_HOME:

$ vim /home/hduser/hadoop/etc/hadoop/hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}  // 更改此行,或者注释掉新加以下一行
export JAVA_HOME=/usr/lib/jvm/java-8-oracle

————————————– 分割线 ————————————–

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 6.3 下 Hadoop 伪分布式平台搭建  http://www.linuxidc.com/Linux/2016-11/136789.htm

Ubuntu 14.04 LTS 下安装 Hadoop 1.2.1(伪分布模式)http://www.linuxidc.com/Linux/2016-09/135406.htm

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

实战 CentOS 系统部署 Hadoop 集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm

Hadoop 2.6.0 HA 高可用集群配置详解  http://www.linuxidc.com/Linux/2016-08/134180.htm

Spark 1.5、Hadoop 2.7 集群环境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

在 Ubuntu X64 上编译安装 Hadoop http://www.linuxidc.com/Linux/2016-12/138568.htm

CentOS 6.7 安装 Hadoop 2.7.3  http://www.linuxidc.com/Linux/2017-01/139089.htm

CentOS7+Hadoop2.5.2+Spark1.5.2 环境搭建  http://www.linuxidc.com/Linux/2017-01/139364.htm

————————————– 分割线 ————————————–

7.Hadoop 配置

Hadoop 的配置这里主要涉及四个配置文件:etc/hadoop/core-site.xml,etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml.

这里摘录网络上的一段话,在继续下面的操作之前一定要阅读这段,以便更好的理解:

Hadoop Distributed File System: A distributed file system that provides high-throughput access to application data. A HDFS cluster primarily consists of a NameNode that manages the file system metadata and DataNodes that store the actual data. If you compare HDFS to a traditional storage structures (e.g. FAT, NTFS), then NameNode is analogous to a Directory Node structure, and DataNode is analogous to actual file storage blocks.

Hadoop YARN: A framework for job scheduling and cluster resource management.

Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.

①在 master 和 slave 节点上更改 ”core-site.xml” 文件,master 和 slave 节点应该使用相同 ”fs.defaultFS” 值,而且必须指向 master 节点; 在“configuration”中间添加如下配置:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/tmp</value>
  <description>Temporary Directory.</description>
</property>
 
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:54310</value>
  <description>Use HDFS as file storage engine</description>
</property>

最终 core-site.xml 配置文件如下图所示:

Ubuntu 14.04 下 Hadoop 集群安装

如果 tmp 目录不存在,需要手动创建一个:

$ mkdir /home/hduser/tmp
$ chown -R hduser:hdgroup /home/hduser/tmp // 非 hduser 用户创建虚赋权

②只在 master 节点上更改 ”mapred-site.xml” 文件,由于没有这个文件,需要需要复制那个 template 文件生成一个:

$ cd /home/hduser/hadoop/
$ cp -av etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

编辑 xml 配置文件,在“configuration”中间添加如下配置:

 <property>
 <name>mapreduce.jobtracker.address</name>
 <value>master:54311</value>
 <description>The host and port that the MapReduce job tracker runs
  at. If“local”, then jobs are run in-process as a single map
  and reduce task.
</description>
</property>
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 <description>The framework for running mapreduce jobs</description>
</property>

③在 master 和 slave 节点上更改 ”hdfs-site.xml” 文件,在“configuration”中间添加如下配置:

 <property>
 <name>dfs.replication</name>
 <value>2</value>
 <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
 </description>
</property>
<property>
 <name>dfs.namenode.name.dir</name>
 <value>/data/hduser/hdfs/namenode</value>
 <description>Determines where on the local filesystem the DFS name node should store the name table(fsimage). If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.
 </description>
</property>
<property>
 <name>dfs.datanode.data.dir</name>
 <value>/data/hduser/hdfs/datanode</value>
 <description>Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored.
 </description>

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

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