1、下载Hadoop
清华园镜像下载"hadoop-3.2.3.tar.gz":https://mirrors.tuna.tsinghua.edu.cn/apache/
下载之后上传到虚拟机的某位置
创建文件夹:mkdir-p /root/server
对Hadoop进行解压:tar xvf hadoop-3.2.3.tar.gz-C /root/server
配置环境变量:打开/root/.bashrc,添加以下代码
export JAVA_HOME=/usr/
#不知道Java地址可用which java查看(此java是用SDKman安装的)
export HADOOP_HOME=/root/server/hadoop-3.2.3
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CLASSPATH=`hadoop classpath`
查看Hadoop版本:hadoop version ,如果结果显示出 Hadoop 版本号则表示 Hadoop 存在。
2、配置hdfs
1、简介:
HDFS 和 数据库相似,是以守护进程的方式启动的。使用 HDFS 需要用 HDFS 客户端通过网络 (套接字) 连接到 HDFS 服务器实现文件系统的使用。
功能分类:
namenode: 命名(目录) , 负责对文件的目录管理
SecondaryNameNode(snn): 它不是NameNode(nn)的热备进程。snn是HDFS架构中的一部分,snn进 程默认运行在了 namenode 的那台机器上 ,但更好的方式是:将snn的进程配置在另外一台机器 上运 行。
datanode:分布式文件存储 , 负责对文件数据的实际存储
2、主机名 IP地址映射
修改虚拟机该位置下的文件: /etc/hosts
192.168.10.161 xurui
192.168.10.162 xiaoyu
192.168.10.163 qwd
修改 /root/server/hadoop-3.2.3/etc/hadoop/workers 配置 hdfs 的name管理的data主机名称
xurui
xiaoyu
qwd
3、core-site.xml配置hdfs 的整体性的属性 (端口,基础数据路径、计算参数调优)
在/root/server/hadoop-3.2.3/etc/hadoop/core-site.xml中<configuration>里添加以下代码
<!--接收Client 连接的RPC端口,用于获取文件系统metadata信息-->
<!--fs.defaultFS 的值表示hdfs 路径的逻辑名称。 不关心物理路径-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://qwd:9000</value>
</property>
<!-- NameNode web服器-->
<property>
<name>dfs.namenode.http-address</name>
<value>qwd:9870</value>
</property>
<!--SecondaryNameNode web服器-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>qwd:9868</value>
</property>
<!-- 临时目录,其它目录会基于此路径。 这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/root/dfs</value>
</property>
<!-- 注:不能添加 file :// ( file:/tmp/hadoop )-->
<!--在读写文件时使用的缓存大小。这个大小应该是内存Page的倍数。建议1M-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!-- 启用垃圾箱配置, 不会立即从HDFS中删除 /user/<username>/.Trash-->
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
4、hdfs-site.xml (name和data存储文件,datanode备份数)
在/root/server/hadoop-3.2.3/etc/hadoop/hdfs-site.xml中<configuration>里添加以下代码
<!-- 若不定义 重启时 需要重新fromat-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///root/dfs/name </value>
<description>file:///开头,否则到后面格式化节点时会出现警告 </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///root/dfs/data </value>
<description>对应主机物理盘位置,以逗号分隔。该位置保存的文件是找不到具体文件的,它有自己的保存机制,但确实保存在这里 </description>
</property>
<!-- SecondaryNameNode 执行 间隔-->
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
<description>SecondaryNameNode 每隔一小时执行一次</description>
</property>
<!-- hdfs 检查权限关闭-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
<description>hdfs 检查权限关闭</description>
</property>
<!-- datanode 数据 block,指定数据冗余份数-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- datanode 数据 block, 最大块副本数,不要大于节点总数-->
<property>
<name>dfs.replication.max</name>
<value>10</value>
</property>
<!-- datanode 数据 block, 最小块副本数。达到最小副本数,就认为上传是成功的-->
<property>
<name>dfs.replication.min</name>
<value>1</value>
</property>
<!-- datanode 数据 block 块大小字节。 后缀:k,m,g,t,p,e指定大小 默认为128mb-->
<property>
<name>dfs.block.size</name>
<value>16m</value>
</property>
<!--datanode 写磁盘会预留 空间 给其他程序使用,而非写满,单位 bytes-->
<property>
<name>dfs.datanode.du.reserved</name>
<value>5368709120</value>
</property>
<!-- HDFS 启动的时为安全模式,当DataNode上报的block个数达到了总数的0.999倍才可以离开安全模式,否则一直是这种只读模式。 小等于0直接退出安全模式; 大于1 永远处于安全模式。-->
<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0.9f</value>
</property>
<!-- 表示在满足 threshold-pct 值之后,NameNode 还需要处于安全模式的时间(单位是秒)-->
<property>
<name>dfs.namenode.safemode.extension</name>
<value>5</value>
</property>
<!-- namenode 退出安全模式的 最小启动的datanode主机数量。 小等于0 不考虑有效的datanode节点个数,值大于集群中datanode节点总数则表示永远处于安全模式-->
<property>
<name>dfs.namenode.safemode.min.datanodes</name>
<value>0</value>
</property>
<!--DFS Datanode 同时处理文件的上限-->
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
<!--可以通过web访问hdfs目录-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
此处文件改动需要删除此配置中hadoop.tmp.dir对应文件夹(我的是dfs,删除命令为rm -rf /root/dfs/*)下面的所有数据,再使用步骤6
5、创建文件夹
mkdir -p /root/dfs/name/
mkdir -p /root/dfs/data/
6、格式化
hdfs namenode -format
7、关闭安全模式
get 获取安全模式的状态 hdfs dfsadmin -safemode get leave
强制退出安全模式 hdfs dfsadmin -safemode leave
8、启动hdfs
查看现有哪些启动项:ls sbin/
输入以下命令启动hdfs
hdfs --daemon start namenode
hdfs --daemon start secondarynamenode
hdfs --workers --daemon start datanode
第三个命令启动前需要先对自己进行ssh免密:ssh-copy-id root@192.168.10.163(主机地址)
9、图形化界面上传下载文件
登录地址:主机地址:9870,例如:http://192.168.10.163:9870
点击浏览文件系统
图形化管理界面管理文件
右上角的'文件夹'图标是创建文件夹,后面的是上传文件到当前文件夹