转载请注明出处:http://blog.csdn.net/tang9140/article/details/42869531
最近学习了下hadoop的安装。下面详细说明下步骤
一、环境
我的是在Linux环境下进行安装的。对于想在windows系统上学习的同学,可以采用虚拟机方式或通过cygwin模拟linux环境方式进行学习。
现在有三台服务器,分配如下:
10.0.1.100 NameNode
10.0.1.201 DataNode1
10.0.1.202 DataNode2
NameNode(主服务器)可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。
DataNode(从服务器)是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode
1、安装jdk
自己到网上找到合适的jdk版本,我下载的是jdk-6u23-linux-i586.bin(linux的32位操作系统版本)。分别上传到3个服务器的/usr/local/java/jdk目录下(该目录可根据个人习惯修改)
jdk-6u23-linux-i586.bin 是自解压的文件,要增加可执行权限。如下
chmod +x jdk-6u23-linux-i586.bin
./jdk-6u23-linux-i586.bin
输入回车后,解压完成。
修改配置
vi /etc/profile
在profile最后增加以下几行环境变量配置
JAVA_HOME=/usr/local/java/jdk/jdk1.6.0_23
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
重新ssh连接服务器,测试JDK是否安装成功。其命令如下:
java -version
正常显示如下:
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)
2、配置ssh
一般linux系统是自带安装ssh服务的,对于没有安装ssh服务的,请自行安装,这里不详细说明如何安装。
我们需要对ssh服务进行配置,以运行hadoop环境进行ssh无密码登录。即NameNode节点需要能够ssh无密码登录访问DataNode节点
进入NameNode服务器,输入如下命令
[root@localhost hadoop]# cd ~
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# ssh-keygen -t rsa
一直回车。.ssh目录下多出两个文件
私钥文件:id_rsa
公钥文件:id_rsa.pub
复制id_rsa.pub文件为authorized_keys
[root@localhost .ssh]# cp id_rsa.pub authorized_keys
将公钥文件authorized_keys分发到各DataNode节点:
[root@localhost .ssh]# scp authorized_keys root@10.0.1.201:/root/.ssh/
[root@localhost .ssh]# scp authorized_keys root@10.0.1.202:/root/.ssh/
注意:如果当前用户目录下没有.ssh目录,可以自己创建一个该目录
验证ssh无密码登录:
[root@localhost .ssh]# ssh root@10.0.1.201
Last login: Mon Jan 5 09:46:01 2015 from 10.0.1.100
看到以上信息,表示配置成功!如果还提示要输入密码,则配置失败。
3、配置hostname及hosts
修改/etc/sysconfig/network中的hostname(需要重启系统才会生效)
NETWORKING=yes
HOSTNAME=NameNode
修改/etc/hosts
10.0.1.100 NameNode
10.0.1.201 DataNode1
10.0.1.202 DataNode2
两个DataNode也要修改hostname及hosts文件
二、下载及安装Hadoop
1、下载
去hadoop官网上(http://hadoop.apache.org/)下载合适的hadoop版本。我选择的是比较新的2.5.2版本(最新的是2.6.0版本)。文件名为hadoop-2.5.2.tar.gz,下载文件上传到/root/test下(三个服务器都要上传),切换到该目录下,解压:
tar -zvxf hadoop-2.5.2.tar.gz
2、配置
主服务器(10.0.1.100)进入配置目录:cd hadoop-2.5.2/etc/hadoop
core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://10.0.1.100:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>hadoop-cluster1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>10.0.1.100:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>10.0.1.100:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>10.0.1.100:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>10.0.1.100:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>10.0.1.100:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.0.1.100:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.0.1.100:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>10.0.1.100:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>10.0.1.100:8088</value>
</property>
</configuration>
slaves
10.0.1.201
10.0.1.202
hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk/jdk1.6.0_23
注:两个从服务器也要按上面修改各个配置文件,可直接用scp命令将主服务器${HADOOP_HOME}/etc/hadoop/目录覆盖从服务器相应目录
3、格式化文件系统
bin/hdfs namenode -format
注意:这里的格式化文件系统并不是硬盘格式化,只是针对主服务器hdfs-site.xml的dfs.namenode.name.dir和dfs.datanode.data.dir目录做相应的清理工作。
4、启动和停止服务
启动
sbin/start-dfs.sh
sbin/start-yarn.sh
停止
sbin/stop-dfs.sh
sbin/stop-yarn.sh
5、查看启动的进程
jps
显示如下
14140 ResourceManager
13795 NameNode
14399 Jps
6、单独重启丢失的DataNode节点
如果某个DataNode节点Dead(由于死机或人为原因等),可以在不重启整个Hadoop服务的情况下进行单独重启。方法如下:
在NameNode的hadoop-2.5.2/sbin目录下,执行命令启动HDFS DataNode
./hadoop-daemons.sh start datanode
接着执行命令启动NodeManager
./yarn-daemons.sh start nodemanager
也可以单独启动NameNode节点,命令如下:
./hadoop-daemon.sh start namenode
./yarn-daemon.sh start resourcemanager
上述四个命令都可以指定--config参数,后面跟hadoop的集群配置文件所在目录(即$HADOOP_HOME/etc/hadoop),大家可通过参数-h查看命令帮助信息
注意:上面命令不会影响已经启动的hdfs或yarn服务,只会把丢失节点的服务启动起来。
三、通过浏览器访问
http://10.0.1.100:50070/
http://10.0.1.100:8088/
---------------
特别说明下,上面配置主服务器的slaves文件,使用的是ip配置,此时需要在主服务器的/etc/hosts中增加ip到主机名的映射如下:
10.0.1.201 anyname1
10.0.1.202 anyname2
否则,可能在执行start-dfs.sh命令时,从服务器的DateNode节点打印如下错误日志:
2015-01-16 17:06:54,375 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool BP-1748412339-10.0.1.212-1420015637155 (Datanode Uuid null) service to /10.0.1.218:9000 Datanode denied communication with namenode because
hostname cannot be resolved (ip=10.0.1.217, hostname=10.0.1.217): DatanodeRegistration(0.0.0.0, datanodeUuid=3ed21882-db82-462e-a71d-0dd52489d19e, infoPort=50075, ipcPort=50020, storageInfo=lv=-55;cid=CID-4237dee9-ea5e-4994-91c2-008d9e804960;nsid=358861143;c=0)
大意是无法将ip地址解析成主机名,也就是无法获取到主机名,需要在/etc/hosts中进行指定。
本文章参照了http://blog.csdn.net/greensurfer/article/details/39450369
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
这个名为“hadoop-2.5.2.tar.gz”的压缩包文件包含了Hadoop 2.5.2版本的所有源代码、二进制文件、配置文件以及相关的文档资料。Hadoop 2.5.2是在Hadoop 2.x系列中的一个稳定版本,它引入了许多重要的改进和优化,以...
这个名为“hadoop-2.5.2.zip”的压缩包文件提供了预配置的Hadoop 2.5.2环境,特别适用于在Linux操作系统上快速搭建Hadoop集群或进行大数据分析。 Hadoop 2.5.2是Hadoop发展中的一个重要版本,它包含了许多关键的...
hadoop-eclipse-plugin-2.5.2
hadoop-eclipse-plugin-2.5.2.jar eclipse的开发插件
在Apache Hadoop下载到的Hadoop-2.5.2.tar.gz是运行在32位系统上的,若需要运行在64位系统上,则需要对其源码Hadoop-2.5.2.src.tar.gz进行重新编译,但是其过程往往很复杂,耗时长,产生bug多。
hadoop-2.5.2-X64位,自己手动编译的,这是第一部分(因为每次最大只能上传60兆的文件,没办法了)
hadoop-2.5.2-X64位,自己手动编译的,这是第一部分(因为每次最大只能上传60兆的文件,没办法了),解压的时候需要和part1和part2放在一起方能解压成功
hadoop-2.5.2-X64位,自己手动编译的,这是第一部分(因为每次最大只能上传60兆的文件,没办法了)
这些文件"hadop-eclipse-plugin-2.5.2.jar"、"hadoop-eclipse-plugin-2.6.0.jar"和"hadoop-eclipse-plugin-2.6.5.jar"分别对应Hadoop的2.5.2、2.6.0和2.6.5版本的插件。 **Hadoop核心组件:** 1. **HDFS(Hadoop ...
标题提到的"Ubuntu下hadoop-2.5.2编译好的64bit的native库",意味着这是一个专门为64位Ubuntu系统优化的Hadoop原生库包。这个库包包含了与Hadoop 2.5.2版本兼容的所有必要的C/C++编译的库文件,它们可以显著提高...
hadoop eclipse插件
### Hadoop-1.0.0 集群安装详细步骤及知识点解析 #### 一、环境准备 根据所提供的信息,本次安装的目标是构建一个基于Hadoop-1.0.0版本的集群环境。该环境将包括一台主节点(NameNode)以及两台从节点(DataNodes...
解决:Unable to load native-hadoop library for your platform 问题 原因: Apache提供的hadoop本地库是32位的,而在64位的...将准备好的64位的lib包解压到已经安装好的hadoop安装目录的lib/native 和 lib目录下:
按照文档操作可安装7个节点的大数据集群,包括hadoop,hive,hbase,spark,tez,flume,kafka等等,不技术自动化运维及监控
这个是hadoop-2.5.2版本配置的利用ant在windows7下面jdk1.7编译成功的eclipse4.5.0版本的hadoop开发插件jar包!!!
Hadoop-0.21.0分布式集群配置.doc