Hadoop的三种模式:
(1)单机模式Local或Standalone Mode 默认情况下,Hadoop即处于该模式,用于开发和调试,使用本地文件系统,而不是分布式文件系统,Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程。用于对MapReduce程序的逻辑进行调试,确保程序的正确
(2)伪分布式模式(Pseudo-Distrubuted Mode)
模拟一个小规模的集群,在一台主机模拟多主机。 Hadoop启动NameNode、DataNode、JobTracker、TaskTracker这些守护进 程都在同一台机器上运行,是相互独立的Java进程 在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,类似于完全分布式模式 (3)完全分布式模式
Hadoop守护进程运行在一个集群上,hadoop的守护进程namenode,datanode,jobTracker,TaskTracker运行在多台主机上,也就是一个集群不同机器上
明确概念:Hadoop的伪分布式模式需要在单机模式之上进行
安装Hadoop的单击模式
下载Hadoop对应的安装包
链接:https://pan.baidu.com/s/1Se4tmyneFxc7AKnbTv1D9A 提取码:2yqn
在虚拟机下创建目录存放Hadoop的安装包:
mkdire /usr/java/hadoop
并通过xftp将安装包放入到目录下
解压压缩包:
tar -xzvf hadoop-2.10.0.tar
配置环境变量
vim /etc/profile
在文件最后添加:
export HADOOP_HOME=/usr/java/hadoop/hadoop-2.10.0 export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin
问题一: 关于配置文件生效问题:
之前有遇到过配置文件在修改之后只是临时生效的问题,因为我们是直接实由的source /etc/profile 使用这个命令的结果是刷新配置文件,可以在一定的时间内使其生效,而如果想要配置文件永久生效就需要将虚拟机重启,通过命令:
reboot
到此为止我们就完成Hadoop的单机模式的安装,为了验证这里可输入命令
hadoop
如上图显示,则说明我们的单击模式安装成功
伪分布式模式安装
1)查看有没有安装openssh
输入命令
rpm -qa openssh
如果显示
则说明已经安装了openssh
如果没有显示安装则通过yum命令进行安装
yum install openssh
2)修改若干配置文件
问题二: 在这里修改配置文件的property标签必须放到configuration标签下
在hadoop安装根目录下创建temp文件夹用于存放临时文件
转到hadoop安装根目录/etc/hadoop目录下,修改若干配置文件
vim core-site.xml
在configuration标签下添加:
将第二个property标签中的value值设置为刚刚创建临时文件夹temp的绝对路径
vim hdfs-site.xml
在configuration标签下增加为
找到mapred-site.xml.template文件把文件名修改为mapred-site.xml 修改文件名的命令为:
mv mapred-site.xml.template mapred-site.xml
编辑它:
vim mapred-site.xml
在configuration中增加为:
修改hadoop-env.sh中JAVA_HOME路径的问题:
vim hadoop-env.sh
修改为:
export JAVA_HOEM = “JDK的根目录“
自此所有的配置文件就都已经配置结束了。
配置hadoop免密登录,因为在之后的format操作中要将多次输入密码,非常麻烦,这里设置免密登录
输入命令:
ssh-keygen -t rsa (一路回车)
转到~/.ssh目录下
cd ~/.ssh
输入命令:
cat id_rsa.pub >> authorized_keys
格式化hadoop
转到hadoop的配置文件夹下
cd /usr/java/hadoop/etc/hadoop
输入命令:
hadoop namenode -format
在这个过程中,会报出之前在修改配置文件过程中出现的错误,只有当出现”has been successfully formatted“才表示配置成功
如图所示:
转到cd /usr/java/hadoop/sbin目录下
cd /usr/java/hadoop/sbin
输入命令
./start-all.sh
然后遇到输入一律yes,则hadoop成功启动
输入jps
如果显示出六个输出结果,则说明我们的伪分布式搭建成功
下一步我们就可以访问HDFS的web界面
在浏览器输入:
localhost:50070/
看到界面出现:
则说明我们的分布式完全配置成功了
查询前几行样本数据: hdfs dfs -cat /project/test/test.txt | head -17
查询后5行数据: hdfs dfs -cat /project/test/test.txt | tail -5
随机返回指定行数的样本: hdfs dfs -cat /project/test/test.txt | shuf -n 5
查看文本的行数: hdfs dfs -cat /project/test/test.txt | wc -l
查询第五行之后的文件内容: hdfs dfs -cat /project/test/test.txt | tail -n +5
查询过滤字段num: hdfs dfs -cat /project/test/test.txt | grep num
查看文件大小: hdfs dfs -du /project/test/test.txt hdfs dfs -du /project/test/*
显示文件夹下面文件的数量: hdfs dfs -count /project/test/
创建目录dir1和dir2: hdfs dfs -mkdir -p /project/test/dir1 /project/test/dir2
显示文件夹test下的目录: hdfs dfs -ls /project/test/ 递归的显示test下的目录: hdfs dfs -ls -R /project/test/或hdfs dfs -lsr /project/test/
将本地文件上传至hdfs目标路径: hdfs dfs -put /home/bb/test1.txt /project/test/
将文件从目标路径拷贝到本地: hdfs dfs -get /project/test/test1 /home/bb/
将文件或目录复制到目标路径: hdfs dfs -cp 源路径 目标路径
删除文件或目录: hdfs dfs -rm 路径 删除文件夹及文件夹下的内容: hdfs dfs -rm -r 路径 跳过垃圾桶删除: hdfs dfs -rm -r -skipTrash 路径