目录
一、hadoop安装配置
1、下载解压hadoop-x.x.x.tar.gz
tar -xzvf hadoop-x.x.x.tar.gz
2、下载解压jdk
tar -xzvf jdkx.x.x_xxx.tar.gz
3、配置环境变量
vi /etc/profile
export JAVA_HOME=/root/env/jdk1.8.0_301
export HADOOP_HOME=/root/env/hadoop-3.3.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.1、hadoop3.x版本需要额外添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
3.2、加载环境变量
source /etc/profile
4、配置主机名&主机映射
4.1、主机名
vi /etc/hostname
4.2、主机映射
vi /etc/hosts
172.16.162.71 namenode01
172.16.162.75 resourcemanager01
172.16.162.199 secondaryNN01
172.16.162.223 database
5、修改hadoop配置文件(路径:$HADOOP_HOME/etc/hadoop)
5.1、core-site.xml
<configuration>
<!-- 指定namenode地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode01:9820</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/env/hadoop-3.3.1/data</value>
</property>
<!-- namenode网页用户 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
</configuration>
5.2、hdfs-site.xml
<configuration>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>secondaryNN01:9868</value>
</property>
</configuration>
5.3、mapred-site.xml
<configuration>
<!-- 指定Mapreduce在yarn上运行 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- hadoop3.x版本中需要添加classpath配置 -->
<property>
<name>mapreduce.application.classpath</name>
<value>/root/env/hadoop-3.3.1/etc/hadoop:/root/env/hadoop-3.3.1/share/hadoop/common/lib/*:/root/env/hadoop-3.3.1/share/hadoop/common/*:/root/env/hadoop-3.3.1/share/hadoop/hdfs:/root/env/hadoop-3.3.1/share/hadoop/hdfs/lib/*:/root/env/hadoop-3.3.1/share/hadoop/hdfs/*:/root/env/hadoop-3.3.1/share/hadoop/mapreduce/*:/root/env/hadoop-3.3.1/share/hadoop/yarn:/root/env/hadoop-3.3.1/share/hadoop/yarn/lib/*:/root/env/hadoop-3.3.1/share/hadoop/yarn/*</value>
</property>
</configuration>
5.4、yarn-site.xml
<configuration>
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager01</value>
</property>
</configuration>
5.5、在workers文件中配置所有节点的ip或者主机名(hadoop2.x版本中是slaves)
5.6、配置完后,分发配置
rsync [path] [user]@[ip地址]:[path]
二、运行hadoop
1、使用命令格式namenode
hadoop namenode -format
或
hdfs namenode -format
2、在namenode节点启动hdfs
start-dfs.sh
3、在resourcemanager节点启动yarn
start-yarn.sh
三、hadoop2.x和hadoop3.x变化
1、功能
功能 | hadoop2.x | hadoop3.x |
---|---|---|
支持的最低Java版本 | Hadoop 2.x - java的最低支持版本是java 7 | Hadoop 3.x - java的最低支持版本是java 8 |
容错 | Hadoop 2.x - 可以通过复制(浪费空间)来处理容错。 | Hadoop 3.x - 可以通过Erasure编码处理容错。 |
数据平衡 | Hadoop 2.x - 对于数据,平衡使用HDFS平衡器。 | Hadoop 3.x - 对于数据,平衡使用Intra-data节点平衡器,该平衡器通过HDFS磁盘平衡器CLI调用。 |
存储Scheme | Hadoop 2.x - 使用3X副本Scheme | Hadoop 3.x - 支持HDFS中的擦除编码。 |
存储开销 | Hadoop 2.x - HDFS在存储空间中有200%的开销。 | Hadoop 3.x - 存储开销仅为50%。 |
存储开销示例 | Hadoop 2.x - 如果有6个块,那么由于副本方案(Scheme),将有18个块占用空间。 | Hadoop 3.x - 如果有6个块,那么将有9个块空间,6块block,3块用于奇偶校验。 |
YARN时间线服务 | Hadoop 2.x - 使用具有可伸缩性问题的旧时间轴服务。 | Hadoop 3.x - 改进时间线服务v2并提高时间线服务的可扩展性和可靠性。 |
兼容的文件系统 | Hadoop 2.x - HDFS(默认FS),FTP文件系统:它将所有数据存储在可远程访问的FTP服务器上。Amazon S3(简单存储服务)文件系统Windows Azure存储Blob(WASB)文件系统。 | Hadoop 3.x - 它支持所有前面以及Microsoft Azure Data Lake文件系统。 |
Datanode资源 | Hadoop 2.x - Datanode资源不专用于MapReduce,我们可以将它用于其他应用程序。 | Hadoop 3.x - 此处数据节点资源也可用于其他应用程序。 |
MR API兼容性 | Hadoop 2.x - 与Hadoop 1.x程序兼容的MR API,可在Hadoop 2.X上执行 | Hadoop 3.x - 此处,MR API与运行Hadoop 1.x程序兼容,以便在Hadoop 3.X上执行 |
HDFS联盟 | Hadoop 2.x - 在Hadoop 1.0中,只有一个NameNode来管理所有Namespace,但在Hadoop 2.0中,多个NameNode用于多个Namespace。 | Hadoop 3.x - Hadoop 3.x还有多个名称空间用于多个名称空间。 |
更快地访问数据 | Hadoop 2.x - 由于数据节点缓存,我们可以快速访问数据。 | Hadoop 3.x - 这里也通过Datanode缓存我们可以快速访问数据。 |
平台 | Hadoop 2.x - 可以作为各种数据分析的平台,可以运行事件处理,流媒体和实时操作。 | Hadoop 3.x - 这里也可以在YARN的顶部运行事件处理,流媒体和实时操作。 |
2、端口
应用 | Haddop 2.x port | Haddop 3.x port |
---|---|---|
Namenode | 8020 | 9820 |
NN HTTP UI | 50070 | 9870 |
NN HTTPS UI | 50470 | 9871 |
SNN HTTP | 50091 | 9869 |
SNN HTTP UI | 50090 | 9868 |
DN IPC | 50020 | 9867 |
DN | 50010 | 9866 |
DN HTTP UI | 50075 | 9864 |
Datanode | 50475 | 9865 |
其余端口没有变化,reourcemanager网页端口 8088
四、HDFS常用命令
(此时操作的是hdfs的目录,并不是Linux的目录)
1、帮助命令
hdfs dfs --help
查看
Usage: hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum [-v] <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-concat <target path> <src path> <src path> ...]
[-copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst>]
[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] [-e] [-s] <path> ...]
[-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
[-createSnapshot <snapshotDir> [<snapshotName>]]
[-deleteSnapshot <snapshotDir> <snapshotName>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] [-v] [-x] <path> ...]
[-expunge [-immediate] [-fs <path>]]
[-find <path> ... <expression> ...]
[-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getfacl [-R] <path>]
[-getfattr [-R] {
-n name | -d} [-e en] <path>]
[-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
[-head <file>]
[-help [cmd ...]]
[-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal [-f] [-p] [-l