所有资料基本来自官网。
1.hadoop目前最新开源版本3.1.2,学习资料也很多。希望自己可以整理出相对全完整的一份资料吧,方便今后学习查阅。
2.镜像地址
http://mirror.bit.edu.cn/apache/hadoop/common/
3.下载hadoop-3.1.2.tar.gz 编译好的。
4.三台虚拟机机安装,修改主机名 分别为master,slave1,slave2;三台机器。
采用root安装JDK1.8即可这里不再介绍。
三台机器分别新建账号hdp(因为感觉用root账号不太好)。
5.说明
HDFS 有三种节点
NameNode:管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间
SecondaryNameNode:保存着NameNode的部分信息 ,是NameNode的冷备份
DataNode:负责存储client发来的数据块block;执行数据块的读写操作。是NameNode的小弟.
6.安装
主节点配置:
~ mkdir modual -- 存放安装文件
~ mkdir software -- 存放压缩包
解压 tar.gz包到hdp ~/modual 目录下
~ tar -zxvf ./software/hadoop-3.1.2.tar.gz -C ./modual/
配置 etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/moduals/jdk1.8.0_152
#存储守护程序进程ID文件的目录。
export HADOOP_PID_DIR=/home/hdp/modual/hadoop-3.1.2/data
#存储守护程序日志文件的目录。如果日志文件不存在,则会自动创建。
export HADOOP_PID_DIR=/home/hdp/modual/hadoop-3.1.2/log
#用于Java heapsize的最大内存使用量,默认单位为M. 默认情况下, Hadoop将让JVM决定使用多少内存
export HADOOP_PID_DIR=1g
配置etc/hadoop/core-site.xml
#namenode节点配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
#读/写缓冲区大小。
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
配置etc/hadoop/hdfs-site.xml
#标记可以介入到集群中的DaraNode的列表(文件一定要在active的namenode节点下面 才会生效)
#conf/slaves 不存在 自己创建 可自行测试相关
<property>
<name>dfs.hosts</name>
<value>/home/hdp/modual/hadoop-3.1.2/etc/hadoop/conf/slaves</value>
</property>
#标记需要下线的机器列表(文件一定要在active的namenode节点下面 才会生效)
#conf/dfs.hosts.exclude不存在 自己创建 可自行测试相关
<property>
<name>dfs.hosts.exclude</name>
<value>/home/hdp/modual/hadoop-3.1.2/etc/Hadoop/conf/dfs.hosts.exclude</value>
</property>
#namenode 数据存储目录
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hdp/modual/hadoop-3.1.2/namenodedir</value>
</property>
#datanode 数据存储目录 (可以多个 用逗号隔开)
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hdp/modual/hadoop-3.1.2/datanodedir</value>
</property>
#数据块大小,默认256M
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
#nameNode通信线程数
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
7.其他节点配置 hdp 用户目录下创建module目录
~ mkdir module
三台机器ssh互通配置,不做介绍(方便SCP传输,和后期集群启动)
scp -r ./hadoop-3.1.2/ hdp@slave1:~/modual/
scp -r ./hadoop-3.1.2/ hdp@slave2:~/modual/
8.启动节点
cd /home/hdp/modual/hadoop-3.1.2/bin
master 启动namenode,datanode ,其他只启动datanode节点。
./hdfs namenode -format
./hdfs --daemon start namenode
./hdfs --daemon start datanode
slave1,slave2 启动DataNode节点
./hdfs --daemon start datanode
完成HDFS 一个NameNode节点,三个数据节点配置。
访问默认NameNode webUI: http://192.168.19.148:9870 ( 访问不同 关闭防火墙)
成功如图:
三台节点
9.测试
hdfs-shell 文件上传 下载 删除 查看
shell相关操作很多,可以去官网查看 如图:
cd /home/hdp/modual/hadoop-3.1.2/bin到目录下
目录创建
./hadoop fs -mkdir /TEST
文件上传
./hadoop fs -put -f /home/hdp/text.txt /TEST
文件查看
./hadoop fs -cat hdfs://master:9000/TEST/text.txt
web 数据目录如下: