我爱编程技术文技术干货

Hadoop启动模式,基本配置,启动方式

2017-07-10  本文已影响0人  he_321

Local (Standalone) Model

MapReduce程序运行在本地,启动jvm
启动本地模式:
1、配置hadoop-env.sh配置文件中的java_home路径
2、在hadoop安装目录下:mkdir input
3、在input目录下创建任意文件
4、统计input文件夹下所有文件中的单词的数量:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount input output

Pseudo-Distributed Mode

1、配置etc/hadoop/core-site.xml:

##配置namenode所在主机
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bxp:8020</value>
    </property>
</configuration>
##配置文件临时目录
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/lib/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
    </property>
</configuration>

2、配置etc/hadoop/hdfs-site.xml:

##配置文件备份数量
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

3、格式化文件系统
bin/hdfs namenode -format
4、启动namenode
sbin/hadoop-daemon.sh start namenode
4、启动datanode
sbin/hadoop-daemon.sh start datanode
5、浏览器访问:http://bxp:50070,查看hdfs
6、命令行创建hdfs文件目录:bin/hdfs dfs -mkdir -p /user/bxp/mapreduce/wordcount/input
7、命令行查看hdfs文件系统目录结构:bin/hdfs dfs -ls -R /
8、上传文件到hdfs文件系统:bin/hdfs dfs -put input/test /user/bxp/mapreduce/wordcount/input(下载的命令为get,查看为cat)
9、运行
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /user/bxp/mapreduce/wordcount/input /user/bxp/mapreduce/wordcount/output
10、查看运行结果:
bin/hdfs dfs -cat /user/bxp/mapreduce/wordcount/output/part-r-00000
此时运行的结果和本地启动时运行的结果相同,不同的是输入的数据源一个是在本地,一个是在hdfs文件系统中。当在etc/hadoop/core-site.xml中配置文件系统时,回去寻找文件系统,当没有进行配置,默认会去寻找本地文件系统(file:///):

YARN on Single Node

1、在etc/hadoop/yarn-env.sh中配置JAVA_HOME
2、配置etc/hadoop/yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

  <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
    </property>
</configuration>

3、在etc/hadoop/slaves文件中配datanode和nodemamager所在主机的主机名或ip(默认datanode和nodemanager在同一台主机上)
localhost
4、启动yarn
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
5、浏览器查看yarn的监控界面:8088
6、接下来进行将mapreduce程序运行在yarn上的配置.
7、配置etc/hadoop/mapred-env.sh中的JAVA_HOME
8、重命名mapred-site.xml.template为mapred-site.xml并配置etc/hadoop/mapred-site.xml

##将mapreduce运行在yarn上,默认值是local
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

9、运行
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /user/bxp/mapreduce/wordcount/input /user/bxp/mapreduce/wordcount/output
10、查看运行结果:
bin/hdfs dfs -cat /user/bxp/mapreduce/wordcount/output/part-r-00000
此时的运行结果不变,不同的是之前的mapreduce程序运行在本地,此时的mapreduce程序运行在yarn上

Fully-Distributed Mode

启动mapreduce历史服务器

sbin/mr-jobhistory-daemon.sh start historyserver

配置yarn日志的聚集

聚集:应用运行完成以后,将日志信息上传到HDFS文件系统中
在etc/hdoop/yarn-site.xml中增加属性

###配置日志聚集
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
###配置日志在文件系统中存放的秒数(604800为7天)
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>

配置完成后需要将resourcemanager和mapreduce历史任务进行重启才会生效
sbin/yarn-daemon.sh stop resourcemanager
sbin/yarn-daemon.sh stop nodemanager
sbin/mr-jobhistory-daemon.sh stop historyserver

sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver

Hadoop配置文件

配置HDFS垃圾回收时间(分钟)

在core-site.xml配置文件中进行增加属性

<property>
         <name>fs.trash.interval</name>
         <value>7*24*60</value>
</property>

hadoop启动的三种方式

细节回顾

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://bxp:8020</value>
   </property>
指定了HDFS文件系统,其中主机代表的就是namenode所在的主机。
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>0.0.0.0:50090</value>
</property>
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
  </property>
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>0.0.0.0:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>0.0.0.0:19888</value>
</property>

问题

每次运行bin/hdfs dfs都会出现警告WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable。原因是hadoop的lib/native本地库和系统所使用的本地库不对应,要想去掉警告,需要下载hadoop的源码在本地进行编译,并替换native即可。
编译可以看源码包下的BUILDING.txt文件

上一篇 下一篇

猜你喜欢

热点阅读