Hadoop之伪分布式安装
一、Hadoop的安装模式有3种
①单机模式:不能使用HDFS,只能使用MapReduce,所以单击模式主要用于测试MR程序。
②伪分布式模式:用多个线程模拟真实多台服务器,即模拟真实的完全分布式环境。
③完全分布式模式:用多台机器(或启动多个虚拟机)来完成部署集群。
二、安装主要涉及的内容
①JDK
②配置主机名、hosts文件以及免密登录
③修改hadoop的配置文件,主要涉及以下几个配置文件(hadoop-2.7.7/etc/hadoop)
1)hadoop-env.sh:这里主要修改jdk的安装路径等
2)core-site.xml:主要指定namenode的地址和文件存放目录等
3)hdfs-site.xml:指定复本数量
4)mapred-site.xml:执行MR程序运行在yarn上
5)yarn-site.xml:指定NodeManager获取数据的方式和resourceManager的地址
6)slaves文件:伪分布式配置本主机名即可
④配置hadoop的环境变量和格式化namenode
三、搭建hadoop的伪分布式
①获取Hadoop的安装包
http://hadoop.apache.org/releases.html,注意:source为源码包,binary为安装包
我这里以2.7.7版本为例:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
解压Hadoop安装包:tar -xvf hadoop...
目录说明:
bin目录:命令脚本
etc/hadoop:存放hadoop的配置文件
lib目录:hadoop运行的依赖jar包
sbin目录:启动和关闭hadoop等命令都在这里
libexec目录:存放的也是hadoop命令,但一般不常用
最常用的就是bin和etc目录
②安装jdk
下载对应linux版本的tar.gz包:https://www.oracle.com/technetwork/java/javase/downloads/index.html
1)解压:tar -xvf jdk-8u131-linux-x64.tar.gz
2)配置环境变量:vim /etc/profile(修改完以后记得source使配置文件生效)
#java env JAVA_HOME=/home/softwares/jdk1.8.0_131 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH CLASSPATH export PATH=$PATH
3)通过:java,javac,java -version来查看jdk是否安装成功。
③关闭防火墙
1)service iptables stop 临时关闭
2)chkconfig iptables off 永久关闭
④配置主机名
vim /etc/sysconfig/network
修改完成以后重启!!!
NETWORKING=yes HOSTNAME=hadoopalone //hadoopalone 这是我修改的,表示是伪分布式
⑤配置hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.144.133 hadoopalone //配置 ip和主机名映射
⑥配置免密登录
1)ssh-keygen,一路回车即可。
2)ssh-copy-id root@hadoopalone
⑦Hadoop的配置--hadoop-env.sh
这个文件里写的是hadoop的环境变量,主要修改hadoop的java_home路径
切换到 etc/hadoop目录
执行:vim hadoop-env.sh
修改java_home路径,如图所示,保存退出后,切记 source hadoop-env.sh使配置文件生效。
⑧Hadoop配置--core-site.xml
<configuration> <!--用来指定hdfs的老大,namenode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://hadoopalone:9000</value> </property> <!--用来指定hadoop运行时产生文件的存放目录--> <property> <name>hadoop.tmp.dir</name> <value>/home/softwares/hadoop-2.7.7/tmp</value> </property> <!--设置hdfs的操作权限,false表示任何用户都可以在hdfs上操作文件--> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
⑨Hadoop配置--hdfs-site.xml
<configuration> <!--指定hdfs保存数据副本的数量,包括自己,默认值是3--> <!--如果是伪分布模式,此值是1即可--> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
⑩Hadoop配置--mapred-site.xml
默认是map-site.xml.template,拷贝并重命名为mapred-site.xml。
<configuration> <property> <!--指定mapreduce运行在yarn上--> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
⑪Hadoop配置--yarn-site.xml
,为防止图片失效,配置也粘贴出来。
<configuration> <!-- Site specific YARN configuration properties --> <property> <!--指定yarn的老大 resoucemanager的地址--> <name>yarn.resourcemanager.hostname</name> <value>hadoopalone</value> </property> <property> <!--NodeManager获取数据的方式--> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
⑫配置slaves文件
同样在hadoop-2.7.7/etc/hadoop目录下
vim slaves
⑬配置Hadoop的环境变量
记得source /etc/profile
#java env
JAVA_HOME=/home/softwares/jdk1.8.0_131
HADOOP_HOME=/home/softwares/hadoop-2.7.7
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
export PATH=$PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
⑭最后一步
格式化namenode
当出现以下中的关键语句表示格式化成功!
通过start-all.sh启动我们刚刚搭建的hadoop伪分布式模式:start-all.sh
通过:jps命令来查看,出现以下进程说明我们的hadoop伪分布式搭建完成!!!
如果有什么问题,欢迎大家指正~~~~~我们一起讨论解决。