先决条件:访问终端窗口/命令行,本地/远程机器上的 Sudo 或 root 权限
在开始新安装之前,使用以下命令更新您的系统:
sudo apt update
在终端中键入以下命令以安装 OpenJDK 8:
sudo apt install openjdk-8-jdk -y
安装过程完成后,验证当前的 Java 版本:
java -version; javac -version
在 Ubuntu 上
安装 OpenSSH 使用以下命令安装 OpenSSH 服务器和客户端:
sudo apt install openssh-server openssh-client -y
创建 Hadoop 用户
使用 adduser 命令创建一个新的 Hadoop 用户:
sudo adduser ashwin
输入相应的密码:
su - ashwin
生成 SSH 密钥对并定义存储位置:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
使用 cat 命令将公钥作为 authorized_keys 存储在 ssh 目录中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
使用 chmod 命令为您的用户设置权限:
chmod 0600 ~/.ssh/authorized_keys
hdoop 用户通过 SSH 连接到本地主机:
ssh localhost
在 Ubuntu 上下载并安装 Hadoop
访问官方 Apache Hadoop 项目页面,然后选择您要实施的 Hadoop 版本。
tar xzf hadoop-3.2.1.tar.gz
单节点Hadoop部署(伪分布式)
使用您选择的文本编辑器编辑 .bashrc shell 配置文件(我们将使用 nano):
sudo nano .bashrc
通过将以下内容添加到文件末尾来定义 Hadoop 环境变量:
#Hadoop Related Optionsexport HADOOP_HOME=/home/ashwin/hadoop-3.2.1export HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/binexport HADOOP_OPTS"-Djava.library.path=$HADOOP_HOME/lib/nativ"
使用以下命令将更改应用于当前运行环境至关重要:
source ~/.bashrc
使用之前创建的 $HADOOP_HOME 变量访问 hadoop-env.sh 文件:
sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
. 如果您安装的版本与本教程第一部分中介绍的版本相同,请添加以下行:
导出 JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
使用提供的路径通过以下命令查找 OpenJDK 目录:
echo $JAVA_HOME
在文本编辑器中打开 core-site.xml 文件:
sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml
添加以下配置以覆盖临时目录的默认值,并添加您的 HDFS URL 以替换默认的本地文件系统设置:
<configuration><property> <name>hadoop.tmp.dir</name> <value>/home/ashwin/tmpdata</value></property><property> <name>fs.default.name</name> <value>hdfs://127.0.0.1:9000</value></property></configuration>
使用以下命令打开 hdfs-site.xml 文件进行编辑:
sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
将以下配置添加到文件中,如果需要,将 NameNode 和 DataNode 目录调整到您的自定义位置:
<configuration><property> <name>dfs.data.dir</name> <value>/home/ashwin/dfsdata/namenode</value></property><property> <name>dfs.data.dir</name> <value>/home/ashwin/dfsdata/datanode</value></property><property> <name>dfs.replication</name> <value>1</value></property></configuration>
使用以下命令访问 mapred-site.xml 文件并定义 MapReduce 值:
sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
添加以下配置,将默认的 MapReduce 框架名称值更改为 yarn:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
在文本编辑器中打开 yarn-site.xml 文件:
sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
将以下配置附加到文件中:
<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><property> <name>yarn.resourcemanager.hostname</name> <value>127.0.0.1</value></property><property> <name>yarn.acl.enable</name> <value>0</value></property><property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property></configuration>
在首次启动 Hadoop 服务之前格式化 NameNode 很重要:
hdfs namenode -format
进入hadoop-3.2.1/sbin目录,执行以下命令启动NameNode和DataNode:
./start-all.sh
输入这个简单的命令来检查是否所有守护进程都处于活动状态并作为 Java 进程运行:
jps
完毕!