hadoop包含四个模块
1.Hadoop Common 支持其他模块的工具模块 2.Hadoop Distributed File System(HDFS) 分布式文件系统,提供了对应程序数据的高吞吐量访问 [进程] NameNode //名称节点 --NN DataNode //数据节点 --DN SecondaryNamenode //辅助名称节点 --2ndNN 3.Hadoop YARN yet another resource negotiate 作业调度与集群资源管理的框架 [进程] ResourceManager //资源管理器--RM NodeManager //节点管理器--NM 4.Hadoop MapReduce 基于yarn系统的对大数据集进行并行处理的技术。
配置hadoop(均在hadoop用户下配置的)
1.Standalone/local 独立/本地模式(默认),使用的本地文件系统,不需要作任何配置 查看文件系统的方式 $>hadoop fs -ls 此模式下没有启动任何的java进程 只是用于开发测试环境 2.Pseudodistributed mode 伪分布模式 [配置文件-目录为:/soft/hadoop/etc/hadoop] a.core-site.xml <?xml version="1.0"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost/</value> </property> </configuration> b.hdfs-site.xml <?xml version="1.0"?> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> c.mapred-site.xml(默认没有此文件,复制mapred-site.xml.template到mapred-site.xml) <?xml version="1.0"?> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> d.yarn-site.xml <?xml version="1.0"?> <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> e.配置SSH安全登录(免密码登录) 1)安装ssh(centos7默认有sshd服务) $> yum -y install ssh 2)生成密钥对 $>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $>ll ~/.ssh //查看生成的公私密钥 3)导入公钥到授权库中 $>cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 4)登录到localhost $>ssh localhost //第一次登录会让输入yes,后面不会再要求输入。 [ 如果设置了还是需要输入密码,可能是权限不对,可查看日志:tail -f /var/log/secure。也可参考此文章。 $>chmod 700 ~/.ssh $>chmod 600 ~/.ssh/authorized_keys ] 5)格式化HDFS文件系统 $>hadoop namenode -format 6)启动所有的进程 $>start-all.sh 7)查看进程 $>jps //一共有5个进程 NN DN 2ndNN RM NM,如果进程数不对,杀死所有进程stop-all.sh,重新格式化系统 8)查看文件系统 $>hadoop fs -ls 9)创建文件系统 $>hadoop fs -mkdir -p /user/hadoop/data $>hadoop fs -ls -R / //等同-lsr 3.Fully distributed mode 完全分布式 在配置完全分布式模式之前,需要有2个准备工作来完成文件分发和远程执行命令
自定义脚本完成文件分发-xsync
#!/bin/bash #使用举例:xsync /hello.txt pcount=$# if (( pcount<1 )) ; then echo no args; exit; fi p1=$1; fname=`basename $p1` echo fname=$fname pdir=`cd -P $(dirname $p1) ; pwd` echo pdir=$pdir cuser=`whoami` for host in `cat $HADOOP_HOME/etc/hadoop/slaves` do echo ---------- $host ---------- rsync -rvl $pdir/$fname $cuser@$host:$pdir done
自定义脚本执行远程命令-xcall(普通版)
#!/bin/bash #使用举例:xcall ls // 如果运行xcall java -version 报错,参考此文章即可解决 pcount=$# if (( pcount<1 )) ; then echo no args; exit; fi for host in `cat $HADOOP_HOME/etc/hadoop/slaves` do echo ---------- $host ---------- ssh $host $@ done echo ---------- localhost --------- $@
自定义脚本执行远程命令-xcall(并发版)
#!/bin/bash pcount=$# if (( pcount<1 )) ; then echo no args; exit; fi cuser=`whoami` for host in `cat $HADOOP_HOME/etc/hadoop/slaves_for_loop` do { echo ---------- $host -- `date +%Y-%m-%d-%H:%M:%S` -------- sleep 1 ssh $cuser@$host "$@" }& done wait echo ---------- localhost --------- $@
完全分布式配置
1.复制jkd和hadoop到集群中的所有主机中 [hadoop@s100 soft]$ xsync /soft 2.查看复制文件 [hadoop@s100 soft]$ xcall ls -l /soft 3.复制/etc/profile到集群中的所有主机 [root@s100 .ssh]# xsync /etc/profile [root@s100 .ssh]# xsync /etc/environment 4.使环境变量生效 [root@s100 .ssh]# xcall source /etc/profile [root@s100 .ssh]# xcall source /etc/environment 5.抽取出hadoop的所有的默认配置文件 1)解压hadoop-2.7.3.tar.gz 2)[core-default.xml] hadoop-common-2.7.3.jar/core-default.xml 3)[hdfs-default.xml] hadoop-hdfs-2.7.3.jar/hdfs-default.xml 4)[yarn-default.xml] hadoop-yarn-common-2.7.3.jar/yarn-default.xml 5)[mapred-default.xm] hadoop-mapreduce-client-core-2.7.3.jar/mapred-default.xml 6.配置文件 [slaves] 192.168.88.101 192.168.88.102 192.168.88.103 [hdfs-site.xml] <?xml version="1.0" encoding="UTF-8"?> <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>s104:50090</value> </property> </configuration> [core-site.xml] <?xml version="1.0" encoding="UTF-8"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://s100/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop</value> </property> </configuration> 7.分发以上文件 $>xsync core-site.xml $>xsync hdfs-site.xml $>xsync slaves //创建临时目录 [hadoop@s100 hadoop]$ xcall mkdir /home/hadoop/hadoop 8.关闭所有节点 $>stop-all.sh 9.格式化 $>hadoop namenode -format 10.启动start-all.sh 11.创建目录,文件 [hadoop@s100 hadoop]$ hadoop fs -mkdir -p /user/hadoop/data 12.测试 http://s100:50070/ http://s101:50075/ http://s102:50075/ http://s104:50090/
转载请注明:MitNick » hadoop模块及配置