HDFS

HDFS分布式文件存储系统

浅时光 · 2月8日 · 2020年 16495次已读

一、初识Hadoop

  • 在大数据时代下,个人用户以及计算机系统产生的数据都飞速增长,因此大数据火了。
  • 所谓大数据,从两个方面去理解:
    1)数据的存储。存储的目的是用于大数据分析来源(Source):https://www.dqzboy.com,所以大数据存储方案是一个研究点。
    2)数据的分析。如何对海量数据采取行之有效的分析方法是另一个研究点。
  • Hadoop的核心是HDFS和MapReduce,HDFS作为Hado来源(Source):https://www.dqzboy.comop的数据存储方案,而MapReduce作为Hadoop的数据分析方案。

二、配置Ha来源(Source):https://www.dqzboy.comdoop

1、环境准备

服务器IP主机名
192.168.66.30master
192.168.66.31slave1
192.168.66.32slave2

2、设置vim显示行号

[[email protected] ~]# vim /root/.vimrc
set nu

3、设置主机名和hosts

[[email protected] ~]# hostnamectl set-hostname master
[[email protected] ~]# vim /etc/hosts
HDFS分布式文件存储系统-浅时光博客

4、配置免密登入

  • SSH配成无密码登录,因为客户端和服务器都是本机,所以只要把ssh生成的公钥存到authorized_keys文件(存在服务器端)即可。
[[email protected] ~]# ssh-keygen
[[email protected] ~]# ssh-copy-id 192.168.66.31
[[email protected] ~]# ssh-copy-id 192.168.66.32

5、关闭防火墙

[[email protected] ~]# systemctl stop firewalld;systemctl disable firewalld

[[email protected] ~]# for i in 192.168.66.3{1,2};do echo ">>> $i";ssh $i "systemctl stop firewalld;systemctl disable firewalld;systemctl status firewalld | grep Active";done
>>> 192.168.66.31
   Active: inactive (dead)
>>> 192.168.66.32
   Active: inactive (dead)

6、配置JAVA环境

# 把下载的hadoop、JDK解压到/usr/local
[[email protected] ~]# tar -xf hadoop-3.1.2.tar.gz -C /usr/local/
[[email protected] ~]# tar -xf jdk-8u201-linux-x64.tar.gz -C /usr/local/

# 添加环境变量最后的效果
[[email protected] ~]# vim /etc/profile
#-----java path---------#
export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
#------hadoop path-------#
export PATH=$PATH:/usr/local/hadoop-3.1.2/bin:/usr/local/hadoop-3.1.2/sbin
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"

# 环境变量生效
[[email protected] ~]# source /etc/profile

# 测试JAVA是否可以使用
[[email protected] ~]# java -version

7、配置 Hadoop配置

  • 配置hadoop-env.sh
[[email protected] hadoop]# vim hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.8.0_121		//输入Java安装路径
  • 配置core-site.xml
# 注意修改第4行代码中的master,根据自身服务器主机名,修改为自己的主机名字
[[email protected] hadoop]# vim core-site.xml
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master:9000</value>
                 <description>HDFS的URI,文件系统://namenode标识:端口号</description>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop/tmp</value>
                <description>namenode上本地的hadoop临时文件夹</description>
        </property>
</configuration>
  • 配置hdfs-site.xml
# 注意标红处为Hadoop存放数据的文件,需要创建,根据自身创建的目录填写;
[[email protected] hadoop]# mkdir /usr/hadoop   //其余的目录会自动生成
[[email protected] hadoop]# vim hdfs-site.xml

# 注意修改代码中的master,根据自身服务器主机名,修改为自己的主机名字,标红的IP改为自己的IP地址
<configuration>
        <property>
                <name>dfs.name.dir</name>
                <value>/usr/hadoop/hdfs/name</value>
                <description>namenode上存储hdfs名字空间元数据 </description>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/usr/hadoop/hdfs/data</value>
                <description>datanode上数据块的物理存储位置</description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
                <description>副本个数,配置默认是3,应小于datanode机器数量</description>
        </property>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>master:9001</value>
	</property>
	<property>
		<name>dfs.http.address</name>
		<value>192.168.66.30:50070</value>
	</property>
</configuration>
  • 配置mapred-site.xml
# 复制一份出来,再进行修改
[[email protected] hadoop]# cp mapred-site.xml mapred-site.xml_bak

# 注意修改代码中的master(两处)根据自身服务器主机名,修改为自己的主机名字
[[email protected] hadoop]# vim mapred-site.xml 
<configuration>
        <property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>master:10020</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
			<value>master:19888</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.done-dir</name>
		<value>/history/done</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.intermediate-done-dir</name>
		<value>/history/done_intermediate</value>
	</property>
</configuration>
  • 配置yarn-site.xml
# 注意修改代码中的master和倒数第三行的ip地址(:8099不要删除),根据自身服务器主机名,修改为自己的主机名字,标红的IP改为自己的IP地址

<configuration>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>master</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.resourcemanager.webapp.address</name>
		<value>192.168.66.30:8099</value>
	</property>
</configuration>
  • 配置slave
[[email protected] ~]# vim /usr/local/hadoop-3.1.2/etc/hadoop/slave
HDFS分布式文件存储系统-浅时光博客
来源(Source):https://www.dqzboy.com
# 将配置文件和二进制文件传给slave
[[email protected] ~]# vim scp_hadoop.sh
#!/bin/bash
slave_ip=("192.168.66.31" "192.168.66.32")
for i in $slave_ip;
do
  echo ">>> $i"
  rsync -av /usr/local/hadoop-3.1.2 $i:/usr/local/
  rsync -av /etc/profile $i:/etc/
  rsync -av /etc/hosts $i:/etc/
  rsync -av /usr/hadoop $i:/usr/
done

# 注意三台虚拟机的配置文件一样的,!!无须!! 将master修改为slave1,slave2;SSH连接到slave1、slave2,生效环境变量文件
[[email protected] ~]# ssh slave1
[[email protected] ~]# source /etc/profile
[[email protected] ~]# exit

三、启动Hadoop

  • 来源(Source):https://www.dqzboy.com下操作在第一台master虚拟机中执行

1、 格式化namenode

[[email protected] ~]# hdfs namenode –format
  • 注意:格式化会在我们之前手动创建的目录里创建新的目录,要保证当前用户对之前创建的目录有x权利

2、启动NameNode 和 DataNode 守护进程

[[email protected] ~]# start-dfs.sh

3)启动ResourceManager 和 NodeManager 守护进程

[[email protected] ~]# start-yarn.sh
# 启动验证:
# 执行jps命令,有如下进程,说明Hadoop正常启动
[[email protected] ~]# cd /usr/hadoop/hadoop-2.7.3
[[email protected] hadoop-2.7.3]# jps
8690 SecondaryNameNode
9300 Jps
8484 DataNode
9014 NodeManager
8874 ResourceManager
8319 NameNode
HDFS分布式文件存储系统-浅时光博客
相关文章
暂无相关文章!
0 条回应
    本站已安全运行: | 耗时 0.344 秒 | 查询 71 次 | 内存 17.78 MB