Hadoop集群搭建

一、安装虚拟机java

虚拟机:VMware-workstation 11.0.0 node

操做系统:CentOS-6.5 64linux

二、安装Xmanagerweb

版本:Xmanager-v5.0.0,完成安装后,使用Xshell链接linux虚拟机,链接成功。shell

往虚拟机里拉文件比较方便,可是当虚拟机网络链接改成桥接模式后变不能使用这个了。apache

三、建立用户组和用户bash

建立用户组:groupadd hadoop网络

添加用户:useradd hadoop -g hadoopapp

四、安装jdkssh

a)安装包:jdk-7u21-linux-i586.tar.gz(不推荐使用rpm格式)

b)解压到/opt文件目录:tar -zxvf jdk-7u21-linux-i586.tar.gz -C /opt

c)更名为javamv jdk1.7.0_21 java

d)配置环境变量:vi /etc/profile,添加以下内容

  export JAVA_HOME=/opt/java
  exprot PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

e)使配置文件当即生效:source /etc/profile

f)设置全部者为hadoopchown -R hadoop:hadoop java/

五、安装Hadoop

a)安装包:hadoop-2.6.3.tar.gz

b)解压到/opt,更名为hadoop

c)设置环境变量:vi /etc/profile,添加以下内容

 

  export HADOOP_HOME=/opt/hadoop
 export PATH=$HADOOP_HOME/bin:$PATH

 

 

d)使配置文件当即生效:source /etc/profile

e)设置全部者为hadoopchown -R hadoop:hadoop hadoop/

f)在hadoop目录下新建三个文件目录:mkdir name/ ; mkdir data/ ; mkdir tmp/

六、修改地址解析文件/etc/hosts

命令:vi /etc/hosts,添加以下内容

192.168.253.131 master
192.168.253.132 data1
192.168.253.133 data2

 

 

七、修改hadoop配置文件

切换到hadoop用户,修改hadoop/etc/hadoop(老版本是hadoop/conf)下的配置文件:

a)hadoop-env.shyarn-env.sh

修改:

export JAVA_HOME=/opt/java

 

 

bcore-site.xml <configuration> </configuration>标签中添加以下内容:

 

<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/opt/hadoop/tmp</value>
 </property>
 <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
 </property>                         
 <property>     
    <name>io.file.buffer.size</name>
    <value>131072</value>
 </property>
 <property>
    <name>hadoop.proxyuser.u0.hosts</name>
    <value>*</value>
 </property>
 <property>
    <name>hadoop.proxyuser.u0.groups</name>     
    <value>*</value>
 </property>

 

 

 

chdfs-site.xml <configuration></configuration>标签中添加以下内容:

  

<property>
     <name>dfs.namenode.secondary.http-address</name>
     <value>master:9001</value>
 </property>
 <property>
     <name>dfs.namenode.name.dir</name>
     <value>file:/opt/hadoop/name</value>
 </property>
 <property>
     <name>dfs.datanode.data.dir</name>
     <value>file:/opt/hadoop/data</value>
 </property>
 <property>
     <name>dfs.replication</name>
     <value>3</value>
 </property>
 <property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
 </property>

 

 

 

   d)默认只有mared-site.xml.template复制并命名:cp mared-site.xml.template mared-site.xml

    在<configuration></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>

 

 

   eyarn-site.xml

    在<configuration></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>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:8035</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>

 

 

f配置slaves文件-->>增长slave节点 

vi slaves
data1
data2

 

 

八、克隆

完整克隆出两个虚拟机,改hostnamevi /etc/hostname,分别为masterdata1data2

九、配置虚拟机网络

虚拟机安装后默认的是NAT模式,自动获取ip,本机能上网,虚拟机就能上网。Haoop集群部署,最好是把三个虚拟机设为桥接模式,就须要注意把三个ip设在同一个网段。

因为克隆后的系统,虚拟机只是修改了虚拟机的名字MAC等,并在/etc/udev/rules.d/70-persistent-net.rules文件中增长了一行名为eth1的设备名,

1vi /etc/udev/rules.d/70-persistent-net.rules 文件 

删除掉 关于 eth0 的信息修改 第二条 eth1 的网卡的名字为 eth0

2vi /etc/udev/rules.d/70-persistent-net.rules/etc/sysconfig/network-scripts/ifcfg-eth0

中的MAC地址要与虚拟机网卡的MAC地址相对应。

3vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改UUIDIPADDR

到此:在masterping data1data2,能ping通,网络就配置好了

十、SSH无密码登陆

1)产生密钥

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

2)导入authorized_keys

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

3)试验看是否安装成功

#查看是否有sshd进程  ps -e | grep ssh

#尝试登陆本地  ssh localhost

4)密钥共享

#以下:hadoop是个人用户名

#进入master.ssh目录

scp authorized_keys hadoop@data1:~/.ssh/authorized_keys_master

#进入data1.ssh目录

cat authorized_keys_master  >>  authorized_keys

scp authorized_keys hadoop@data2:~/.ssh/authorized_keys_master

#进入data2.ssh目录

cat authorized_keys_master  >>  authorized_keys

#此时的authorized_keys已经包含了三个虚拟机的密钥,复制给masterdata1

scp authorized_keys hadoop@master:~/.ssh/authorized_keys

scp authorized_keys hadoop@data1:~/.ssh/authorized_keys

5)无密码登陆测试

ssh data1

ssh data2

...

十一、配置Hadoop环境变量

export JAVA_HOME=/opt/java
export HADOOP_HOME=/opt/hadoop
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:
$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

 

 

前面已经配置过jdk的环境变量,只需再加上hadoop的就行

十二、启动hadoop

hadoop namenode -format

start-all.sh

查看进程:jps

出现错误

-bash: /opt/java/bin/jps: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

yum install glibc.i686

下载失败的话,使用以下方法

 

配置yum本地 安装缺乏包(适合OEL)

mount /dev/cdrom1 /mnt

cd /etc/yum.repos.d 把里面CentOS开头的(默认的网络下载相关文件)备份到aa(文件夹)

vi /etc/yum.repos.d/rhel-source.repo

[rhel-source]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=file:///mnt/

enabled=1

gpgcheck=0

 

yum install glibc.i686

 

做者的话:该文档只是本身尝试搭建hadoop作的一个笔记,有不清楚或者不对的地方还望见谅,若是发现不对的地方,望指明,共同窗习,共同进步。