Hadoop单节点集群

Hadoop Single Node Cluster

  • Hadoop Single Node Cluster 只以一台机器来建立Hadoop环境,但你仍然可以使用Hadoop命令,只是无法发挥使用多台机器的威力。
  • 因为只有一台服务器,所有的功能都集中在一台服务器中。

安装JDK

  • Hadoop是基于Java开发的,所有必须先安装Java环境。
  • 点击“终端”,输入以下代码查看Java版本
java -version
  • JDK: Java Development Kit, Java语言的软件开发工具包
    查看Java版本

  • 在Linux中既可以使用apt进行软件包的管理,也可以使用apt-get下载安装软件包(或称为套件)。在这里我们会使用apt-get安装jdk。

  • 不过,在安装之前,为了获取最新的软件包版本必须先运行apt-get update。此命令会连接到APT Server,更新最新的软件包信息。

  • 运行apt-get必须具有superuser(超级用户)权限,但superuser权限很大,为了安全考虑,一般我们在运行是不会以superuser来登录系统。我们可以在命令前加上sudo命令,系统会询问superuser密码(既安装是输入的密码),这样就可以获得superuser权限。

  • 在“终端”输入以下命令

sudo apt-get update
  • 接着输入密码

输入密码

  • 任务完成

任务完成

  • 使用apt-get安装JDK
  • 在“终端”输入以下命令
sudo apt-get install default-jdk

在这里插入图片描述

  • 先输入“Y”再按Enter键
  • 任务完成
    在这里插入图片描述
  • 再次使用以下命令查看Java版本
java -version
  • 系统响应已安装的Java版本时,代表已经成功安装了JDK
    代表已经成功安装了JDK
  • 查询Java安装路径
update-alternatives --display java

设置SSH无密码登录

  • Hadoop是由很多台服务器所组成的,当我们启动Hadoop系统时,NameNode必须与DataNode连接,并管理这些节点(DataNode)。此时系统会要求用户输入密码。为了让系统顺利运行不需手动输入密码,就需要SSH设置成无密码登录。
  • 注意,无密码登录并非不需要密码,而是以事先交换的SSH Key(密钥)来进行身份验证。
  • Hadoop使用SSH(Secure Shell)连接是目前较可靠、专为远程登录其他服务器提供的安全性协议。通过SSH会对所有传输的数据进行加密。利用SSH协议可以防止远程管理系统时信息外泄的问题。

安装SSH

  • 在“终端”输入以下命令
sudo apt-get install ssh

在这里插入图片描述
在这里插入图片描述

安装rsync

  • 在“终端”输入以下命令
sudo apt-get install rsync

在这里插入图片描述

  • 在“终端”输入以下命令
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

产生密钥文件

查看产生的密钥

  • SSH Key会产生在用户的根目录下,也就是/home/hduser
  • 在“终端”输入以下命令
ll ~/.ssh

在这里插入图片描述

将产生的Key放置到许可证文件中

  • 为了能够无密码登录本机,我们必须将产生的公钥加入到许可证文件中。
  • 在“终端”输入以下命令
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  • Linux的输出重定向附加功能命令的格式如下
  • 命令 >> 文件
  • 重定向符号“>>”会将命令执行后产生的标准输出(stdout)重定向附加在该文件之后。
  • 如果文件不存在,就会先创建一个新文件,然后把标准输出(stdout)的内容存储在这个文件中。
  • 如果文件已经存在,就会将标准输出(stdout)的数据附加至文件内容的后面,而不会覆盖原来文件的内容。

下载安装Hadoop

  • 登录Hadoop官网下载页面

https://archive.apache.org/dist/hadoop/common/

在这里插入图片描述

  • 下载Hadoop

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 在“终端”输入wget及空格键,然后粘贴之前复制的链接
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
  • 解压缩hadoop 2.6
  • 在“终端”输入以下命令
sudo tar -zxvf hadoop-2.6.0.tar.gz
  • 移动hadoop2.6.0目录到/usr/local/hadoop
sudo mv hadoop-2.6.0 /usr/local/hadoop

下载安装Hadoop(方法二)

  • 解决下载时间过长问题
  • 登录清华大学开源软件镜像站:

https://mirrors.tuna.tsinghua.edu.cn/

在这里插入图片描述
在这里插入图片描述

  • 在“终端”输入wget及空格键,然后粘贴之前复制的链接
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable2/hadoop-2.10.1.tar.gz --no-check-certificate

在这里插入图片描述

  • 下载完成
    在这里插入图片描述
  • 解压缩Hadoop 2.10.1
  • 在“终端”输入以下命令
sudo tar -zxvf hadoop-2.10.1.tar.gz

在这里插入图片描述

  • 移动hadoop2.6.0目录到/usr/local/hadoop
sudo mv hadoop-2.10.1 /usr/local/hadoop

在这里插入图片描述

查看Hadoop安装目录/usr/local/hadoop

  • 在“终端”输入以下命令
ll /usr/local/hadoop

在这里插入图片描述
在这里插入图片描述

设置Hadoop环境变量

  • 运行hadoop必须设置很多环境变量,可是如果每次登录时都必须重新设置就会很麻烦。因此可以再~/.bashrc文件中设置每次登录时都会自动运行一次环境变量设置。
  • 编辑 ~/.bashrc
  • 在“终端”输入以下命令
sudo gedit ~/.bashrc
  • 在打开的文件末尾添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
  • 编辑完成后,先保存,再退出!
    在这里插入图片描述

对上面的解释

  • 设置JDK安装路径

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

  • 设置HADOOP_HOME为Hadoop的安装路径/usr/local/Hadoop

