-默认模式。
-不对配置文件进行修改。
-使用本地文件系统,而不是分布式文件系统。
-Hadoop不会启动NameNode、DataNode、ResourceManager、NodeManager等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。
-用于对MapReduce程序的逻辑进行调试,确保程序的正确。
-在一台主机模拟多主机。
-Hadoop启动NameNode、DataNode、ResourceManager、NodeManager这些守护进程都在同一台机器上运行,是相互独立的Java进程。
-在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由ResourceManager服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。
-修改5个配置文件:core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)、hdfs-site.xml(配置HDFS集群的工作属性)、mapred-site.xml(配置MapReduce集群的属性)、yarn-site.xml(简单配置MapReduce)、hadoop-env.sh(配置java环境变量)
-格式化文件系统
-Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。
-在所有的主机上安装JDK和Hadoop,组成相互连通的网络。
-在主机间设置SSH免密码登录,把各从节点生成的公钥添加到主节点的信任列表。
-修改7个配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml,yarn-site.xml、hadoop-env.sh、yarn-env.sh指定NameNode和ResourceManager的位置和端口,设置文件的副本等参数
-格式化文件系统
1、我使用的是Ubuntu16.04的版本
2、使用远程连接工具上传Hadoop-2.4.1的tar以及jdk-7u65的Linux的tar包
3、Ubuntu可以正常连接外网
sudo apt-get install openssh-server #安装SSH server ssh localhost #登陆SSH,第一次登陆输入yes exit #退出登录的ssh localhost cd ~/.ssh/ #如果没法进入该目录,执行一次ssh localhost ssh-keygen -t rsa #使用指令后需要连续三次回车 cat ./id_rsa.pub >> ./authorized_keys #加入授权 ssh localhost #此时已不需密码即可登录localhost,如果失败则可以搜索SSH免密码登录来寻求答案
在上传安装包的当前目录下解压到指定目录
tar -zxvf jdk-(Tab键补齐) -C /opt/software #-C后面跟上解压的指定目录 tar -axvf hadoop0-(Tab键补齐) -C /opt/software #如果Tab不了,可以切换到root权限试试 #在software目录下 mv jdk------ jdk #将安装解压后jdk重命名,方便配置环境变量时不用写一大串 mv hadoop--- hadoop #重命名Hadoop
我是在系统变量/etc/profile中进行配置,也可以在用户变量环境中进行配置,使用vi进行编辑(使用不了可以使用apt-get isntall vim下载)
vi /etx/profile
在最底部进行配置
#java env export JAVA_HOME=/opt/software/jdk #路径是你解压后的位置 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH #hadoop env export HADOOP_HOME=/opt/software/hadoop #路径是你加压后的位置 export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
Hadoop可修改的配置文件有7个,但伪分布修改3个(Hadoop-env.sh、core-site.xml、hdfs-site.xml)即可
#修改hadoop-env.sh的环境变量 export JAVA_HOME={XXXX} #将{xxxx}写成java加压后的绝对路径
#修改 core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/software/hadoop/tmp</value> </property> #xxxx代表你当前的主机名,伪分布可用localhost 0000代表临时文件的路径,只需写出Hadoop的解压路径后的/tmp
#修改hdfs-site.xml <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/software/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/software/hadoop/tmp/dfs/data</value> </property> #上面的数字代表你部署的节点,伪分布一个。xxxx是指Hadoop的解压路径
#添加mapred-site.xml (注意移除.template) <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
#修改yarn-site.xml <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> #xxxx代表当前主机名,伪分布可以是localhost
格式化文件
./bin/hdfs namenode -format
启动所有集群,Hadoop的bin目录下
start-all.sh jps #查看守护进程 http://localhost:50070 #网址访问hdfs监控界面 http://localhost:8088 #网址访问yarn监控界面 #如果访问不了可以查看防火墙是否关闭,或者使用ip地址+端口进行访问
关闭所有集群
stop-all.sh