详细文档: http://hadoop.apache.org/old/ →Documentation
下载地址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
搭建准备:
- 设置主机名称: 设置主机名称是为了做免密登录,因为公钥用的是主机名
hostnamectl set-hostname xiaoshu01
;vi /etc/sysconfig/network
NETWORKING=YES
hostname=xiaoshu
- 设置ip映射
vi /etc/hosts
- 192.168.2.152 xiaoshu-2
- 192.168.2.207 xiaoshu-1
- 关闭防火墙和 selinux安全机制
systemctl stop firewalld.service | service iptables stop
- 查看
getenforce
; 关闭setenforce 0
;vi /etc/selinux/config SELINUX=disabled
- 各节点服务器时间一致
- 如果不同步就调整
- 配置jdk、hadoop环境
- vi /etc/profile 末尾添加
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/opt/hadoop-3.3.0/bin
- 最好用命令:
hdfs
测试一下hadoop环境配置
成功没有
- 设置hdfs java环境
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64/
6.设置 hdfs 普通用户
useradd hdfs
passwd hdfs 123456
chown -R hdfs /opt/hadoop-3.3.0/
chown -R hdfs /opt/hadoopdata
7.配置免密登录
su hdfs
切换到普通用户ssh-keygen -t rsa
// 一路回车ssh-copy-id -i ~/.ssh/id_rsa.pub 主机名(xiaoshu-1)
- 把
authorized_keys
复制到节点服务器 .ssh 目录下,或者 追加authorized_keys
内容;- ssh 服务主机名称,测试是否免密
- 免密不成功,在启动时会报错,启动没有密匙权限
模式说明:
- Pseudo-Distributed Mode -伪分布试 ,namenode,datanode,在同一个服务上
- Fully-Distributed Mode - 完全分布 ,datanode ,SSN,在其它各节点服务上
- HA -高可用模式 ,多个 NameNode,主备模式;
- 如:主备之间增加 journalnoe (>3)台,复制同步NN的editlog ,投票确定最终一致性
- 如:增加 zkfc角色(与NN同台),通过zookeeper集群协调NN的主从选举和切换事件回调机制
hdfs配置文件处理:
- 修改
core-site.xml
核心配置 ,定义namenode
入口 ,注:
节点服务的 core-sit.xml 同样要配置namenode位置,不然启动不了,同时要注意,各服务器的用户权限记得分配
<!-- core-site.xml 也可以配置,添加静态用户,方法web页面操作 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hdfs</value>
</property>
- 修改
hdfs-site.xml
<configuration>
<!-- 副本数量. -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- namenode文件元数据存储位置. -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoopdata/full/hdfs/name</value>
</property>
<!-- datanode block块存储位置. -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoopdata/full/hdfs/data</value>
</property>
<!-- secondary 地址,一个NameNode时 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>xiaoshu-2:9868</value>
</property>
<!-- secondary 目录配置 -->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/opt/hadoopdata/full/hdfs/secondary</value>
</property>
</configuration>
- 修改
workers
配置datanode
启动位置
- 格式化 namenode :
hdfs namenode -format
(不要重复执行)- 启动:
./sbin/start-dfs.sh
,在/opt/hadoop-3.3.0/
目录下
- http://ip:9870/ 访问页面 ;注:如果要用页面的文件上传等操作,需要配置本地 hosts 文件,映射主机名称。
测试命令:
- 创建文件夹:
hdfs dfs -mkdir /dirname
- 递归创建目录:
hdfs dfs -mkdir -p /user/root
- 权限赋予:
hadoop fs -chmod -R 777 /opt
- 上传文件:
hdfs dfs -put 上传文件 目标目录
hdfs dfs -put test.txt /user/root