针对centos7系统下进行hadoop-0.20.2的完全分布式配置和hadoop完全分布式部署这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展64位CentOS系统下安装配置伪分布式ha
针对centos 7 系统下进行hadoop-0.20.2的完全分布式配置和hadoop完全分布式部署这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展64位CentOS系统下安装配置伪分布式hadoop 2.5.2、CentOS 6.5 配置hadoop 2.6.0伪分布式、centos 6.6 hadoop 2.7.1 完全分布式安装部署、centos 64位 hadoop 完全分布式安装等相关知识,希望可以帮助到你。
本文目录一览:- centos 7 系统下进行hadoop-0.20.2的完全分布式配置(hadoop完全分布式部署)
- 64位CentOS系统下安装配置伪分布式hadoop 2.5.2
- CentOS 6.5 配置hadoop 2.6.0伪分布式
- centos 6.6 hadoop 2.7.1 完全分布式安装部署
- centos 64位 hadoop 完全分布式安装
centos 7 系统下进行hadoop-0.20.2的完全分布式配置(hadoop完全分布式部署)
记录一下我含泪史,为什么叫含泪史呢?因为自学的过程中会遇到各种各样的问题,遇到问题-解决问题。利用了一个双休+今天,才真正的配好了hadoop。
其过程,可谓柔肠百结、心如吞石。配置成功后,看到自己的成果,挺-感-动!
首先说明的是,这一篇博客是依据上一篇"centos 7 系统下进行多服务器的SSH免密码登录配置"继续的。
hadoop的完全分布式配置
配置环境信息
系统 | hadoop版本号 | jdk版本号 | 主机名 | 别名 | 用户 | IP地址 | 功能 |
centos7 | hadoop-0.20.2.tar.gz | java-1.8.0 | h147 | master | hadoop | 192.168.127.147 | namenode |
centos7 | hadoop-0.20.2.tar.gz | java-1.8.0 | h148 | slave1 | hadoop | 192.168.127.148 | datanode |
centos7 | hadoop-0.20.2.tar.gz | java-1.8.0 | h149 | slave2 | hadoop | 192.168.127.149 | datanode |
JDK配置
关于JDK的配置是根据这一篇“Hadoop基于Linux-CentOS7安装-安装Hadoop”来进行配置的。
展示一下此时已配置成功的hadoop集群下,jdk配置成功配置信息:
# set jdk env export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64 export CLAsspATH=.:$CLAsspATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
需要指出的是,在master、slave1、slave2 这三天机器上,这个jdk以及环境配置文件都是要写的。
SSH配置
关于SSH的配置是根据这一篇“centos 7 系统下进行多服务器的SSH免密码登录配置”来进行配置的。
这里需要提出的是,如果使用"ssh localhost"命令进行访问本地服务器的时候需要输入密码,这时候之需要修改一下文件权限为600:authorized_keys
hadoop配置
好的,基于上面的配置信息我们看一下:
需要提出的是,图片中可以看到,我把“192.168.127.147 localhost”给注释了!
然后我也做了对主机名的修改,但是这种修改是否有助于hadoop的安装配置,我还没有进行测试。"修改主机名之后,重启网络使用命令:/etc/init.d/network restart"
三台服务器:master、slave1、slave2.他们的hosts文件都是相同的。
配置hadoop,首先使用winSCP把windows上已经下载的hadoop-0.20.2压缩包复制到centos7上。
然后在centos7 中找到这个压缩包,进行解压-并修改文件夹的名称为hado:
#解压命令 tar zxvf hadoop-0.20.2.tar.gz /home/hadoop/ #修改文件名命令 mv -r hadoop-0.20.2 /home/hadoop/hado然后配置环境文件-/etc/profile<这个文件,三台服务器:master、slave1、slave2.他们的都是相同的。>
#set hadoop export HADOOP_HOME=/home/hadoop/hadoop export PATH=$HADOOP_HOME/bin:$PATH
然后就是比较重要的文件配置:/home/hadoop/hado/conf/*
core-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://192.168.127.147:9000</value> </property> </configuration>
hadoop-env.xml
# The java implementation to use. required. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
hdfs-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.data.dir</name> <value>/home/hadoop/dir/data</value> </property> <property> <name>dfs.name.dir</name> <value>/home/hadoop/dir/name</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
mapred-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>192.168.127.147:9001</value> </property> </configuration>
配置 masters和slaves
然后,把已经配置好的hadoop,传送给slave1和slave2。使用命令:
#传给slave1 scp -r /home/hadoop/hado hadoop@slave1:/home/hadoop/ #传给slave2 scp -r /home/hadoop/hado hadoop@slave2:/home/hadoop/
#对 namenode 进行格式化 bin/hadoop namenode -format #格式化成功之后,启动 bin/start-all.sh
然后,还可以这样
在 /home/hadoop/hado/ 下建立一个目录 input。并在目录中input建立两个文件 test1.txt、test2.txt。
#创建目录 input mkdir /home/hadoop/hado/input #在input 中建立两个文件 echo "hello mufafa,the world love you ." > test1.txt echo "hello hadoop,the females love you ." > test1.txt然后,把目录input中的文件上传到hdfs上<在目录 /home/hadoop/hado 下执行>:
#上传文件 bin/hadoop dfs -put /home/hadoop/input in
bin/hadoop jar /home/hadoop/hado/hadoop-0.20.2-examples.jar wordcount in out最后,查看处理结果:
bin/hadoop dfs -cat ./out/*
并在这里总结一下经常会使用到的命令:
#创建群组 groupadd supergroup #添加用户到群组 usermod -a -G supergroup hadoop #启动防火墙 systemctl start firewalld #关闭防火墙 systemctl stop firewalld #停止防火墙 systemctl disable firewalld #查看防火墙的状态 systemctl status firewalld #或者 firewall-cmd --state #查看namenode主机的9000的监听情况 netstat -nap | grep 9000 #查看磁盘空间 df –ah #格式化namenode bin/hadoop namenode -format #修改了host后,重启网络 /etc/init.d/network restart #查看主机名 hostname #查看$之后的路径 echo $JAVA_HOME bin/hadoop dfsadmin -report #单独启动 namenode 或 datanode bin/hadoop-daemon.sh start namenode bin/hadoop-daemon.sh start datanode
然后简单总结一下,我在配置过程遇到的问题:
1,遇到了 namenode 的安全模式异常,并附解决方案
2,需要关闭防火墙-所有机器都关掉(不关,要开放出一个端口),这个问题我觉得新手基本上逃不掉;这个问题的出现,比如http://192.168.127.147:50030/jobtracker.jsp,无法打开网页;
3,切记,namenode(master) 还有 所有的 datanode(slave),在配置hadoop之前,对于 host 、 jdk、ssh等,配置一定要保持一致!
4,在进行配置 ./hadoop/conf/* 的 hdfs-site.xml 时,会让我们写<name>dfs.data.dir</name> 和<name>dfs.name.dir</name> 。这时,我们不用自己创建他们所对应的目录,因为他们会自己创建。并且如果你自己创建的目录,如果权限不对,那么数据无法写入,又要报错了。还有就是我在配置时候并没有做任何的目录"tmp";
5,很多博客上写了,创建群组什么的,然后把这些用户都添加到同一个群组中,便于管理。其实,这个不是必须的!
6,还有就是执行了 start-all.sh 后,jps可以看到Jps、SecondaryNameNode、JobTracker、NameNode。但是,经过几分钟亦或是几秒钟之后,再次执行jps发现NameNode没了!!然后又分别在其他节点执行jps发现,都没有了!
7,当执行命令比如bin/hadoop dfsadmin -report,发现一直在重试连接master,但就是链接不上;
8,当执行命令比如bin/hadoop dfsadmin -report,发现直接出现了异常,没有namenode或是datanode;
9,对于配置hadoop的conf/*下的文件时候,最好使用IP(如192.168.127.147);masters和slaves也使用IP;
64位CentOS系统下安装配置伪分布式hadoop 2.5.2
安装完之后进行配置,首先所有的配置文件从上一版本的hadoop/conf换成了hadoop/etc/hadoop,在hadoop安装目录下,修改 etc/hadoop/core-site.xml,将其配置为: configuration property namehadoop.tmp.dir/name value/usr/hadoop/tmp/value descriptionA ba
安装完之后进行配置,首先所有的配置文件从上一版本的hadoop/conf换成了hadoop/etc/hadoop,在hadoop安装目录下,修改 etc/hadoop/core-site.xml,将其配置为:
然后执行修改etc/hadoop/hdfs-site.xml进行第二项配置:
请注意上述路径都需要自己手动用mkdir创建,具体位置也可以自己选择,其中dfs.replication的值建议配置为与分布式 cluster 中实际的 DataNode 主机数一致,在这里由于是伪分布式环境所以设置其为1。
接下来修改 etc/hadoop/mapred-site.xml配置其使用 Yarn 框架执行 map-reduce 处理程序,内容如下:
最后修改 etc/hadoop/yarn-site.xml对yarn进行配置,其内容如下:
然后格式化:
CentOS 6.5 配置hadoop 2.6.0伪分布式
操作系统:CentOS 6.5 32位
Java环境:jdk 1.7.0_71
hadoop下载地址:http://apache.fayea.com/hadoop/common/stable/hadoop-2.6.0.tar.gz
1.创建用户组和用户
使用su命令切换用户为root
2.安装ssh
- rpm-qa|grepssh#检查是否装了SSH包
- yuminstallopenssh-server#安装ssh
- chkconfig--listsshd#检查SSHD是否设置为开机启动
- chkconfig--level2345sshdon#如果没设置启动就设置下.
- servicesshdrestart#重新启动
3.配置ssh无密码登录
切换至hadoop用户
进入.ssh目录,并将id_rsa.pub追加到authorized_keys文件中
测试是否可以登录
将下载的hadoop解压并移动到期望的安装目录,修改其访问权限
5.配置伪分布式
hadoop的配置文件主要有core-site.xml 、 hdfs-site.xml 、 yarn-site.xml 三个文件。
core-site.xml
hdfs.xml
yarn-site.xml
接下来创建需要的文件夹
到目前为止所有的配置都已经完成。
6.运行
首先格式化文件系统
提示如下则表明成功了。
PS :如果出现警告提示:
出现这个问题有两种情况:
一、没有设置HADOOP_OPTS这个环境变量
二、是操作系统与hadoop.so文件不兼容导致的。
hadoop 2.5以后的release版本都是64位编译的,如果自己的电脑是32位的就出现不兼容的情况。这时需要重新编译hadoop源码(编译hadoop源码时,不要使用jdk1.8.0,使用1.6和1.7就可以了,不然会报这个错误[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8.1:jar (module-javadocs) on project hadoop-annotations: MavenReportException: Error while creating archive ):
centos 6.6 hadoop 2.7.1 完全分布式安装部署
1.安装前,准备三台CENTOS 6.6系统的主机或虚机,并且关闭防火墙及selinux.
2.按如下表格配置IP地址,修改hosts文件及本机名
192.168.199.21hadoop21 Master
102.168.199.22hadoop22 Slave1
192.168.199.23hadoop23 Slave2
同理修改Slave1,Slave2的IP地址,hosts文件及本机名。
3.安装ORACLE JDK
先卸载本机openJDK,使用rpm -qa|grep java查看,然后用rpm -e 卸载
从oracle网站找到最新JDK,我这选择了JDK8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载好以后解压,并移至/usr/java,如果没有可以mkdir 建立。
tar -xzvfjdk-8u51-linux-x64.gz
mvjdk1.8.0_51 /usr/java
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_51
export CLAsspATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
4.在各节点分别建立Hadoop运行帐号grid,并设置密码
5.配置SSH免密码登陆。
在各节点分别以grid用户名生成两个密钥文件,一个是私钥id_rsa,另一个是公钥id_rsa.pub
ssh-keygen -t rsa -f ~/.ssh/id_rsa
然后在hadoop21上
cp /home/grid/.ssh/id_rsa.pub /home/grid/.ssh/authorized_keys
scp hadoop22:/home/grid/.ssh/id_rsa.pub pubkeys22
scp hadoop23:/home/grid/.ssh/id_rsa.pub pubkeys23
cat pubkeys22 >> /home/grid/.ssh/authorized_keys
cat pubkeys23 >> /home/grid/.ssh/authorized_keys
rm pubkeys22
rm pubkeys23
最后分发authorized_keys到各节点
scp /home/grid/.ssh/authorized_keys hadoop22:/home/grid/.ssh
scp /home/grid/.ssh/authorized_keys hadoop23:/home/grid/.ssh
6.在Master机下载并解压Hadoop2.7.1(使用grid用户名)
找到最近的hadoop镜像,使用wget下载2.7.1
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
解压hadoop-2.7.1.tar.gz
tar -xzvfhadoop-2.7.1.tar.gz
cd hadoop-2.7.1
建立tmp,dfs,dfs/data,dfs/name
7.修改配置文件
修改hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_51
8. 分发至各Salve节点
scp -r /home/grid/hadoop-2.7.1 hadoop22:/home/grid
scp -r /home/grid/hadoop-2.7.1 hadoop23:/home/grid
9.Master机格式化namenode
cd /home/grid/hadoop-2.7.1
./bin/hdfs namenode -format
10.启动Hadoop
11.验证是否成功
Master机应该启动NameNode,SecondaryNameNode,ResourceManager
Slave机应该启动Datanode,NodeManager
centos 64位 hadoop 完全分布式安装
##### ####安装hadoop完全分布式集群 ##### ####文件及系统版本: #### hadoop-1.2.1 Javaversion1.7.0_79 centos64位 ####预备 #### 在/home/hadoop/下:mkdirCloud 把java和hadoop安装包放在/home/hadoop/Cloud下 ####配置静态ip #### master 192.168.116.100 slave1 192.168.116.110 slave2 192.168.116.120 ####修改机器相关名称(都是在root权限下) #### suroot vim/etc/hosts 在原信息下输入:(空格+tab) master 192.168.116.100 slave1 192.168.116.110 slave2 192.168.116.120 vim/etc/hostname master shutdown-rNow(重启机器) vim/etc/hostname slave1 shutdown-rNow vim/etc/hostname slave2 shutdown-rNow ####安装openssh #### suroot yuminstallopenssh ssh-keygen-trsa 然后一直确认 把slave1和slave2的公钥发给master: scp/home/hadoop/.ssh/id_rsa.pubhadoop@master:~/.ssh/slave1.pub scp/home/hadoop/.ssh/id_rsa.pubhadoop@master:~/.ssh/slave2.pub 在master下:cd.ssh/ catid_rsa.pub>>authorized_keys catslave1.pub>>authorized_keys catslave2.pub>>authorized_keys 把公钥包发给slave1和slave2: scpauthorized_keyshadoop@slave1:~/.ssh/ scpauthorized_keyshadoop@slave2:~/.ssh/ sshslave1 sshslave2 sshmaster 相应的输入yes 到这里ssh无密码登录配置完成 ####设计JAVA_HOMEHADOOP_HOME #### suroot vim/etc/profile 输入: exportJAVA_HOME=/home/hadoop/Cloud/jdk1.7.0_79 exportJRE_HOME=$JAVA_HOME/jre exportCLAsspATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar exportHADOOP_HOME=/home/hadoop/Cloud/hadoop-1.2.1 exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 然后source/etc/profile ####配置hadoop文件 #### 在/home/hadoop/Cloud/hadoop-1.2.1/conf下 vimmasters输入: master vimslaves输入: master slave1 slave2 vimhadoop-env.sh输入: exportJAVA_HOME=/home/hadoop/Cloud/jdk1.7.0_79 exportHADOOP_HOME_WARN_SUPPRESS="TRUE" 然后sourcehadoop-env.sh vimcore-site.xml输入: ###################################core <configuration> <property> <name>io.native.lib.avaliable</name> <value>true</value> </property> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> <final>true</final> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/Cloud/workspace/temp</value> </property> </configuration> ############################core vimhdfs-site.xml ##############################hdfs <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/Cloud/workspace/hdfs/data</value> <final>true</final> </property> <property> <name>dfs.namenode.dir</name> <value>/home/hadoop/Cloud/workspace/hdfs/name</value> </property> <property> <name>dfs.datanode.dir</name> <value>/home/hadoop/Cloud/workspace/hdfs/data</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration> ##################################hdfs vimmapred-site.xml ####################################mapred <configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> </configuration> ######################################mapred 到这里hadoop配置完成 把hadoop发送到slave1和slave2 scp-rhadoop-1.2.1hadoop@slave1:~/Cloud/ scp-rhadoop-1.2.1hadoop@slave2:~/Cloud/ ########现在可以启动hadoop啦 ######## 首先格式化namenode hadoopnamenode-format(由于前面设计了hadoop-env.sh和系统环境,所以在任意目录下都可以执行) 查看日志没错的话往下 start-all.sh 然后 完整的的话会出现: [hadoop@master~]$jps 8330JobTracker 8452TaskTracker 8246SecondaryNameNode 8125Datanode 8000NameNode 8598Jps [hadoop@master~]$sshslave1 Lastlogin:ThuJan1207:08:062017frommaster [hadoop@slave1~]$jps 3885Datanode 3970TaskTracker 4078Jps [hadoop@slave1~]$sshslave2 Lastlogin:ThuJan1207:20:452017frommaster [hadoop@slave2~]$jps 2853TaskTracker 2771Datanode 2960Jps 至此,hadoop完全分布式配置完成。 下面是hadoop的浏览器端口号: localhost:50030/fortheJobtracker localhost:50070/fortheNamenode localhost:50060/fortheTasktracker 从此走上大数据这条不归路。。。
关于centos 7 系统下进行hadoop-0.20.2的完全分布式配置和hadoop完全分布式部署的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于64位CentOS系统下安装配置伪分布式hadoop 2.5.2、CentOS 6.5 配置hadoop 2.6.0伪分布式、centos 6.6 hadoop 2.7.1 完全分布式安装部署、centos 64位 hadoop 完全分布式安装等相关知识的信息别忘了在本站进行查找喔。
本文标签: