hadoop2.5.2安装部署
0x00 说明
此处已经省略基本配置步骤参考Hadoop1.0.3环境搭建流程,省略主要步骤有:
- 建立一般用户
- 关闭防火墙和SELinux
- 网络配置
0x01 配置master免密钥登录slave
生成密钥
$ su hadoop $ ssh-keygen -t rsa
- 将
id_rsa.pub
追加到授权key中(要将所有slave
节点的公钥都追加到该文件中,此处仅列举一条命令)
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
将
authorized_keys
复制到所有slave
节点$ scp ~/.ssh/authorized_keys hadoop@192.168.1.11:~/.ssh/ $ scp ~/.ssh/authorized_keys hadoop@192.168.1.12:~/.ssh/
测试,
master
免密钥登陆所有slave
节点$ ssh slave1 $ ssh slave2
0x02 hadoop2.5.2安装
解压
$ tar -zvxf hadoop-2.5.2.tar.gz -C /home/hadoop/hadoop $ chown -R hadoop:hadoop /home/hadoop
配置环境变量(在尾部追加)
# vim /etc/profile # set hadoop environment export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATH export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使环境变量立即生效注意在哪个用户下执行该命令,环境变量在那个用户下生效
# su hadoop $ source /etc/profile
0x03 配置hadoop文件
core-site.xml
注意:hadoop_tmp文件夹一定要配置在存储空间比较大的位置,否则会报错
可能出现的问题:
(1)Unhealthy Nodes 问题
http://blog.csdn.net/korder/article/details/46866271
(2)local-dirs turned bad
(3)Hadoop运行任务时一直卡在:INFO mapreduce.Job: Running job
http://www.bkjia.com/yjs/1030530.html<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/hadoop/hadoop_tmp</value> <!--需要自己创建hadoop_tmp文件夹--> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop/dfs/name</value> <description>namenode上存储hdfs元数据</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/ home/hadoop/hadoop/dfs/data</value> <description>datanode上数据块物理存储位置</description> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
注:访问namenode的 webhdfs 使用50070端口,访问datanode的webhdfs使用50075端口。要想不区分端口,直接使用namenode的IP和端口进行所有webhdfs操作,就需要在所有datanode上都设置hdfs-site.xml中dfs.webhdfs.enabled为true。
mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>
jobhistory是Hadoop自带一个历史服务器,记录Mapreduce历史作业。默认情况下,jobhistory没有启动,可用以下命令启动:
$ sbin/mr-jobhistory-daemon.sh start historyserver
yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>
修改
slaves
文件,添加datanode节点hostname到slaves文件中slave1 slave2
hadoop-env.sh
vim /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh export JAVA_HOME=${JAVA_HOME} | export JAVA_HOME=/usr/java
最后,将整个/home/hadoop/hadoop文件夹及其子文件夹使用scp复制到Slave相同目录中:
$ scp -r /home/hadoop/hadoop hadoop@slave1:/home/hadoop/ $ scp -r /home/hadoop/hadoop hadoop@slave2:/home/hadoop/
0x04 运行hadoop
- 格式化(*确保配置文件中各文件夹已经创建)
$ hdfs namenode –format
启动hadoop
$ start-dfs.sh $ start-yarn.sh //可以用一条命令来代替: $ start-all.sh
jps
查看进程
(1)master
主节点进程:
(2)slave
数据节点进程:
通过浏览器查看集群运行状态
概览:http://172.16.1.156:50070/
集群:http://172.16.1.156:8088/
JobHistory:http://172.16.1.156:19888
jobhistory是Hadoop自带一个历史服务器,记录Mapreduce历史作业。默认情况下,jobhistory没有启动,可用以下命令启动:
$ sbin/mr-jobhistory-daemon.sh start historyserver
0x05 测试hadoop(运行wordcount
)
建立文件
$ vi wordcount.txt hello you hello me hello everyone
在HDFS上建立目录
$ hadoop fs -mkdir /data/wordcount $ hadoop fs –mkdir /output/
目录/data/wordcount用来存放Hadoop自带WordCount例子的数据文件,运行这个MapReduce任务结果输出到/output/wordcount目录中。
- 上传文件
$ hadoop fs -put wordcount.txt/data/wordcount/
- 执行wordcount程序
$ hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount /data/wordcount /output/wordcount/
查看结果
# hadoop fs -text /output/wordcount/part-r-00000 everyone 1 hello 3 me 1 you 1
0x06 搭建中遇到的问题
- 在配置环境变量过程可能遇到输入命令ls命令不能识别问题:
ls -bash: ls: command not found
原因:在设置环境变量时,编辑profile文件没有写正确,将export PATH=$JAVA_HOME/bin:$PATH中冒号误写成分号 ,导致在命令行下ls等命令不能够识别。解决方案:export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
- 在主机上启动hadoop集群,然后使用jps查看主从机上进程状态,能够看到主机上的resourcemanager和各个从机上的nodemanager,但是过一段时间后,从机上的nodemanager就没有了,主机上的resourcemanager还在。
原因是防火墙处于开启状态:
注:nodemanager启动后要通过心跳机制定期与RM通信,否则RM会认为NM死掉,会停止NM服务。 SSH连接慢的问题
sshd服务中设置了UseDNS yes,当配置的DNS服务器出现无法访问的问题,可能会造成连接该服务器需要等待10到30秒的时间。由于使用UseDNS,sshd服务器会反向解析连接客户端的ip,即使是在局域网中也会。
当平时连接都是很快,突然变的异常的慢,可能是sshd服务的服务器上配置的DNS失效,例如DNS配置的是外网的,而此时外面故障断开。终极解决方案是不要使用UseDNS,在配置文件/etc/sshd_config(有些linux发行版在/etc/ssh/sshd_config)中找到UseDNS 设置其值为 no,如果前面有#号,需要去掉,重启sshd服务器即可。vim /etc/ssh/sshd_config UseDNS no
- 重新格式化HDFS文件系统后报错
FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join java.io.IOException: There appears to be a gap in the edit log. We expected txid 176531929, but got txid 176533587.
原因:是因为namenode和datenode数据不一致引起的
解决办法:删除master slave节点data
和name
文件夹下的内容,即可解决。缺点是数据不可恢复。
另一种解决办法:http://blog.csdn.net/amber_amber/article/details/46896719
参考链接:
https://yq.aliyun.com/articles/36274
https://taoistwar.gitbooks.io/spark-operationand-maintenance-management/content/spark_relate_software/hadoop_2x_install.html WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
I assume you're running Hadoop on 64bit CentOS. The reason you saw that warning is the native Hadoop library $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 was actually compiled on 32 bit.
Anyway, it's just a warning, and won't impact Hadoop's functionalities.
http://stackoverflow.com/questions/19943766/hadoop-unable-to-load-native-hadoop-library-for-your-platform-warning
(1)修改hadoop-env.sh
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/native" //这一句好像也可以不加 export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/"
(2)简便的解决方法是:
下载64位的库,解压到hadoop-2.7.0/lib/native/,不在有警告
下载地址:http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop提交jar包卡住不会往下执行的解决方案,卡在此处:
INFO mapreduce.Job: Running job: job_1474517485267_0001
这里我们在集群的yarn-site.xml
中添加配置<property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property>
重新启动集群,运行jar包即可
但是,并没有解决我的问题,我的问题是Unhealthy Nodes
,最后才发现!!可能不添加上述配置原来配置也是对的。
http://www.voidcn.com/blog/gamer_gyt/article/p-6209546.html
2017年1月22日, 星期日
hadoop2.5.2安装部署的更多相关文章
- 【原创 Hadoop&Spark 动手实践 1】Hadoop2.7.3 安装部署实践
目录: 第一部分:操作系统准备工作: 1. 安装部署CentOS7.3 1611 2. CentOS7软件安装(net-tools, wget, vim等) 3. 更新CentOS7的Yum源,更新软 ...
- hadoop2 Ubuntu 下安装部署
搭建Hadoop环境( 我以hadoop 2.7.3 为例, 系统为 64bit Ubuntu14.04 ) hadoop 2.7.3 官网下载 , 选择自己要安装的版本.注意每个版本对应两个下载选项 ...
- Hadoop2.5.2 安装部署
0x00 平台环境 OS: CentOS-6.5-x86_64 JDK: jdk-8u111-linux-x64 Hadoop: hadoop-2.5.2 0x01 操作系统基本设置 1.1 网络配置 ...
- hadoop入门(3)——hadoop2.0理论基础:安装部署方法
一.hadoop2.0安装部署流程 1.自动安装部署:Ambari.Minos(小米).Cloudera Manager(收费) 2.使用RPM包安装部署:Apache ...
- CentOS下SparkR安装部署:hadoop2.7.3+spark2.0.0+scale2.11.8+hive2.1.0
注:之前本人写了一篇SparkR的安装部署文章:SparkR安装部署及数据分析实例,当时SparkR项目还没正式入主Spark,需要自己下载SparkR安装包,但现在spark已经支持R接口,so更新 ...
- spark2.10安装部署(集成hadoop2.7+)
这里默认你的hadoop是已经安装好的,master是node1,slaver是node2-3,hdfs启动在node1,yarn启动在node2,如果没安装好hadoop可以看我前面的文章 因为这里 ...
- Hadoop2.2集群安装配置-Spark集群安装部署
配置安装Hadoop2.2.0 部署spark 1.0的流程 一.环境描写叙述 本实验在一台Windows7-64下安装Vmware.在Vmware里安装两虚拟机分别例如以下 主机名spark1(19 ...
- Hadoop2.7.3+Hbase-1.2.6+spark2.1.2完全分布式安装部署
https://www.cnblogs.com/lzxlfly/p/7221890.html 总的下载地址: http://mirror.bit.edu.cn/apache/ hadoop下 ...
- Apache Hadoop2.x 边安装边入门
完整PDF版本:<Apache Hadoop2.x边安装边入门> 目录 第一部分:Linux环境安装 第一步.配置Vmware NAT网络 一. Vmware网络模式介绍 二. NAT模式 ...
随机推荐
- USB那点事3 -使用端口2作为custom HID的传输(转)
源:USB那点事3 -使用端口2作为custom HID的传输 USB custom HID例子中是使用了端口1作为通信,那么现在我使用端口2作为通信端了,该如何修改呢?如下所示: 首先修改:usb_ ...
- IOS 7 Xcode 5 免IDP证书 真机调试(转载)
最近转开发了,真的很久没有更新博客了,今天有空写一篇吧. 今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调 ...
- java class加载机制及对象生成机制
java class加载机制及对象生成机制 当使用到某个类,但该类还未初始化,未加载到内存中时会经历类加载.链接.初始化三个步骤完成类的初始化.需要注意的是类的初始化和链接的顺序有可能是互换的. Cl ...
- 谈谈jconsole和jvisualvm
环境Eclipse-Mars ,JDK1.7 JConsole 一.首先需要配置参数 参数有两种配置连接方式:(原理我还不太懂) 1.在eclipse中添加 项目右键-->>Debug a ...
- java中String相等问题
java中判断两个字符串是否相等的问题 判断两个字符串是否相等的问题.在编程中,通常比较两个字符串是否相同的表达式是"==",但在java中不能这么写.在java中,用的是eq ...
- IOS Cell 重影
效果:重影 原因: 多次创建控件元素 解决:在initWithStyle中进行初始化元素
- python 日期格式化常用标记
符号 说明 例子 %a 英文星期的简写 Mon %A 英文星期的完整编写 Monday %b 英文月份的简写 Jun %B 英文月份的完整编写 June ...
- FarPoint Spread ChildView子视图
有一种需求场景在很多地方都会用到,就是父子关系(头表和子表的关系),比如订单和订单明细. 做过winform的朋友第spread控件应该比较熟悉,或者了解.他的展示方式就通过一个关联关系就可以了,下面 ...
- kafkaspout以及kafkabolt的最简实例
这个实例中有一个KafkaSpout,一个KafkaBolt,一个自定义Bolt QueryBolt.数据流程是KafkaSpout从topic为recommend的消息队列中取出St ...
- 译者序(Core Data 应用开发实践指南)
Core Data 是数据管理框架. 该书用Grocery Dude 购物管理程序来贯穿整个学习过程. 本书共分三个部分: 前7章为基础篇.从基础知识.迁移方式及扩展方式来讲解托管对象模型.怎么用图形 ...