准备环境

准备多台虚拟机,并安装JDK环境
详见链接: 云服务器/本地虚拟机(Linux)安装JDK教程

多台虚拟机部分数据如下

编号

主机名

主机域名

ip地址


Toozky

Toozky

192.168.64.220


Toozky2

Toozky2

192.168.64.221


Toozky3

Toozky3

192.168.64.222

设置ssh免密连接
详见链接: Linux虚拟机ssh免密连接

虚拟机①

将hadoop-1.2.1.tar.gz放到虚拟机①的/root目录(filezilla或WinSCP发送文件)
在虚拟机①中输入如下命令,解压hadoop文件

cd /root
tar -zxvf hadoop-1.2.1.tar.gz

修改配置

虚拟机①

以虚拟机①为NameNode

core-site.xml

在虚拟机①中输入

cd /root/hadoop-1.2.1/conf/
vi core-site.xml

按a或insert进入编辑,在configuration标签中添加

<property>
        <name>fs.default.name</name>
        <value>hdfs://Toozky:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop1.2</value>
    </property>

hdfs://Toozky:9000意为指定①域名:9000作为系统网址
第二个property标签的内容作用是指定格式化dfs系统的目录为/opt/hadoop1.2
按ESC退出编辑
输入:wq保存退出

hdfs-site.xml

指定dfs主机的数量(DataNode的主机数)

cd /root/hadoop-1.2.1/conf/
vi core-site.xml

按a或insert进入编辑,在configuration标签中添加

<property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

<value>2</value>2意为2个DataNode主机

hadoop-env.sh

添加JAVA环境变量(JDK目录)

cd /root/hadoop-1.2.1/conf/
vi hadoop-env.sh

按a或insert进入编辑,找到代码行# export JAVA_HOME=…… 取消该行的注释,并修改为①的JDK目录

export JAVA_HOME=/root/jdk1.8.0_192

按ESC退出编辑
输入:wq保存退出

slave

修改slave中的内容为虚拟机②、③的域名

cd /root/hadoop-1.2.1/conf/
vi slave

按a或insert进入编辑,清空文本,输入②、③的域名

Toozky2
Toozky3

按ESC退出编辑
输入:wq保存退出

masters

指定 secondNameNode
注意:secondNameNode不能与NameNode主机一致! 下文指定虚拟机②为secondNameNode

cd /root/hadoop-1.2.1/conf/
vi masters

按a或insert进入编辑,清空文本,输入

Toozky2

此处填写的是②的域名
按ESC退出编辑
输入:wq保存退出

profile

添加Hadoop环境变量

vi etc/profile

按G或insert进入编辑,光标移动到文末,按Enter另起一行输入

#Hadoop
export HADOOP_HOME=/home/hadoop1.2
export PATH=$PATH:$HADOOP_HOME/bin

按ESC退出编辑
输入:wq保存退出

发送相关文件到虚拟机②、③

虚拟机①

发送hadoop目录到②、③

scp -r /root/hadoop-1.2.1 root@Toozky2:~/
scp -r /root/hadoop-1.2.1 root@Toozky3:~/

发送profile(环境变量)文件到②、③

scp /etc/profile root@Toozky2:/etc/profile
scp /etc/profile root@Toozky3:/etc/profile

虚拟机①、②、③

刷新/etc/profile

source /etc/profile

在虚拟机①、②、③中的家目录(\home)创建hadoop目录的软链接,并命名为hadoop1.2
①、②、③均执行该语句

ln -sf /root/hadoop-1.2.1 /home/hadoop1.2

关闭①、②、③的防火墙

关闭所有虚拟机的防火墙
永久关闭防火墙

chkconfig iptables off

临时关闭防火墙(重启失效)不推荐

service iptables stop

启动DFS系统

虚拟机①

格式化/opt/hadoop1.2目录

cd /home/hadoop1.2/bin
./hadoop namenode -format

启动DFS系统

cd /home/hadoop1.2/bin/
./start-dfs.sh

验证java进程

输入

jps

虚拟机①显示如图

在hadooo虚拟机里怎么新建hdfs的目录 虚拟机启动hdfs_hadoop


虚拟机②

在hadooo虚拟机里怎么新建hdfs的目录 虚拟机启动hdfs_hadoop_02


虚拟机③

在hadooo虚拟机里怎么新建hdfs的目录 虚拟机启动hdfs_xml_03

测试上传文本文件

虚拟机①

创建test.txt文件并随意编辑一些文字

vi /root/test.txt

按a或insert进入编辑
输入

aaa
张三
123

按ESC退出编辑
输入:wq保存退出
上传test.txt文件到DFS根目录

cd /home/hadoop1.2/bin/
./hadoop dfs -put /root/test.txt /

访问DFS系统

打开浏览器,地址栏输入虚拟机①的域名:50070回车

效果如图

在hadooo虚拟机里怎么新建hdfs的目录 虚拟机启动hdfs_xml_04


点击Browse the filesystem浏览文件列表

在hadooo虚拟机里怎么新建hdfs的目录 虚拟机启动hdfs_hadoop_05


点击test.txt查看文件内容

在hadooo虚拟机里怎么新建hdfs的目录 虚拟机启动hdfs_环境变量_06

补充和注意

作为NameNode的虚拟机(虚拟机①)关机时,需先关闭DFS,先进入hadoop的bin目录cd /home/hadoop1.2/bin/关闭DFS./stop-dfs.sh

当格式化opt/hadoop失败时需要先关闭DFS,再将所有作为Node的虚拟机/opt/hadoop目录删除
重新格式化,进入hadoop的bin目录cd /home/hadoop1.2/bin重新格式化./hadoop namenode -format

当Node进程启动异常时,注意排查是否已经关闭防火墙,以及配置/root/hadoop/conf/masters文件是否正确

当配置好Hadoop环境变量后,可在NameNode主机任意目录位置输入start-dfs.sh启动DFS,stop-dfs.sh关闭DFS

start-all.sh是一个批处理命令,是启动hadoop的同时也启动mapreduce,由于目前没有配置mapreduce,所以暂时不要使用此命令


以上就是本期总结的全部内容,愿大家相互学习,共同进步!