这里是在Ubuntu 20.04版本上以单机模式安装Hadoop。而且Ubuntu中的用户名为 frank
安装 JDK这里要安装的Java版本是 jdk-8。
执行命令
sudo apt update
sudo apt install openjdk-8-jdk -y
运行完安装程序后,会自动给jdk配置环境变量,所以下面测试一下jdk是否安装成功
java -version
javac -version
如果都能显示出jdk的版本信息,则表示安装成功。
还可以通过执行查看一下java和javac的安装路径
which java
which javac
得到的结果是:
/usr/bin/java
/usr/bin/javac
另外,jvm的安装路径是
/usr/lib/jvm/java-8-openjdk-amd64
这个路径在后续的Hadoop配置中要用得到。
下载Hadoopcd /home/frank/Desktop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
下载好之后,会在桌面上得到一个Hadoop的压缩包。
将这个压缩包解压缩,并放置在当前用户的根目录下(即 /home/frank/)
tar -zxvf /home/frank/Desktop/hadoop-3.2.1.tar.gz -C /home/frank/
这样就会在目录 /home/frank/ 目录下多了一个文件夹 hadoop-3.2.1
配置Hadoop这里要配置的Hadoop文件有如下几个:
这些文件都在目录 /home/frank/hadoop-3.2.1 的根目录下或者子目录下
.bashrc这个文件是用来配置Hadoop的环境变量的。
sudo gedit /home/frank/hadoop-3.2.1/.bashrc
打开文件后,给这个文件的末尾追加以下内容并保存
#Hadoop Related Options
export HADOOP_HOME=/home/frank/hadoop-3.2.1
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/nativ"
然后让环境变量生效
source ~/.bashrc
hadoop-env.sh
这个文件作为主程序来运行,用来配置 YARN、HDFS,MapReduce,以及Hadoop的相关项目的设置。当Hadoop作为单点模式时,需要定义之前安装的Java的路径。
因为在上一步已经创建出了一个环境变量 HADOOP_HOME,并且使之生效,那么后续的配置就可以直接利用这个环境变量了。
sudo gedit $HADOOP_HOME/etc/hadoop/hadoop-env.sh
打开文件后,把里面的 export JAVA_HOME 这段注释删掉,然后用这个内容替换
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
保存退出该文件。
这是在给Hadoop配置 JAVA_HOME 的运行环境的地址。因为Hadoop就是用Java开发出来的,那么它的运行肯定要依赖Java环境。那么这里的配置信息的地址,就是本文中Java的安装部分里标注的jvm的安装路径。
core-site.xml这个文件用来定义HDFS和Hadoop核心属性。以单节点的方式安装Hadoop时,需要为NameNode来指定URL,还要指定临时文件夹让Hadoop用来进行map和reduce的计算。这里是要指定文件夹,所以需要事先创建好文件夹,然后才能在这个文件里修改。
mkdir /home/frank/tmpdata
sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml
在里面的 configuration 标签之间添加以下的代码
<property>
<name>hadoop.tmp.dir</name>
<value>/home/frank/tmpdata</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
hdfs-site.xml
这个文件里的属性用来定义保存的节点元数据,文件系统镜像文件,还有日志文件。所以修改这个文件就是在定义 NameNode、DataNode存储路径。
另外,里面的一个参数 dfs.replication 的值默认为 3,针对单点模式的话就要设置为 1。因为是单点模式,没有冗余,所以只能为 1
mkdir dfsdata
cd dfsdata
mkdir namenode
mkdir datanode
然后修改这个 hdfs-site.xml 文件
在configuration标签之间添加
<property>
<name>dfs.data.dir</name>
<value>/home/frank/dfsdata/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/frank/dfsdata/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml
顾名思义,这个文件是用来配置 MapReduce的特性的
在configuration之间添加
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
这个文件是用来定义YARN的,里面包含了 Node Manager,Resource Manager,Containers、Application Master
在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>
至此,Hadoop的单机安装模式的配置就完成了。接下来需要安装ssh,以保证用户可以免密登录系统。
安装OpenSSH下面是在安装 OpenSSH 服务和客户端
sudo apt install openssh-server openssh-client -y
可以不需要创建新的用户,直接使用当前的frank用户来管理Hadoop,那么就为frank这个用户设定免密登录。
切换到frank用户
su - frank
创建一个ssh密钥对,即一个公钥一个私钥,并且定义这个密钥对存放的位置
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
然后通过 cat 命令把公钥以注册秘钥的形式保存到一个文件上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
最后给当前用户设置一个针对注册秘钥的权限
chmod 0600 ~/.ssh/authorized_keys
到此,当前这个用户就可以不通过密码来使用SSH服务了。如果要验证免密ssh是否配置成功,可以运行下面的命令。测试当前用户是否可以不需要秘钥就可以登录本地
ssh localhost
在开启Hadoop服务前,必须对NameNode进行格式化,也就是初始化。
hdfs namenode -format
导航到目录 ~/hadoop-3.2.1/sbin/ 目录下,然后执行下面的命令开启 NameNode 和 DataNode
./start-dfs.sh
这里的dfs 也就是 distributed file system 分布式文件系统的意思。也就是开启Hadoop的HDFS这个底层服务。
这里主要看这三项,namenode,datanode和 secondary NameNode
一旦这三项服务都开启了,就可以开始开启 YARN这个服务了。
./start-yarn.sh
这里就是开启了resourcemanager和nodemanager
最后可以用一个简单的命令来验证所有的守护进程是否都以Java进程的方式开启
jps
开启了一些服务器程序,Hadoop还提供了一个前端界面来查看和监听集群的参数和状态。
查看NameNode状态 http://localhost:9870
查看DataNode状态 http://localhost:9864
查看 YARN Resource Manager 状态 http://localhost:8088
至此,Hadoop的单点模式就安装配置完成了。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved