Hadoop 四种环境部署 (二)

四种部署模式

本地模式,伪分布式模式,完全分布式模式,HA完全分布式模式

区分的依据是NameNode、DataNode、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器。

模式名称各个模块占用的JVM进程数各个模块运行在几个机器数上
本地模式11
伪分布式N1
分布式NN
HA分布式NN

1.本地模式

所有的模块都运行在一个JVM进程中,使用的不是HDFS而是本地文件系统.下载的安装包不进行任何配置,默认就是本地模式

  1. 下载hadoop安装包 hadoop-3.1.1.tar.gz
  2. 安装前确认已经安装了JDK
    echo $JAVA_HOME
  3. 解压文件到指定目录

这样我们就完成了本地模式的搭建.我们可以运行一下hadoop自带的wordcount例子来实验一下

首先,准备一个输入文件word_count.input,内容可以如下

hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop

运行wordcount demo

[hadoop@bigdata-senior01 hadoopstandalone]$ ${HADOOP_HOME}/bin/hadoop jar ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount ~/word_count.input ~/word_count_output

运行完毕后可以看到输入结果是一个目录,目录下有两个文件:_SUCCESSpart-r-00000,其中part-r-00000是结果输入,_SUCCESS表示任务运行成功

2.伪分布式模式

1.配置hadoop-env.sh,mapred-env.sh,yarn-env.sh中的JAVA_HOME参数

export JAVA_HOME=${你的JDK目录}

2.配置core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:8020</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/export/hadoop/tmp</value>
</property>
  • fs.defaultFS配置的是HDFS的地址
  • hadoop.tmp.dir配置的是NameNode数据存储的目录

hadoop.tmp.dir默认地址是/tmp/hadoop-${user.name},每次系统重启后,tmp目录下的数据将会被清空

3.格式化HDFS并重启

  • 配置hdfs-site.xml
<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>

这里的dfs.replication指的是HDFS存储时的备份数量

  • 格式化HDFS
${HADOOP_HOME}/bin/hdfs namenode -format

格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中

格式化后可以查看指定的hadoop.tmp.dir目录下是否有dfs目录

4.启动NameNode和DataNode

[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs --daemon start namenode
[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs --daemon start secondarynamenode
[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs --daemon start datanode
[root@izj6cj3wje0m1jxumjkuelz ~]# jps
16936 NameNode
3034 Bootstrap
17181 Jps
17150 SecondaryNameNode
17038 DataNode

5.测试在HDFS上创建目录、上传和下载文件

首先创建一个test目录

[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs dfs -mkdir /test
[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs dfs -ls /
Found 5 items
drwxr-xr-x   - root supergroup          0 2018-08-13 20:51 /demo
drwxr-xr-x   - root supergroup          0 2018-08-12 11:06 /demo1
drwxr-xr-x   - root supergroup          0 2018-08-13 20:52 /test
drwx------   - root supergroup          0 2018-08-12 11:20 /tmp
drwxr-xr-x   - root supergroup          0 2018-08-12 11:18 /wordcountdemo

上传文件到HDFS上

[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs dfs -put ~/word_count.input /test
[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs dfs -ls /test
Found 1 items
-rw-r--r--   1 root supergroup         71 2018-08-13 20:53 /test/word_count.input

下载文件到本地目录

[root@izj6cj3wje0m1jxumjkuelz ~]# hdfs dfs -get /test/word_count.input tmp/
[root@izj6cj3wje0m1jxumjkuelz ~]# ls tmp/
word_count.input

6.配置和启动Yarn

  • 首先配置mapred-site.xml,指定mapreduce运行在yarn框架上
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 配置yarn-site.xml
<!--配置yarn的混选方式,选择为默认混选算法-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!--指定resourcemanager运行在哪个节点上-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
</property>
<!-- Site specific YARN configuration properties -->
<!--开启日志聚集-->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
 </property>
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>106800</value>
 </property>
  • 启动ResourceManager
[root@izj6cj3wje0m1jxumjkuelz etc]# yarn --daemon start resourcemanager
[root@izj6cj3wje0m1jxumjkuelz etc]# yarn --daemon start nodemanager
[root@izj6cj3wje0m1jxumjkuelz etc]# jps
18401 NodeManager
18515 Jps
16936 NameNode
3034 Bootstrap
17979 ResourceManager
17150 SecondaryNameNode
17038 DataNode
  • 开启历史服务

Hadoop开启历史服务可以在web页面上查看Yarn上执行job情况的详细信息。可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息

[root@izj6cj3wje0m1jxumjkuelz etc]# mapred --daemon start historyserver
  • 开启日志聚集

在yarn-site.xml中配置

<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
 </property>
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>106800</value>
 </property>

yarn.log-aggregation-enable:是否启用日志聚集功能。

yarn.log-aggregation.retain-seconds:设置日志保留时间,单位是秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值