HDFS伪分布式环境搭建
首先,先介绍一下关于HDFS集群搭建的三种模式
1、 伪分布式
在一台服务器上,启动多个进程,分别表示各个角色。
2、 完全分布式
在多台服务器上,每台服务器启动不同角色的进程,使用多台服务 器组成HDFS集群
共启动4台linux系统,各个节点如下:
Node01:namenode;
Node02:secondarynamenode datanode;
Node03:datanode;
Node04:datanode;
注意:默认的block副本数+自己本身<=datanode节点数。
3、高可用完全分布式(介绍比较麻烦这里不在介绍,会在后面的文章中进行介绍)。
伪分布式环境搭建
首先呢就是要先安装好虚拟机及linux系统,安装过程这里不在详细,不会的可百度搜索安装
创建一个node01用户:
配置网络环境:
#切换到root用户
su
#进入到配置文件的位置
cd /etc/sysconfig/network-scripts
#修改ifcfg-th0信息,运行下行命令点击 i 进行修改,修改完成后按esc+:wq保存退出,具体修改如下图所示
vi ifcfg-eth0
#修改完成后重启服务
service network restart
#####配置文件信息
IPADDR=192.168.42.128
PREFIX=24
GATEWAY=192.168.42.2
DNS1=8.8.8.8
添加网络映射
#添加网络映射
vim /etc/hosts
#添加上面定义的ip和用户名,并将主机名修改一致,具体修改结果如下图所示
192.168.23.128 node01
配置免密登录
#产生本机的密钥文件和私钥文件
ssh-keygen -t rsa
#将私钥文件放入要进入的机器中,这里仍为node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
#接着执行ssh node01 测试ssh是否可用,即进入不需要输入密码,exit 可以退出ssh。
ssh node01
配置JDK
安装jdk在这里就不说明了,网上找到linux压缩包,用tar -zxvf 命令解压到想安装的位置即可,配置环境变量时需要与解压路径一直
#先删除系统自带的1.7版本的JDK
yum remove *openjdk*
#进入用户环境变量配置
vim ~/.bashrc
# 接着需要配置JAVA环境变量.
# 在文件最后添加(注:环境变量要与JDK存放位置对应)
export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH
# 接下来需要使用source命令是环境变量生效.
source ~/.bashrc
#验证是否生效
java -version.
安装Hadoop
同上,在网上下在hadoop,(在此以hadoop-2.8.2为例)
# 将hadoop解压到/usr/local(位置可以自定义)
sudo tar -zxvf hadoop-2.8.2.tar.gz -C /usr/local
# 将文件夹重命名为hadoop(可选,方便后续添加环境变量)
sudo mv hadoop-2.8.2 hadoop
#cd /usr/local/hadoop 文件夹下输入
./bin/hadoop version
配置hadoop的环境变量
#修改用户环境变量
vim ~/.bashrc
# 在文件最后添加:
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
# 保存推出 :wq
# 使用source命令,是环境变量生效.
source ~/.bashrc
修改core-site.xml配置文件
默认情况下,Hadoop将数据保存在/tmp下,当重启系统时,/tmp中的内容将被自动清空,所以我们需要制定自己的一个Hadoop的目录,用来存放数据。另外需要配置Hadoop所使用的默认文件系统,以及Namenode进程所在的主机。
#进入到/usr/local/hadoop/etc/hadoop 文件夹下的
cd /usr/local/hadoop/etc/hadoop
#修改core-site.xml配置文件,配置信息结果如下面所示
vim core-site.xml
######配合文件信息
<configuration>
<property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<name>hadoop.tmp.dir</name
<value>/var/abc/Hadoop/local </value>
</property>
<property>
<!-- hdfs namenode的通信地址 -->
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
</configuration>
修改hdfs-site.xml配置文件
该文件指定与HDFS相关的配置信息。需要修改HDFS默认的块的副本属性,因为HDFS默认情况下每个数据块保存3个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所以需要将副本个数改为1;否则Hadoop程序会报错。
#修改hdfs-site.xml配置文件,修改结果如下图所示
vim hdfs-site.xml
######配置文件信息
<configuration>
<property>
<!-- 指定HDFS存储数据的副本数目,默认情况下是3份-->
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<!-- name node 存放 name table 的目录 -->
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<!-- data node 存放数据 block 的目录 -->
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
修改slaves配置文件
修改为 node01
vim slaves
关闭防火墙
sudo service iptables stop # 关闭防火墙服务。
sudo chkconfig iptables off # 禁止防火墙开机自启。
启动Hadoop
#格式化NameNode(创建目录以及文件)
hdfs namenode -format
#启动HDFS
start-dfs.sh
命令执行完成后输入jps命令若有5个进程:
namenode、secondarynamenode、datanode、resourcemanager、nodemanager,则表示启动成功。
可以通过web访问http://node01:50070 查看NameNode和DataNode信息。
hadoop伪分布式即安装成功。