先决条件
本教程的唯一前提是安装了Ubuntu 13.10 64位VPS。
您将需要从命令行执行命令,您可以通过以下两种方式之一执行:
使用SSH访问Droplet。
使用Digital Ocean Droplet管理面板中的“控制台访问”
什么是Hadoop?
Hadoop的是一个框架(包括软件库的),它简化了在服务器集群分布式数据集的处理。 Hadoop的主要部件的两个是HDFS和MapReduce。
HDFS是Hadoop用来存储所有数据的文件系统。 此文件系统跨越Hadoop正在使用的所有节点。 这些节点可以位于单个VPS上,也可以分布在大量虚拟服务器上。
MapReduce是编排所有Hadoop活动的框架。 它处理对集群中不同节点的工作分配。
使用Hadoop的好处
Hadoop的架构允许您在需要时扩展硬件。 可以增量地添加新节点,而不必担心数据格式的更改或对位于文件系统上的应用程序的处理。
Hadoop最重要的特性之一是它允许你通过用便宜的商品服务器代替昂贵的商品服务器来节省大量的资金。 这是可能的,因为Hadoop将容错的责任从硬件层转移到应用层。
安装Hadoop
安装和获取Hadoop启动和运行非常简单。 但是,由于此过程需要编辑多个配置和设置文件,请确保每个步骤都得到正确遵循。
1.安装Java
Hadoop需要安装Java,所以让我们开始安装Java:
apt-get update
apt-get install default-jdk
这些命令将更新您的VPS上的软件包信息,然后安装Java。 执行这些命令后,执行以下命令以验证是否已安装Java:
java -version
如果已安装Java,则应显示版本详细信息,如下图所示:
2.创建和设置SSH证书
Hadoop使用SSH(访问其节点),这通常需要用户输入密码。 但是,可以通过使用以下命令创建和设置SSH证书来消除此要求:
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
执行这两个命令中的第一个命令后,可能会要求您输入文件名。 只需将其留空,然后按Enter键继续。 第二个命令将新创建的密钥添加到授权密钥列表,以便Hadoop可以使用SSH,而不提示输入密码。
3.获取并安装Hadoop
首先,使用以下命令从其中一个镜像获取Hadoop:
wget http://www.motorlogy.com/apache/hadoop/common/current/hadoop-2.3.0.tar.gz
注: 此命令使用下载的Hadoop的网站上列出的其中一个镜像的链接。 镜像列表可以发现这个链接 。 您可以选择任何其他镜像。 要下载最新的稳定版本,选择* Hadoop的XYZtar.gz **从当前或您所选择的镜像电流2目录下的文件。*
下载Hadoop软件包后,执行以下命令解压。
tar xfz hadoop-2.3.0.tar.gz
此命令将提取一个名为此包中的所有文件hadoop-2.3.0
。 在本教程中,Hadoop的安装将被移动到/usr/local/hadoop
使用以下命令目录:
mv hadoop-2.3.0 /usr/local/hadoop
注意 : 提取的文件夹的名称取决于您已经下载并提取的Hadoop版本。 如果您的版本与本教程中使用的版本不同,请相应地更改上述命令。
4.编辑和设置配置文件
要完成Hadoop的设置,将需要修改以下文件:
- 〜/。bashrc
- /usr/local/hadoop/etc/hadoop/hadoop-env.sh
- /usr/local/hadoop/etc/hadoop/core-site.xml
- /usr/local/hadoop/etc/hadoop/yarn-site.xml
- /usr/local/hadoop/etc/hadoop/mapred-site.xml.template
- /usr/local/hadoop/etc/hadoop/hdfs-site.xml
一世。 编辑〜/ .bashrc
编辑之前.bashrc
在你的主目录文件,我们需要找到的Java已经安装,设置路径JAVA_HOME
环境变量。 让我们使用以下命令:
update-alternatives --config java
这将显示如下:
此命令显示的完整路径为:
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
该值JAVA_HOME
是之前的一切/jre/bin/java
在上面的路径-在这种情况下, /usr/lib/jvm/java-7-openjdk-amd64
。 记下这一点,因为我们将在此步骤和另一个步骤中使用此值。
现在使用nano
(或你喜欢的编辑器)编辑〜/ .bashrc中使用以下命令:
nano ~/.bashrc
这将打开.bashrc
在文本编辑器文件。 转到文件的末尾并粘贴/键入以下内容:
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END
注1: 如果价值JAVA_HOME
是您的VPS不同,请务必改变第一export
因此在以上内容的语句。
注2: 文件打开和使用纳米可以使用编辑保存Ctrl + X
一旦提示保存更改,请键入。 Y
。 如果要求输入文件名,只需按下回车键即可。
在年底.bashrc
文件应该是这个样子:
保存和关闭后.bashrc
文件,让你的系统可以识别新创建的环境变量执行以下命令:
source ~/.bashrc
在把上述内容.bashrc
文件确保这些变量始终是可用的,当您的VPS启动。
ii。 编辑/usr/local/hadoop/etc/hadoop/hadoop-env.sh
打开/usr/local/hadoop/etc/hadoop/hadoop-env.sh
使用以下命令纳米文件:
nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
在该文件中,找到出口线路JAVA_HOME
变量。 将此行更改为以下内容:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
注意: 如果价值JAVA_HOME
是您的VPS不同,一定要相应地改变这一行。
该hadoop-env.sh
文件应该是这个样子:
保存并关闭此文件。 在添加上述声明hadoop-env.sh
文件保证的价值JAVA_HOME
变量将可用于Hadoop的,只要它被启动。
iii。 编辑/usr/local/hadoop/etc/hadoop/core-site.xml
该/usr/local/hadoop/etc/hadoop/core-site.xml
文件包含的Hadoop启动时使用的配置属性。 此文件可用于覆盖Hadoop开头的默认设置。
使用以下命令使用nano打开此文件:
nano /usr/local/hadoop/etc/hadoop/core-site.xml
在这个文件中,在之间输入以下内容<configuration></configuration>
标签:
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
该core-site.xml
文件应该是这个样子:
保存并关闭此文件。
iv。 编辑/usr/local/hadoop/etc/hadoop/yarn-site.xml
该/usr/local/hadoop/etc/hadoop/yarn-site.xml
文件包含MapReduce的启动时使用的配置属性。 此文件可用于覆盖MapReduce开始的默认设置。
使用以下命令使用nano打开此文件:
nano /usr/local/hadoop/etc/hadoop/yarn-site.xml
在这个文件中,在之间输入以下内容<configuration></configuration>
标签:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
该yarn-site.xml
文件应该是这个样子:
保存并关闭此文件。
v。创建和编辑/usr/local/hadoop/etc/hadoop/mapred-site.xml
默认情况下, /usr/local/hadoop/etc/hadoop/
文件夹包含/usr/local/hadoop/etc/hadoop/mapred-site.xml.template
有要重命名/名为复制的文件mapred-site.xml
。 此文件用于指定MapReduce使用的框架。
这可以使用以下命令完成:
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
完成后,使用以下命令打开nano创建的新文件:
nano /usr/local/hadoop/etc/hadoop/mapred-site.xml
在这个文件中,在之间输入以下内容<configuration></configuration>
标签:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
在mapred-site.xml
的文件应该是这个样子:
保存并关闭此文件。
vi。 编辑/usr/local/hadoop/etc/hadoop/hdfs-site.xml
该/usr/local/hadoop/etc/hadoop/hdfs-site.xml
必须配置为群集中的每个主机正在使用。 它是用于指定将被用作名称节点和该主机上的数据节点的目录。
编辑这个文件之前,我们需要创建两个目录将包含NameNode和这个Hadoop的安装的Datanode。 这可以使用以下命令完成:
mkdir -p /usr/local/hadoop_store/hdfs/namenode
mkdir -p /usr/local/hadoop_store/hdfs/datanode
注意: 您可以创建在不同的位置这些目录,但一定要修改的内容, hdfs-site.xml
相应。
一旦做到这一点,打开/usr/local/hadoop/etc/hadoop/hdfs-site.xml
使用以下命令纳米文件:
nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
在这个文件中,在之间输入以下内容<configuration></configuration>
标签:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/datanode</value>
</property>
在hdfs-site.xml
文件应该是这个样子:
保存并关闭此文件。
格式化新的Hadoop文件系统
在完成上述步骤中概述的所有配置后,Hadoop文件系统需要进行格式化,以便可以开始使用。 这通过执行以下命令来完成:
hdfs namenode -format
注意: 这只需要你开始使用Hadoop之前进行一次。 如果在使用Hadoop后再次执行此命令,则会破坏Hadoop文件系统上的所有数据。
启动Hadoop
所有仍需做的是启动新安装的单节点群集:
start-dfs.sh
在执行此命令时,系统将提示您两次类似于以下内容的消息:
您确定要继续连接(是/否)吗?
键入yes
为这些提示,然后按Enter键。 完成后,执行以下命令:
start-yarn.sh
执行以上两个命令将使Hadoop启动并运行。 您可以通过键入以下命令验证此:
jps
执行此命令将显示类似于以下内容的内容:
如果你可以看到类似于上面截图所示的结果,这意味着你现在有一个功能的Hadoop的实例在你的VPS上运行。
下一步
如果有一个应用程序设置为使用Hadoop,您可以启动它,并开始使用它与新的安装。 另一方面,如果你只是玩和探索Hadoop,你可以开始添加/操作数据或文件在新的文件系统,以获得它的感觉。