一、关于hadoop
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
Hadoop解决哪些问题?
-
海量数据需要及时分析和处理
-
海量数据需要深入分析和挖掘
-
数据需要长期保存
海量数据存储的问题:
-
磁盘IO称为一种瓶颈,而非CPU资源
-
网络带宽是一种稀缺资源
-
硬件故障成为影响稳定的一大因素
HDFS采用master/slave架构

Hadoop的三种运行模式 :
1.独立(本地)运行模式:无需任何守护进程,所有的程序都运行在同一个JVM上执行。在独立模式下调试MR程序非常高效方便。所以一般该模式主要是在学习或者开发阶段调试使用 。
2.伪分布式模式: Hadoop守护进程运行在本地机器上,模拟一个小规模的集群,换句话说,可以配置一台机器的Hadoop集群,伪分布式是完全分布式的一个特例。
3.完全分布式模式:Hadoop守护进程运行在一个集群上。
实验环境:
操作系统:redhat6.5 iptables selinux off
hadoop-2.7.3版本,jdk 7版本
实验主机:server1 172.25.45.1
注意:在本地模式下,将使用本地文件系统和本地MapReduce运行器。在分布式模式下,将启动HDFS和YARN守护进程。
二、Hadoop部署
1.创建hadoop用户及密码
[root@server1 ~]# useradd -u 800 hadoop ##创建udi为800的hadoop用户
[root@server1 ~]# ls
hadoop-2.7.3.tar.gz jdk-7u79-linux-x64.tar.gz
[root@server1 ~]# mv * /home/hadoop/ ##将hadoop相关安装包都放在hadoop用户家目录下
[root@server1 ~]# passwd hadoop ##给hadoop用户设置密码
2.切换到hadoop用户安装jdk环境
[root@server1 ~]# su - hadoop
[hadoop@server1 ~]$ ls
hadoop-2.7.3.tar.gz jdk-7u79-linux-x64.tar.gz
[hadoop@server1 ~]$ tar zxf jdk-7u79-linux-x64.tar.gz
[hadoop@server1 ~]$ ls
hadoop-2.7.3.tar.gz jdk1.7.0_79 jdk-7u79-linux-x64.tar.gz
[hadoop@server1 ~]$ ln -s jdk1.7.0_79/ java ##软连接方便操作
[hadoop@server1 ~]$ ls
hadoop-2.7.3.tar.gz java jdk1.7.0_79 jdk-7u79-linux-x64.tar.gz
[hadoop@server1 ~]$ cd java/
[hadoop@server1 java]$ cd bin/
[hadoop@server1 bin]$ pwd
/home/hadoop/java/bin ##java命令的绝对路径
[hadoop@server1 bin]$ cd
[hadoop@server1 ~]$ vim .bash_profile ##写入java命令绝对路径方便命令使用
PATH=$PATH:$HOME/bin:/home/hadoop/java/bin
[hadoop@server1 ~]$ source .bash_profile ##刷新系统配置
[hadoop@server1 ~]$ jps ##显示当前所有java进程pid的命令
3.安装hadoop
[hadoop@server1 ~]$ tar zxf hadoop-2.7.3.tar.gz
[hadoop@server1 ~]$ cd hadoop-2.7.3/etc/hadoop
[hadoop@server1 hadoop]$ vim hadoop-env.sh ##声明java
![]()
4.独立操作debug
[hadoop@server1 hadoop-2.7.3]$ mkdir input
[hadoop@server1 hadoop-2.7.3]$ cp etc/hadoop/*.xml input/
[hadoop@server1 hadoop-2.7.3]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce
-examples-2.7.3.jar grep input output 'dfs[a-z.]+'

其中的“Storage directory /hadoop/temp/dfs/name has been successfully formatted”一行信息表明对应的存储已经格式化成功
[hadoop@server1 hadoop-2.7.3]$ cd output/
[hadoop@server1 output]$ cat *

三.伪分布集群搭建
1.配置core-site.xml ###配置Hadoop的核心属性
[hadoop@server1 hadoop-2.7.3]$ cd etc/hadoop/
[hadoop@server1 hadoop]$ vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://172.25.45.1:9000</value>
</property>
</configuration>

2.配置hdfs-site.xml ##定义hdfs的属性
[hadoop@server1 hadoop]$ vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

3.设置免密登陆
[hadoop@server1 hadoop]$ ssh-keygen ##enter-->enter-->enter

[hadoop@server1 hadoop]$ ssh-copy-id 172.25.45.1 ##把本地的ssh公钥文件安装到远程主机对应的账户

[hadoop@server1 hadoop]$ cd
[hadoop@server1 ~]$ cd .ssh/
[hadoop@server1 .ssh]$ ls
authorized_keys id_rsa id_rsa.pub known_hosts
[hadoop@server1 .ssh]$ diff authorized_keys id_rsa.pub ##对比是两个文件是否由不同
若不同在删除authorized_keys文件,并将id_rsa.pub文件复制一份命名为authorized_keys
测试:ssh 172.25.45.1 不需要密码则设置成功

4.启动hdf
格式化名称节点
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop-2.7.3/etc/hadoop
[hadoop@server1 hadoop]$ vim slaves ##Hadoop集群的slave主机列表,master启动时会通过SSH
连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
172.25.45.1 ##将localhost改为本机ip
[hadoop@server1 hadoop]$/home/hadoop/hadoop-2.7.3
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs namenode -format ##格式化
通过脚本启动
[hadoop@server1 hadoop-2.7.3]$ sbin/start-dfs.sh
[hadoop@server1 hadoop-2.7.3]$ jps 如果jps查看不存在,只要进程或者端口开启说明服务也启动成功了


5.查看服务端口是否开启(50070):

在浏览器中测试:172.25.45.1:50070

测试:创建目录
在HDFS中创建一个名为hadoop的目录,如果它的上级目录不存在,也会被创建,如同linux中的mkidr –p。
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -mkdir /user
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -mkdir /user/hadoop
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -ls /user 查看目录下内容,包括文件名,权限,所有者,大小和修改时间
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -put input/ 将input目录上传到/user/hadoop/下
[hadoop@server1 hadoop-2.7.3]$ rm -fr input/ output/
在浏览器查看,点击utilities,在点击browse file system:

YARN单节点
配置mapred-site.xml
[hadoop@server1 hadoop-2.7.3]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-
mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -ls
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -cat output/*
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -get output
[hadoop@server1 hadoop-2.7.3]$ cd output/
[hadoop@server1 output]$ cat *

四、YARN单节点
1配置mapred-site.xml ## HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,
##此中的参数定义会覆盖mapred-default.xml文件中的默认配置;
[hadoop@server1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[hadoop@server1 hadoop]$ vim mapred-site.xml

2.配置yarn-site.xml
[hadoop@server1 hadoop]$ vim yarn-site.xml

3.启动yarn
[hadoop@server1 hadoop-2.7.3]# sbin/start-yarn.sh ###停止的话把start换成stop即可

测试:在浏览器访问: 172.25.45.1:8088

312

被折叠的 条评论
为什么被折叠?



