目录

伪分布式部署

1.规划和准备

  • 规划
    咋规划啊,就一个电脑,但是部署的内容还是需要知道的,麻雀虽小,五脏俱全。每个hadoop环境,包含一个hdfs和一个yarn。
    具体如下

架构

bigdata111

作用

HDFS

NameNode

存储元数据

SecondaryNameNode

监控namenode 的元数据,每隔一定的时间进行元数据的合并

DataNode

存储数据的节点,会对数据块进行校验

yarn

ResourceManager

处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度

NodeManager

单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令

  • 准备
    关闭防火墙(看前面的文章)、静态ip(192.168.157.121)、设置主机名称为bigdata121

2.解压方式安装hadoop2.8.4和jdk8并配置环境变量

①压缩包位置

hadoop伪分布式部署(4)_伪分布式部署

②解压位置

hadoop伪分布式部署(4)_xml_02

③配置环境变量

  • vi /etc/profile
    后面追加下面的代码
export JAVA_HOME=/opt/mod/jdk1.8.0_144
export HADOOP_HOME=/opt/mod/hadoop-2.8.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • source /etc/profile

3.配置hdfs

切换到/opt/mod/hadoop-2.8.4/etc/hadoop目录下

hadoop伪分布式部署(4)_hadoop_03

1.配置core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata121:9000</value>
</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/mod/hadoop-2.8.4/data</value>
</property>

2.配置hdfs-site.xml

<!--数据冗余数-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--secondary的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata121:50090</value>
</property>
<!--关闭权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

3.修改hadoop-env.sh

25行指定自己的java_home

24 # The java implementation to use.
25 export JAVA_HOME=/opt/mod/jdk1.8.0_144

至此,hdfs已经部署成功了

4.测试

  • 格式化Namenode
hdfs namenode -format
  • 启动hdfs
start-dfs.sh
  • 命令查看hdfs是否启动
  • hadoop伪分布式部署(4)_hadoop_04

  • 浏览器打开测试
    ​​​http://192.168.157.121:50070​hadoop伪分布式部署(4)_hdfs_05
    出现这个页面就成功了。
  • 测试一个上传文件
    在 /opt/mod下新建个test文件,内容如下
  • hadoop伪分布式部署(4)_大数据_06

  • 切换到/opt/mod下,上传到hdfs根目录去
hadoop fs -put test /

2个地方可以看到

hadoop伪分布式部署(4)_大数据_07


hadoop伪分布式部署(4)_hadoop_08


自此hdfs配置成功,下面配置yarn。

yarn配置

切换到/opt/mod/hadoop-2.8.4/etc/hadoop目录下

1.配置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>bigdata121</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天(秒) -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

2.配置mapred-site.xml

因为没有mapred-site.xml,可以使用
​​​cp mapred-site.xml.template mapred-site.xml​​​ 克隆一份
然后修改mapred-site.xml

<configuration>
<!-- 指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata121:10020</value>
</property>
<!--历史服务器页面的地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata121:19888</value>
</property>

</configuration>

3.修改yarn-env.sh

明确指定全路径java目录
23行

# some Java parameters
23 export JAVA_HOME=/opt/mod/jdk1.8.0_144

4.修改mapred-env.sh

第16行

export JAVA_HOME=/opt/mod/jdk1.8.0_144

自此,yarn已经配置好了

5.测试

执行start-yarn.sh

hadoop伪分布式部署(4)_hadoop_09


hadoop伪分布式部署(4)_伪分布式部署_10


以上2图都说明yarn也已经启动了。


自此,hadoop伪分布部署已经全部部署功能, 补充点概念

  • 为什么要格式化?
    NameNode主要被用来管理整个分布式文件系统的命名空间(实际上就是目录和文件)的元数据信息,同时为了保证数据的可靠性,还加入了操作日志,所以,NameNode会持久化这些数据(保存到本地的文件系统中)。对于第一次使用HDFS,在启动NameNode时,需要先执行-format命令,然后才能正常启动NameNode节点的服务。
    格式化做了哪些事情?
    在NameNode节点上,有两个最重要的路径,分别被用来存储元数据信息和操作日志,而这两个路径来自于配置文件,它们对应的属性分别是dfs.name.dir和dfs.name.edits.dir,同时,它们默认的路径均是/tmp/hadoop/dfs/name。格式化时,NameNode会清空两个目录下的所有文件,之后,会在目录dfs.name.dir下创建文件
    hadoop.tmp.dir 这个配置,会让dfs.name.dir和dfs.name.edits.dir会让两个目录的文件生成在一个目录里
  • 启动集群得命令:
    Namenode的主节点:sbin/start-dfs.sh
    Yarn的主节点:sbin/stop-yarn.sh

注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。


自此,本文大功告成!!