理论学习:
- hadoop是什么?
hadoop是Apache基金会所开发的一个开源的并且可以运行在大规模集群上的分布式计算平台,其核心设计为分布式文件系统HDFS和并行计算框架MapReduce 。 - hadoop是用java语言开发的一个开源分布式计算机平台,由Doug Cutting创建
- hadoop优势:高可靠性,高扩展性,高效性,高容错性,低成本
- hadoop2,0关键特性:YARN ,HDFS单点故障得以解决,HDFS Fderation,HDFS快照,支持windows操作系统
- hadoop3.0特性:hadoop common,hadoop Hdfs,Hadoop YARN
- Hadoop生态系统组件:HDFS ,Mapreduce,YARN,HBase,Hive,Pig,Mahout,Zookeeper,Sqoop,Flume,Oozie,tez,Ambari,Spark
实操
Hadoop的安装方式有三种,分别是单机模式,伪分布式模式,分布式模式。
• 单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
• 伪分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
• 分布式模式:使用多个节点构成集群环境来运行Hadoop。
• 本实验采取单机伪分布式模式进行安装。
重要知识点提示: - Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件
- Hadoop 的配置文件位于 hadoop/etc/hadoop/ 中,伪分布式需要修改5个配置文件hadoop-env.sh、 core-site.xml 、 hdfs-site.xml 、mapred-site.xml和yarn-site.xml
- Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现
实验步骤:
10. 安装软件(jdk,hadoop,),环境配置,创建用户及ssh免密
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
sudo apt-get install openssh-server
免密登陆设置:
12. 修改5个配置文件:
修改第一个配置文件sudo vi hadoop-env.sh
修改第二个配置文件sudo vi core-site.xml
<configuration>
<!-- 配置hdfs的namenode(老大)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 配置Hadoop运行时产生数据的存储目录,不是临时的数据 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/bigdata/hadoop-3.1.1/tmp</value>
</property>
</configuration>
修改第三个配置文件hdfs-site.xml
<configuration>
<!-- 指定HDFS存储数据的副本数据量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>localhost:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/bigdata/hadoop-3.1.1/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/bigdata/hadoop-3.1.1/tmp/dfs/data</value>
</property>
</configuration>
,
5) 修改第4个配置文件:mapred-site.xml、
<configuration>
<!-- 指定mapreduce编程模型运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改第五个配置文件yarn-site.xml
<configuration>
<!-- 指定yarn的老大(ResourceManager的地址) -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<!-- mapreduce执行shuffle时获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- 初始化文件系统hadoop namenode -format
提示如下信息表示成功
- 启动所有进程start-all.sh或者start-dfs.sh、start-yarn.sh
报如下错误则:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh,stop-yarn.sh顶部也需添加以下参数:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
若是 DataNode 没有启动,可尝试如下的方法(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做):
针对 DataNode 没法启动的解决方法
./sbin/stop-dfs.sh # 关闭
rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format # 重新格式化 NameNode
./sbin/start-dfs.sh # 重启
启动成功如图:
启动顺序:DataNode ,NodeManager,NameNode,SecondaryNameNode,ResourceManager5个进程全部启动成功才算成功
- 访问web界面,查看Hadoop信息
- 进入hadoop安装目下的sbin,停止所有实例:stop-all.sh