HDFS分布式文件系统
IP规划:
192.168.1.10 hadoop01
–> NameNode , SeconderyNameNode
192.168.1.11 node1
–> DataNode
192.168.1.12 node2
–> DataNode
192.168.1.13 node3
–> DataNode
环境准备(所有主机):
- 禁用selinux
SELINUX=disabled - 禁用firewalld
#systemctl stop firewalld
#systenctl mask firewalld - 安装JAVA依赖环境
#yum install -y java-0.8.0-openjdk-devel - 配置hosts
#cat /etc/hosts
192.168.1.10 hadoop01
192.168.1.11 node1
192.168.1.12 node2
192.168.1.13 node3
主机hadoop:
[root@hadoop01 ~]#ssh-keygen #生产密钥对
[root@hadoop01 ~]#for i in {1…3};do ssh-copy-id node$i ;done #配置免密登录
[root@hadoop01 ~]#vim /etc/ssh/ssh_conf #使登录ssh登录时无yes|no提示
Host *
StrictHostKeyChecking no
[root@hadoop01 ~]# tar -xf hadoop-2.7.6.tar.gz #解压hadoop压缩包(获取源:http://hadoop.apache.org)
[root@hadoop01 ~] # mv hadoop-2.7.6 /usr/local/hadoop #无需编译安装,移动任意目录即可
[root@hadoop01 ~]# cd /usr/local/hadoop/
[root@hadoop01 hadoop]# vim etc/hadoop/hadoop-env.sh #配置启动脚本中的默认环境变量,不配置会启动失败
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre" #Java依赖环境的安装目录(可用rpm -ql java-1.8.0-openjdk-devel查看)
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop" #hadoop安装理解,配置文件路径都可
[root@hadoop01 hadoop]# vim etc/hadoop/core-site.xm #配置核心文件(http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml 根据需要参看官方文档)
<configuration>
<property>
<name>fs.defaultFS</name> #文件系统配置参数
<value>hdfs://hadoop01:9000</value> #或file:///,连接本地hadoop
</property>
<property>
<name>hadoop.tmp.dir</name> #数据目录配置参数
<value>/var/hadoop</value> #任意路径都可,配置完要手动创建
</property>
</configuration>
[root@hadoop01 hadoop]# mkdir /var/hadoop
[root@hadoop01 hadoop]# vim etc/hadoop/hdfs-site.xml #配置HDFS配置文件(http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml)
<configuration>
<property>
<name>dfs.namenode.http-address</name> #地址声明
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name> #地址声明
<value>hadoop01:50090</value>
</property>
<property>
<name>dfs.replication</name> #文件冗余份数
<value>2</value>
</property>
</configuration>
[root@hadoop01 hadoop]# vim etc/hadoop/slaves #节点配置文件(只写DataNode节点的主机名)
node1
node2
node3
[root@hadoop01 hadoop]# for i in node{1…3};do scp -r /usr/local/hadoop ${i}:/usr/local/;done #同步配置到Hadoop的所以节点
([root@hadoop01 hadoop]# ssh node1 mkdir
/var/hadoop
[root@hadoop01 hadoop]# ssh node2 mkdir /var/hadoop
[root@hadoop01 hadoop]# ssh node3 mkdir /var/hadoop #若启动报错没有/var/hadoop文件时,要手动创建)
[root@hadoop01 hadoop]# ./bin/hdfs namenode -format #在namenode上执行格式化(初始化个人理解)操作
[root@hadoop01 hadoop]# ./sbin/start-dfs.sh #启动集群
[root@hadoop01 hadoop]# jps #检测角色(所以节点都要检测)
25591 Jps
24312 SecondaryNameNode
25277 NameNode
[root@hadoop01 hadoop]# ./bin/hdfs dfsadmin -report #节点验证
[root@hadoop01 hadoop]# cd etc/hadoop
[root@hadoop01 hadoop]# mv mapred-site.xml.template mapred-site.xml
#进去配置文件路径,复制分布式计算框架配置模板,进行配置
[root@hadoop01 hadoop]# vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name> #定义集群管理类为yarn
<value>yarn</value>
</property>
</configuration>
[root@hadoop01 hadoop]# vim yarn-site.xml #配置部署yarn资源管理
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name> #resourcemanager地址
<value>hadoop1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name> #使用那台计算框架
<value>mapreduce_shuffle</value> #计算框架的名称
</property>
</configuration>
[root@hadoop01 hadoop]# for i in node{1…3};do rsync -aSH --delete /usr/local/hadoop/etc $i:/usr/local/hadoop/; done #所有节点同步配置
[root@hadoop01 hadoop]# ./sbin/start-dfs.sh #启动服务
[root@hadoop01 hadoop]# ./bin/yarn node --list #验证服务
- Web访问Hadoop
– namenode web页面(hadoop01)
http://192.168.1.10:50070/
– sevondory namenode web页面(hadoop01)
http://192.168.1.10:50090/
– datanode web页面(node1,node2,node3)
http://192.168.1.11:50075/
resourcemanager web页面(8088)
nodemanager web页面(8042)
HDFS基本使用
/usr/local/hadoop/bin/hadoop fs -命令 /
(touchz新建文件 put上传 get下载)
HDFS节点管理
启动新的虚拟机,禁用Selinux,禁用firewalld
设置SSH免密码登录
在所以节点修改/etc/hosts,增加新节点的主机信息
安装Java依赖环境
同步配置文件到新的节点
修改NameNode的slaves文件增加新的节点主机名
在新的节点启动DataNode
./sbin/hadoop0-daemon.sh start datanode
在hadoop01主机设置同步带宽,并同步数据
./bin/hdfs dfsadmin -setBalancerBandwidth 500000
./sbin/start-balancer.sh
查看集群状态
./bin/hdfs dfsadmin -report
(增加节点与修复节点基本一致)