Hadoop伪分布式
Hadoop有三种运行模式,本地模式,伪分布式模式和完全分布式模式。前面做了Hadoop安装,Hadoop安装好了其实就是本地模式了。这种情况下可以试着玩一下官方的案例,比如WordCount,具体怎么玩可以找找别的博客。关于Hadoop集群的搭建,其实Hadoop文档的官网就有,很多文件的功能都写的很清楚,感兴趣可以看看。
今天记录一下搭建一个伪分布式的过程。
前提条件:Hadoop已经安装在虚拟机上,Java JDK也安装了。这个之前有记录过。
这不是有手就行?
HDFS配置
我的配置文件在这个目录:/opt/module/hadoop-2.7.2/etc/hadoop/
进入配置文件做修改可用类似以下命令(请先进入到相应的目录如上)
vim hadoop-env.sh
或
vi hadoop-env.sh
(1)配置:hadoop-env.sh
Linux系统中获取JDK的安装路径:(注意要用自己的JDK安装路径)
echo $JAVA_HOME
执行以上命令我显示:/opt/module/jdk1.8.0_144
进入hadoop-env.sh文件,修改JAVA_HOME 路径(一般就是直接加这一行):
export JAVA_HOME=/opt/module/jdk1.8.0_144
(2)配置:core-site.xml
<!-- 指定HDFS中NameNode的地址为hadoop1,咱现在只有这一台机器 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<!-- 这里我指定存储到/opt/module/hadoop-2.7.2/data/tmp目录下-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
(3)配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<!--这里我将副本数量设置为1个 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
启动集群:
以下命令我在/opt/module/hadoop-2.7.2/目录下执行,(如果不在安装目录下:去掉 / 及前面的内容执行就可以,如第一条只执行:hdfs namenode -format)。
(1)格式化NameNode(第一次启动时格式化,以后就不要总格式化,因为每格式化一次clusterID就会改变,导致集群NameNode的id与datanode的id不一致,这样NameNode找不到以往记录了)
bin/hdfs namenode -format
(2)启动NameNode
sbin/hadoop-daemon.sh start namenode
(3)启动DataNode
sbin/hadoop-daemon.sh start datanode
然后输入命令:jps 查看节点是否启动
web端查看HDFS文件系统
http://hadoop1:50070/dfshealth.html#tab-overview (注意路径中hadoop1要换成自己的主机名或者IP地址)
可以试一下操作WordCount案例(懒逼作者,不记录了),还有yarn没配置。
配置yarn
(a)配置yarn-env.sh
进入yarn-env.sh,配置一下JAVA_HOME
在里面添加如下语句:(用自己的路径)
export JAVA_HOME=/opt/module/jdk1.8.0_144
(b)进入yarn-site.xml,配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
<!--指定hadoop1为resourcemanager节点,咱就一台机器也只能是它 -->
</property>
(c)配置:mapred-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
(d)配置: (对mapred-site.xml.template重新命名为,呃,其实可以不重命名) mapred-site.xml
mv mapred-site.xml.template mapred-site.xml (重命名)
vi mapred-site.xml (进入文件)
进入mapred-site.xml添加以下内容
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
启动集群:
1.首先保证namenode和datanode启动
启动ResourceManager
yarn-daemon.sh start resourcemanager
(c)启动NodeManager
yarn-daemon.sh start nodemanager
jps查看以下是否启动了。
YARN的浏览器页面查看
http://hadoop1:8088/cluster(注意路径中hadoop1要换成自己的主机名或者IP地址)