hadoop(2.5) 分布式部署

1. 部署环境

系统:  CentOS 6.3

需要安装jdk.

JDK的RPM下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

hadoop手册地址: http://hadoop.apache.org/docs/r1.2.1/index.html

关闭iptables和selinux

/etc/init.d/iptables stop
chkconfig iptables off
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config
setenforce 0

2. SSH配置

useradd hadoop
echo 123456 | passwd --stdin hadoop
su - hadoop

ssh-keygen -t rsa                                      #生成密钥对
ssh-copy-id [email protected]                                    #将ssh公钥copy到指定的主机

cd .ssh #每台服务器本机也需要配置ssh免密码登录
cat id_rsa.pub  >> authorized_keys

3. 部署hadoop

官网: http://hadoop.apache.org/

下载: http://mirror.bit.edu.cn/apache/hadoop/common/

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.5.0/hadoop-2.5.0.tar.gz
tar xf hadoop-2.5.0.tar.gz

cd hadoop-2.5.0
mkdir data                         #用来存放数据块的,在slave中才会用到
mkdir name                         #用来存放元数据的,在namenode中才会用
mkdir tmp                          #tmp主要用来存放临时数据

修改配置

涉及到的配置文件有7个:

etc/hadoop/hadoop-env.sh

etc/hadoop/yarn-env.sh

etc/hadoop/slaves

etc/hadoop/core-site.xml

etc/hadoop/hdfs-site.xml

etc/hadoop/mapred-site.xml

etc/hadoop/yarn-site.xml

以上个别文件默认不存在的, 可以复制相应的template文件获得

1. etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.7.0_67

2. etc/hadoop/yarn-env.sh

export JAVA_HOME=/usr/java/jdk1.7.0_67

3. etc/hadoop/slaves

secondarynamenode和master分离的时候在masters文件中记录

hadoop2
hadoop3

4. etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9200</value>
</property>

<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop-2.5.0/tmp</value>                                #设置hadoop临时目录
<description>Abase for other temporary directories.</description>
</property>

<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>

5. etc/hadoop/hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:9001</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop-2.5.0/name</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-2.5.0/data</value>
</property>

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

6. etc/hadoop/mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>

<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop1:19888</value>
</property>
</configuration>

7. etc/hadoop/yarn-site.xml

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:8032</value>
</property>

<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:8030</value>
</property>

<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:8031</value>
</property>

<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:8033</value>
</property>

<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:8088</value>
</property>
</configuration>

4.  启动集群并检验

将hadoop目录分发到各节点

scp -r /home/hadoop/hadoop-2.5.0  ip:/home/hadoop

格式化namenode

./bin/hdfs namenode -format

启动hdfs

./sbin/start-dfs.sh

此时在hadoop1上面运行的进程有: NameNode   SecondaryNameNode

hadoop2和hadoop3上面运行的进程有: DataNode

启动yarn

./sbin/start-yarn.sh

此时在hadoop1上面运行的进程有: NameNode   SecondaryNameNode  ResourceManager

hadoop2和hadoop3上面运行的进程有: DataNode  NodeManager

通过jps可以查看进程, 以下是通过oracle 安装的rpm的jdk.

/usr/java/jdk1.7.0_67/bin/jps

控制台报错:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

通过配置DEBUG变量,可以查看错误细节,

export HADOOP_ROOT_LOGGER=DEBUG,console

可以看到所依赖的GLIBC版本不符合要求...

DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /home/hadoop/hadoop-2.5.0/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14‘ not found (required by /home/hadoop/hadoop-2.5.0/lib/native/libhadoop.so.1.0.0)

升级GLIBC....

下载地址: http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

下载地址: http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2   #编译glibc需要

tar xf glibc-2.14.tar.gz
cd glibc-2.14
tar xf ../glibc-linuxthreads-2.5.tar.bz2
cd ..
export CFLAGS="-g -O2"
./glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install

安装编译过程中需要注意三点:

1. 要将glic-linuxthreads解压到glibc目录下

2. 不能在glibc当前目录下运行configure

3. 加上优化开关, export CFLAGS="-g -O2", 否则会出现错误..

如果安装的hadoop本地库是32位而系统是64位的:

重新编译hadoop...

暂时可以解决的办法, 使用以下的环境变量.... ,让hadoop找不到本地库,,,会使用java的标准库..

export HADOOP_COMMON_LIB_NATIVE_DIR=/home/hadoop/hadoop-2.2.0/lib/native
export HADOOP_OPTS="-D java.library.path=/home/hadoop/hadoop-2.2.0/lib"

总结:

安装JDK

编辑hosts文件

关闭防火墙和selinux

部署免密码ssh

下载hadoop 2.5 并解压

修改配置文件

分发hadoop到各个节点

启动集群

时间: 2024-08-04 01:15:32

