Hadoop 入门指南 - 如何安装





5.00/5 (10投票s)
在 Ubuntu 16.04 操作系统上安装 Hadoop 2.7.3 版本的循序渐进的过程
引言
在我之前的文章中,我尝试对大数据和 Hadoop 进行了概述。在本文中,我将向您展示如何在 Ubuntu 操作系统上安装 Hadoop(单节点集群)。Windows 用户也可以按照本文的步骤,在虚拟机中安装 Ubuntu 并体验 Hadoop。 :)
Hadoop 的先决条件
- JDK:Java 开发工具包 (JDK) 是一个用于开发 Java 应用程序和 Applet 的软件开发环境。它包括 Java 运行时环境 (JRE)、一个解释器/加载器 (java)、一个编译器 (javac)、一个归档器 (jar)、一个文档生成器 (javadoc) 以及 Java 开发所需的其他工具。由于 Hadoop 框架是用 Java 编写的,因此需要 JDK。
- SSH:SSH(“安全外壳”)是一种从一台计算机安全访问另一台计算机的协议。尽管名称如此,SSH 允许您通过 Internet 运行命令行和图形程序、传输文件,甚至创建安全的虚拟专用网络。
安装 VMWare Player 和 Ubuntu 操作系统
此步骤仅适用于 Windows 用户。如果您已经安装了 Ubuntu 系统,请跳过此步骤。从“安装 Java 8 JDK”开始。
- 在此处下载 VMWare Player:此处
- 安装 VMWare Player
- 在此处下载 Ubuntu:此处
- 打开 VMWare Player
- 点击“创建新的虚拟机”,这将打开以下屏幕
- 选择“稍后安装操作系统”选项,然后点击“下一步”按钮,这将打开以下屏幕
- 选择“Linux”选项,并从版本下拉列表中选择“Ubuntu 64 位”,然后点击“下一步”按钮进入下一个屏幕
- 输入虚拟机名称,设置位置,然后点击“下一步”按钮进入下一个屏幕
- 如果您的磁盘空间充足,请将最大磁盘大小设置为 40 GB,选择“将虚拟磁盘存储为单个文件”选项,然后点击“下一步”按钮进入下一个屏幕
- 如果您拥有超过 4GB 的 RAM,请点击自定义硬件
- 选择 2GB RAM,然后点击“关闭”按钮。然后点击“完成”按钮。
- 点击“编辑虚拟机设置”
-
点击“CD/DVD (SATA)”硬件,选择“使用 ISO 映像文件”选项,然后浏览 Ubuntu ISO 文件。点击“确定”关闭此窗口
- 点击“播放虚拟机”。这将开始安装 Ubuntu 操作系统。按照循序渐进的过程完成安装
安装 Java 8 JDK
- 登录到 Ubuntu 机器
- 通过按下 Ctrl+Alt+T 打开终端
- 使用以下命令以“su”(超级用户)身份登录。使用安装 Ubuntu 时的相同密码
sudo su
- 键入“cd”(更改目录)并按 Enter 键移至根目录
cd
- 键入以下命令并按 Enter
apt-get install openjdk-8-jdk
- 这将要求确认。键入
Y
并按 Enter - 这将需要一些时间来完成。执行“
clear
”命令清除屏幕clear
- 执行以下命令查看 JDK 是否安装成功
java -version javac -version
设置 JAVA_HOME 变量
- 运行此命令获取 JDK 路径
update-alternatives --config java
因此,JDK 安装在“/usr/lib/jvm/java-8-openjdk-amd64”路径下 - 通过键入以下命令编辑环境变量
gedit /etc/environmen
- 这将打开一个编辑器。将以下行添加到编辑器的末尾
JAVA_HOME=”/usr/lib/jvm/java-8-openjdk-amd64”
-
点击“保存”并关闭窗口。
-
运行此命令检查编辑后的文件是否没有错误。
source /etc/environmen
- 运行此命令检查
JAVA_HOME
变量是否已正确添加echo $JAVA_HOME
安装 SSH
- 运行以下命令
apt-get install ssh
- 这将要求确认。键入
Y
并按 Enter。 - 完成后,通过执行以下命令生成公钥/私钥 rsa 密钥对
ssh-keygen -t rsa -P ""
- 这将询问“Enter file in which to save the key (/root/.ssh/id_rsa):”。什么都不输入,然后按 Enter。
- 通过运行以下命令使生成的公钥生效
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
- 通过执行以下命令检查 ssh 是否已安装并正常运行
ssh localhost
- 这将询问“Are you sure you want to continue connecting (yes/no)?”。键入
yes
并按 Enter。 - 如果出现错误,请再次执行相同的命令
ssh localhost
- 如果 ssh 已安装并正常运行,它应该会显示上述消息。
下载 Hadoop
从此链接下载 Hadoop 2.7.3 版本。
点击 2.7.3 版本二进制文件
- 点击标记为红色的链接以下载文件。这将打开一个窗口。选择“保存文件”选项,然后点击“保存”按钮。
- 这将开始下载文件
- 文件将保存在浏览器中设置的默认下载位置。
安装 Hadoop
- 关闭终端并重新打开。无需以“
su
”身份登录。 - 找到 hadoop 安装文件下载的路径,然后运行以下命令进行解压。
tar -xvzf ‘<downloaded package path>’
- 在我的情况下,它是
tar -xvzf ‘/home/fazlur/Downloads/hadoop-2.7.3.tar.gz’
- 这会在 home 目录下创建一个名为“hadoop-2.7.3”的目录
配置 Hadoop
- 在终端中,使用以下命令以 root 身份登录。使用安装 Ubuntu 时的相同密码
sudo su
- 运行此命令编辑“.bashrc”文件
gedit ~/.bashrc
- 这将打开一个编辑器。将以下行添加到编辑器的末尾。将
<JAVA_PATH>
和<HADOOP_HOME_PATH>
替换为相应的路径#HADOOP VARIABLES START <meta charset="utf-8" />export JAVA_HOME=<JAVA PATH> <meta charset="utf-8" />export PATH=${JAVA_HOME}/bin:${PATH} <meta charset="utf-8" />export HADOOP_INSTALL=<HADOOP HOME PATH> export PATH=$PATH:$HADOOP_INSTALL/bin export PATH=$PATH:$HADOOP_INSTALL/sbin export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar 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
-
在我的情况下,它看起来像这样
- 保存并关闭编辑器。
- 运行以下命令检查 .bashrc 文件中是否有任何错误
source ~/.bashrc
- 通过运行以下命令进入“hadoop-2.7.3/etc/hadoop”路径
cd <HADOOP PATH>
在我的情况下,它是
cd /home/fazlur/hadoop-2.7.3/etc/hadoop
- 使用以下命令编辑“hadoop-env.sh”文件
gedit hadoop-env.sh
- 这将打开一个编辑器。将此行添加到编辑器的末尾。保存并关闭编辑器。
export JAVA_HOME=<Your Java Path>
在我的情况下,它看起来像这样
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- 运行以下命令检查 hadoop-env.sh 文件中是否有任何错误
source hadoop-env.sh
- 在
hadoop-2.7.3
存在的同一目录下创建一个名为“hadoop_store”的目录。然后进入该目录。运行以下命令执行此操作cd <HOME PATH> mkdir hadoop_store cd hadoop_store
- 在我的情况下,它是
cd /home/fazlur
- 创建一个名为“hdfs”的目录并进入该目录。运行这些命令执行此操作
mkdir hdfs cd hdfs
- 在“hdfs”目录中创建两个名为“namenode”和“datanode”的目录。运行这些命令执行此操作。屏幕截图显示了连续的命令和目录结构
mkdir namenode mkdir datanode
- 通过运行以下命令进入“hadoop-2.7.3/etc/hadoop”路径
cd <HADOOP PATH>
在我的情况下,它是
cd /home/fazlur/hadoop-2.7.3/etc/hadoop
- 通过运行以下命令编辑“hdfs-site.xml”。这将打开一个编辑器
gedit hdfs-site.xml
- 在
<configuration></configuration>
标签之间添加以下行。将<NAMENODE_FOLDER_PATH>
和<DATANODE_FOLDER_PATH>
替换为相应的路径。<property> <name>dfs.replication</name> <value>1</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>file:<NAMENODE_FOLDER_PATH></value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:<DATANODE_FOLDER_PATH></value> </property>
- 在我的情况下,它看起来像这样
- 保存并关闭编辑器。
- 进入“hadoop-2.7.3”文件夹并创建一个名为“tmp”的目录。以下命令执行此操作
cd <hadoop-2.7.3 path> mkdir tmp
以我为例
cd /home/fazlur/hadoop-2.7.3 mkdir tmp
- 使用以下命令编辑“core-site.xml”文件
gedit core-site.xml
- 这将打开一个编辑器。在
<configuration></configuration>
标签之间添加以下行。将<TMP_FOLDER_PATH>
替换为相应的路径。<property> <name>hadoop.tmp.dir</name> <value>/home/fazlur/hadoop-2.7.3/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://:54310</value> <description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.</description> </property>
- 在我的情况下,它看起来像这样
- 保存并关闭编辑器。
- 运行以下命令,使用“mapred-site.xml.template”模板创建“mapred-site.xml”文件
cp mapred-site.xml.template mapred-site.xml
- 使用以下命令编辑“mapred-site.xml”
gedit mapred-site.xml
- 这将打开一个编辑器。在
<configuration></configuration>
标签之间添加以下行。将<TMP_FOLDER_PATH>
替换为相应的路径。<property> <name>mapred.job.tracker</name> <value>localhost: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>
- 在我的情况下,它看起来像这样
- 保存并关闭编辑器。
- 通过执行命令“
cd
”进入 root 目录。 - 通过运行以下命令格式化 Hadoop 文件系统
hadoop namenode -format
- 重新启动您的机器。
- 打开终端并以“
su
”身份登录。 - 运行此命令启动 hadoop
start-all.sh
- 运行此命令检查所有服务是否已启动
jps
- 看起来 NameNode 服务未运行。请按照以下步骤使其正常工作
- 重新启动您的机器。
- 打开终端并以“
su
”身份登录。 - 键入“
cd
”移动到 root 目录。 - 执行命令“
hadoop namenode -format
”来格式化 hadoop 文件系统。 - 执行命令“
start-all.sh
”来启动所有服务。 - 执行命令“
jps
”来检查所有服务是否已启动。
- 现在打开您喜欢的浏览器,然后键入以下 URL
https://:8088
- 如果一切正常运行,它将打开一个类似此页面的页面
- 键入以下 URL 以检查 datanodes 以及浏览 hadoop 文件系统
https://:50070
- 这将打开一个类似此页面的页面
- 导航到“Utilities-->Browse the file system”以检查 hadoop 文件系统
结论
希望您喜欢阅读并成功在您的 ubuntu 系统上安装了 hadoop。在我的下一系列文章中,我将详细解释 Hadoop 的不同组件。
感谢您阅读我的文章并保持联系。
历史
- 2017 年 1 月 26 日:初版