export HADOOP_HOME=/usr/local/Hadoop

  • 设置PATH

export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin export
PATH= P A T H : PATH: PATH:HADOOP_HOME/sbin

  • 设置HADOOP其他环境变量

export HADOOP_MAPRED_HOME= H A D O O P H O M E e x p o r t H A D O O P C O M M O N H O M E = HADOOP_HOME export HADOOP_COMMON_HOME= HADOOPHOMEexportHADOOPCOMMONHOME=HADOOP_HOME export HADOOP_HDFS_HOME= H A D O O P H O M E e x p o r t Y A R N H O M E = HADOOP_HOME export YARN_HOME= HADOOPHOMEexportYARNHOME=HADOOP_HOME

  • 链接库的相关设置

export HADOOP_COMMON_LIB_NATIVE_DIR= H A D O O P H O M E / l i b / n a t i v e e x p o r t H A D O O P O P T S = " − D j a v a . l i b r a r y . p a t h = HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path= HADOOPHOME/lib/nativeexportHADOOPOPTS="Djava.library.path=HADOOP_HOME/lib" export
JAVA_LIBRARY_PATH= H A D O O P H O M E / l i b / n a t i v e : HADOOP_HOME/lib/native: HADOOPHOME/lib/native:JAVA_LIBRARY_PATH

让~/.bashrc设置生效

  • 当修改/.bashrc之后,先从系统注销再登录系统,这样设置就会生效,或者使用source命令让/.bashrc设置生效

  • 在“终端”输入以下命令

source ~/.bashrc

在这里插入图片描述

编辑Hadoop-env.sh

  • hadoop-env.sh是hadoop的配置文件,在这里必须设置Java的安装路径
  • 在“终端”输入以下命令
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
  • 原文件中JAVA_HOME的设置是:

export JAVA_HOME=${JAVA_HOME} 修改为:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

  • 修改完保存并关闭文件
    在这里插入图片描述

设置core-site.xml

  • 在“终端”输入以下命令
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
  • 设置HDFS的默认名称
<property>
   <name>fs.default.name</name>
   <value>hdfs://localhost:9000</value>
</property>
  • 修改完保存并关闭文件
  • 在core-site.xml中,我们必须设置HDFS的默认名称,当使用命令或程序要存取HDFS时,可使用此名称。
    在这里插入图片描述

编辑yarn-site.xml

  • yarn-site.xml文件中含有MapReduce2(YARN)相关的配置设置。
  • 在“终端”输入以下命令
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
  • 编辑yarn-site的配置
<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>
  • 修改完保存并关闭文件

在这里插入图片描述

设置mapred-site.xml

  • mapred-site.xml用于设置监控Map与Reduce程序的JobTracker任务分配情况以及TaskTracker任务运行情况。Hadoop提供了设置的模板文件,可以自行复制修改。
  • 在“终端”输入以下命令,复制模板文件:由mapred-site.xml.template至mapred-site.xml
sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

在这里插入图片描述

编辑mapred-site.xml

  • 在“终端”输入以下命令
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
  • 编辑mapred-site.xml的配置
<property>
 <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>
  • 修改完保存并关闭文件

在这里插入图片描述

编辑hdfs-site.xml

  • hdfs-site.xml用于设置HDFS分布式文件系统
  • 在“终端”输入以下命令
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
  • 输入以下内容
<property>
   <name>dfs.replication</name>
   <value>3</value>
</property>
<property>
   <name>dfs.namenode.name.dir</name>
   <value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
   <name>dfs.datanode.data.dir</name>
   <value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
  • 修改完保存并关闭文件

在这里插入图片描述

  • 对上面内容的解释
  • 设置blocks副本备份数量
<property>
   <name>dfs.replication</name>
   <value>3</value>
</property>
  • 设置NameNode数据存储目录
<property>
   <name>dfs.namenode.name.dir</name>
   <value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
  • 设置DataNode数据存储目录
<property>
   <name>dfs.datanode.data.dir</name>
   <value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>

创建并格式化HDFS目录

  • 创建NameNode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
  • 创建DataNode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
  • 将Hadoop目录的所有者更改为hduser
sudo chown hduser:hduser -R /usr/local/hadoop
  • Linux是多人多任务的操作系统,所有的目录或文件都具有所有者。使用chown可以将目录或文件的所有者更改为hduser。

在这里插入图片描述

将HDFS进行格式化

  • 在“终端”输入以下命令
hadoop namenode -format
  • Note:如果你的HDFS已经有数据,可以执行以上HDFS格式化命令,这个操作会删除所有的数据。

在这里插入图片描述

启动Hadoop

  • 方法一:分别启动HDFS、YARN,使用start-dfs.sh启动HDFS、start-yarn.sh启动YARN
  • 方法二:同时启动HDFS、YARN,使用start-all.sh

启动HDFS

start-dfs.sh

在这里插入图片描述

启动YARN

start-yarn.sh

在这里插入图片描述

查看NameNode、DataNode进程是否启动

  • 在“终端”输入以下命令
jps

在这里插入图片描述

HDFS功能:NameNode、Secondary NameNode、DataNode
MapReduce2(YARN):ResourceManager、NodeManager

Hadoop Resource Manager Web界面

  • 在虚拟机内的浏览器中输入以下网址

http://localhost:8088/
在这里插入图片描述
因为安装的是Single Node Cluster,所有当前只有一个节点

在这里插入图片描述

NameNode HDFS Web 界面

在虚拟机内的浏览器中输入以下网址
http://localhost:50070/

在这里插入图片描述

查看Live Nodes

在这里插入图片描述

查看DataNodes

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_53256878/article/details/129655401