hadoop(2.5) 分布式部署的相关文章

hadoop(1.2) 分布式部署

1. 部署环境 系统:  CentOS 6.3 需要安装jdk. JDK的RPM下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html hadoop手册地址: http://hadoop.apache.org/docs/r1.2.1/index.html 关闭iptables和selinux /etc/init.d/iptables stop chkconfig iptab

windows下hadoop的集群分布式部署

下面我们进行说明一下hadoop集群的搭建配置. 本文假设读者具有hadoop单机配置的基础,相同的部分不在重述. 以三台测试机为例搭建一个小集群,三台机器的ip分别为 192.168.200.1;192.168.200.2;192.168.200.3 cygwin,jdk的安装同windows下hadoop的单机伪分布式部署(1),这里略过. 1.配置 hosts 在三台机子的hosts文件中加入如下记录: 192.168.200.1 hadoop1  #master namenode 192

windows下hadoop的单机伪分布式部署(3)

下面介绍myeclipse与hadoop的集成. 我用的myeclipse版本是8.5. 1.安装hadoop开发插件 在hadoop1.2.1版本的安装包contrib/目录下,已经不再提供hadoop-eclipse-pligin-1.2.1.jar; 而是提供了源代码文件,需要我们自行重新编译成jar包文件:这里方便,大家可以从这里下载: hadoop-eclipse-plugin-1.2.1.jar.pdf 由于博客上传文件的类型限制,故添加了pdf后缀,下载之后重命名,去掉".pdf&

windows下hadoop的单机伪分布式部署(1)

hadoop的运行环境应该是在linux环境.如果想在windows环境下安装和运行hadoop,一般有两种方式:一种是VM的方式linux操作系统,这样可以实现全linux环境的hadoop运行:另一种方式安装cygwin模拟linux环境,该方法相对比较简单方便. 本文采取cywin的方式.下面将介绍下cygwin的安装与配置: (1)cygwin的安装 下载cygwin安装文件:http://cygwin.com; 我用的是64位版:操作系统为win7: 下载的setup文件实际上只是一个

一、Hadoop 2.x 分布式安装部署

一.Hadoop 2.x 分布式安装部署 1.分布式部署hadoop 2.x 1.1克隆虚拟机并完成相关配置 1.1.1克隆虚拟机 点击原有虚拟机–>管理–>克隆–>下一步–>创建完成克隆–>写入名称hadoop-senior02–>选择目录 1.1.2配置修改 1)启动克隆虚拟机(内存配置:01:2G;02:1.5G;03:1.5G) 2)修改主机名:改两处 3)修改网卡名称 编辑 /etc/udev/rules.d/70-persistent-net.rules -

windows下hadoop的单机伪分布式部署(2)

下面开始hadoop的安装与配置: (1)安装jdk 我安装的是JDK1.7.0_40,windows x64版的 下载完之后,直接点击安装, 我的安装路径为默认路径:C:\Program Files\Java\jdk1.7.0_40: 安装完毕后,设置环境变量: JAVA_HOME指向JDk安装目录 PATH指向JDK的bin目录 设置完成之后,在cmd中 输入java命令,如果出现一下画面,即为安装成功: (2)安装hadoop 下载hadoop,http://hadoop.apache.o

Hadoop 2.6.0分布式部署参考手册

Hadoop 2.6.0分布式部署参考手册 关于本参考手册的word文档,可以到如下地址下载:http://download.csdn.net/detail/u012875880/8285323 1.环境说明 1.1安装环境说明 本列中,操作系统为Centos 7.0,JDK版本为Oracle HotSpot 1.7,Hadoop版本为Apache Hadoop 2.6.0,操作用户为hadoop. 2.2 Hadoop集群环境说明: 集群各节点信息参考如下: 主机名 IP地址 角色 Resou

Hadoop完全分布式部署

一.规划 192.168.10.135 Master 192.168.10.132 Slave1 192.168.10.133 Slave2 注:均已关闭SELinux和Firewalld. 二.部署前准备 a. 添加Hadoop用户并设置密码 # useradd hadoop # passwd --stdin hadoop b. 添加sudo权限 # ls -la /etc/sudoers # chmod u+w /etc/sudoers       ##添加写权限 # vi /etc/sud

大数据之---hadoop伪分布式部署(HDFS)全网终极篇

1.软件环境RHEL6 jdk-8u45 hadoop-2.8.1.tar.gz ssh xx.xx.xx.xx ip地址 hadoop1 xx.xx.xx.xx ip地址 hadoop2 xx.xx.xx.xx ip地址 hadoop3 xx.xx.xx.xx ip地址 hadoop4 xx.xx.xx.xx ip地址 hadoop5 本次部署只涉及伪分布式部署只是要主机hadoop1 2.伪分布式部署伪分布式部署文档参考官方网站hadoopApache > Hadoop > Apache