2.4 Hadoop伪分布式快速部署

2019-05-29 20:24:47 浏览数 (1)

版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/80960326

Hadoop伪分布式快速部署

“卜算子·大数据”一个开源、成体系的大数据学习教程。——每周日更新

本节主要内容:

  • 依赖安装、免密登录
  • 安装Java
  • 伪分布式——Hadoop MapReduce配置
  • 配置Hadoop环境变量
  • 伪分布式——Hadoop MapReduce开启
  • 伪分布式——YARN配置
  • 伪分布式——YARN开启
  • Hadoop 开启历史查看服务
  • Hadoop 停止伪分布式集群命令

2.4.1 依赖安装、免密登录

依赖安装

代码语言:javascript复制
sudo apt install ssh
sudo apt install pdsh

免密登录

代码语言:javascript复制
# 创建ssh密匙,执行如下命令后回车到底
ssh-keygen -t rsa
# 将产生的公共密匙追加到authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 尝试免密码登录(初次登录会询问然后需要输入yes,二次登录可以直接登录)配置成功
ssh localhost

2.4.2 安装Java

  • Java文件
代码语言:javascript复制
# 创建jdk文件夹
sudo mkdir -p /opt/java

# 进入Downloads文件夹
cd ~/Downloads

# 通过wget下载
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz

# 解压
tar -zxf jdk-8u172-linux-x64.tar.gz

# 将jdk文件夹移动到/opt/java/
sudo mv jdk1.8.0_172/ /opt/java/jdk1.8.0_172/
  • 在服务器database(192.168.56.110)上安装Cassandra
  • 配置Java变量文件源码

1.通过vim创建jdk-1.8.sh文件

代码语言:javascript复制
sudo vim /etc/profile.d/jdk-1.8.sh

2.添加如下内容

代码语言:javascript复制
#!/bin/sh
# Author:wangxiaolei 王小雷
# Blog: http://blog.csdn.net/dream_an
# Github: https://github.com/wangxiaoleiai
# project: https://github.com/wangxiaoleiai/big-data
# Date: 2018.07

export JAVA_HOME=/opt/java/jdk1.8.0_172
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

3.让Java变量生效

代码语言:javascript复制
source /etc/profile

4.查看已配置完成的Java

代码语言:javascript复制
java -version

2.4.3 伪分布式——Hadoop MapReduce配置

  1. etc/hadoop/hadoop-env.sh
代码语言:javascript复制
export JAVA_HOME=/opt/java/jdk1.8.0_172
  1. etc/hadoop/core-site.xml
代码语言:javascript复制
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
      <name>hadoop.proxyuser.busuanzi.hosts</name>
      <value>*</value>
    </property>
    <property>
      <name>hadoop.proxyuser.busuanzi.groups</name>
      <value>*</value>
    </property>
</configuration>
  1. etc/hadoop/hdfs-site.xml
代码语言:javascript复制
<configuration>

    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/var/lib/hadoop/hdfs/name/</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>/var/lib/hadoop/hdfs/data/</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

</configuration>

2.4.4 配置Hadoop环境变量

代码语言:javascript复制
sudo vim /etc/profile.d/hadoop-3.1.0.sh

增加如下内容

代码语言:javascript复制
#!/bin/sh
# Author:wangxiaolei 王小雷
# Github: https://github.com/wangxiaoleiai

export HADOOP_HOME="/opt/hadoop/hadoop-3.1.0"
export PATH="$HADOOP_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

使变量生效

代码语言:javascript复制
source /etc/profile

2.4.5 伪分布式——Hadoop MapReduce开启

  1. 创建HDFS系统文件,并且改权限为hadoop用户,设置rcmd_default入口。
代码语言:javascript复制
sudo mkdir /var/lib/hadoop
sudo chown busuanzi:busuanzi /var/lib/hadoop/
代码语言:javascript复制
# 新建rcmd_default文件
# 设置rcmd_default入口,避免出现 master: rcmd: socket: Permission denied
sudo sh -c "echo "ssh" > /etc/pdsh/rcmd_default"

2. 格式化(注意格式化只需要执行一次即可)

代码语言:javascript复制
cd /opt/hadoop/hadoop-3.1.0/
bin/hdfs namenode -format
  1. 开启NameNode和DataNode
代码语言:javascript复制
sbin/start-dfs.sh
  1. jps查看启动成功
代码语言:javascript复制
jps
  1. 浏览器访问namenode http://192.168.56.101:9870/

注意,自Hadoop3.0之后,端口5007变成端口9870官方解释

2.4.6 伪分布式——Hadoop YARN配置、开启 源码

  1. etc/hadoop/mapred-site.xml:
代码语言:javascript复制
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>
  1. etc/hadoop/yarn-site.xml:
代码语言:javascript复制
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

2.4.7 伪分布式——YARN开启

  1. 启动YARN
代码语言:javascript复制
sbin/start-yarn.sh
  1. 使用jps查看启动情况
代码语言:javascript复制
jps
  1. 浏览器访问ResourceManager http://192.168.56.101:8088/

至此,伪分布式部署完成。

2.4.8 开启历史查看服务

代码语言:javascript复制
bin/mapred --daemon start historyserver

访问 http://192.168.56.101:19888/

2.4.9 Hadoop 停止伪分布式集群命令

  1. 停止YARN
代码语言:javascript复制
sbin/stop-yarn.sh
  1. 停止Namenode和Datanode
代码语言:javascript复制
sbin/stop-dfs.sh
  1. 停止历史服务
代码语言:javascript复制
bin/mapred --daemon stop historyserver

本节完成

拓展部分

如果要清除Hadoop,彻底删除Hadoop相关文件与配置

代码语言:javascript复制
rm -rf /opt/hadoop/hadoop-3.1.0/logs
rm -rf /var/lib/hadoop/*

Hadoop哪些端口在3.0之后被改掉

代码语言:javascript复制
Namenode ports
----------------
50070 --> 9070
50470 --> 9470

Datanode ports
---------------
50010 --> 9010
50020 --> 9020
50075 --> 9075
50475 --> 9475

Secondary NN ports
---------------
50090 --> 9090
50091 --> 9091

0 人点赞