centos6.5 32位搭建hadoop2.2.0 集群

来源:互联网 发布:福建广电网络人工电话 编辑:程序博客网 时间:2024/04/24 04:45

 

此次搭建过程运行平台:centos 6.5 32位,jdk1.7.0.79  hadoop-2.2.0 32位,

 

hadoop-2.2.0下载地址:apache官方下载链接,可以下载任何版本。

 

 hadoop在2.4以前基本不提供64位版本,不过在官网貌似也发现了2.2.0的64位版本,如果是64位系统,建议下载2.4

  或更高版本,目前最新版本是2.7.1,是一个stable版本,如果是32位系统,建议下stable的1.2.1版本,在安装过程

中,发现2.2.0不是特别稳定,会有一些问题,不太好用,而且在官网也看到这个版本有很多的bug。

 

Hadoop 2.x和1.x已经大不相同了,应该说对于存储计算都更加通用了。Hadoop 2.x实现了用来管理集群资源的YARN框架,可以面向任何需要使用基于HDFS存储来计算的需要,当然MapReduce现在已经作为外围的插件式的计算框架,你可以根据需要开发或者选择合适的计算框架。目前,貌似对MapReduce支持还是比较好的,毕竟MapReduce框架已经还算成熟。其他一些基于YARN框架的标准也在开发中。
YARN框架的核心是资源的管理和分配调度,它比Hadoop 1.x中的资源分配的粒度更细了,也更加灵活了,它的前景应该不错。由于极大地灵活性,所以在使用过程中由于这些配置的灵活性,可能使用的难度也加大了一些。另外,我个人觉得,YARN毕竟还在发展之中,也有很多不成熟的地方,各种问题频频出现,资料也相对较少,官方文档有时更新也不是很及时,如果我选择做海量数据处理,可能YARN还不能满足生产环境的需要。如果完全使用MapReduce来做计算,还是选择相对更加成熟的Hadoop 1.x版本用于生产环境。在笔者安装完成以后,烦恼啊,本地库不能加载,到现在还没解决这个问题,网上说,64位系统安装32位hadoop的时候,会有这个错误,为什么我的32位系统也有这个错误,醉了

 

先在虚拟机上安装好3台centos,把ip地址配置好,推荐配置成静态ip。

 

1. 修改每台centos的/etc/hosts文件,增加地址映射

 192.168.1.10  master

 192.168.1.11  slave1

 192.168.1.12  slave2

 

 每台机器配置对应的hostname,修改/etc/sysconfig/network文件,例如master节点内容配置为:

   

   NETWORKING=yes

  HOSTNAME=master

 

关闭防火墙:

vi /etc/sysconfig/selinux

#修改为 SELinux=disable

 sudo service iptables stop

 sudo chkconfig iptables off

sudo chkconfig iptables --list

reboot,重启生效

 

2.配置ssh免密码登录

在master节点执行    ssh-keygen -t rsa

 一直回车,生成密钥,将密钥添加到认证文件中,

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

chmod 600  ~/.ssh/authorized_keys

然后将authorized_keys  scp 到slave1节点

scp~/.ssh/authorized_keys root@slave1:~/.ssh/authorized_keys

然后再按照同样的方法在slave1生成密钥,

并追加到authorized_keys中,在slave1节点执行

ssh-keygen -t rsa

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

chmod 600  ~/.ssh/authorized_keys

然后将slave1 .ssh/下的authorized_keys  scp到slave2节点,

scp ~./ssh/authorized_keys root@slave2:~/.ssh/authorized_keys

在slave2节点执行

ssh-keygen -t rsa

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

chmod 600  ~/.ssh/authorized_keys

然后用rm -r 命令删除master和slave1节点~/.ssh/下的authorized_keys文件,将slave2的authorized_keys

scp到master和slave1节点。

至此,ssh免密码登录完成。

在master节点执行命令 ssh slave1,记得首次登录好像需要输入slave1的密码,第二次就不需要了,所以你可以登录两次测试一下,登陆成功后,退出命令是exit

 

3. 安装oracle的 jdk(所有节点)

 

   首先下载jdk-1.7-x.x.tar.gz,个人比较喜欢tar文件安装,当然你也可以用rpm方式安装。

 

   进入tar文件所在目录,例如/usr/local下,用tar命令     tar -zxvf  jdk-1.7-x.x.tar.gz解压

   然后配置一下环境变量:

   vi /etc/profile 

   在文件最下面添加

   export JAVA_HOME=/usr/local/jdk-1.7-x.x

   export PATH=$PATH:$JAVA_HOME/bin

  export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  然后运行经典的命令   java -version,测试是否成功.

 

4. 进入正文,安装hadoop-2.2.0

    先去官网下载:hadoop

 下载完成以后,上传到master节点的usr/hadoop下,其它两个节点不用传,需要事先在usr下建个hadoop目录。

   激动人心的时刻就要到了!!

   在master节点,进入/usr/hadoop/下 运行

   tar -zxvf hadoop-2.2.0.tar.gz

  解压。。。。。

  解压完成后,首先配置环境变量。在/etc/profile 或者~/.bashrc下配置均可,这里就以~/.bashrc为例,

  vi ~/.bashrc

  在文件的最下面添加:

export HADOOP_HOME=/usr/hadoop/hadoop-2.2.0
export HADOOP_MAPRED_HOME=/usr/hadoop/hadoop-2.2.0
export HADOOP_COMMON_HOME=/usr/hadoop/hadoop-2.2.0
export HADOOP_HDFS_HOME=/usr/hadoop/hadoop-2.2.0
export YARN_HOME=/usr/hadoop/hadoop-2.2.0
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.2.0/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native

:wq 保存退出。至此,环境变量配置完成,接下来就是配置hadoop了,在配置之前,需要现在hadoop安装目录即/usr/hadoop/hadoop-2.2.0下建2个文件夹 tmp 和dfs,然后再dfs下建2个文件夹,name和data,后面配置要用

 

5.首先配置slave节点

 

cd /usr/hadoop/hadoop-2.2.0/etc/hadoop

 

vim slaves,打开slaves文件,添加如下信息:

slave1

slave2

 

:wq保存退出,即可

 

6. 配置core-site.xml

<configuration> 

 

 <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.tmp.dir</name> 

 <value>file:/usr/hadoop/hadoop-2.2.0/tmp</value> 

<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>

 

7. 配置hdfs-site.xml

<configuration>

 

  <property>

  <name>dfs.namenode.secondary.http-address</name> 

 <value>master:9001</value> 

 </property> 

 

 <property> 

 <name>dfs.namenode.name.dir</name> 

 <value>file:/usr/hadoop/hadoop-2.2.0/dfs/name</value> 

</property> 

 

 <property>

  <name>dfs.datanode.data.dir</name> 

 <value>file:/usr/hadoop/hadoop-2.2.0/dfs/data</value>

  </property> 

 

<property>

  <name>dfs.replication</name>

  <value>2</value> 

</property> 

 

 <property> 

 <name>dfs.webhdfs.enabled</name>

  <value>true</value> 

 </property> 

 

 </configuration>

8.配置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>

 

9.配置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>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>

 

10. 复制master节点的hadoop-2.2.0文件夹到其它两个节点

在master节点执行:

   scp /usr/hadoop/hadoop-2.2.0 root@slave1:/usr/hadoop/

   scp /usr/hadoop/hadoop-2.2.0 root@slave2:/usr/hadoop/

 

 

  注意,需要先在slave1和slave2节点usr目录下分别建hadoop文件夹.

 

11.在master节点启动hadoop

 

  启动集群前,首先要格式化namenode,

 

 cd /usr/hadoop/hadoop-2.2.0

 

  ./bin/hdfs  namenode formate 

然后,下一步

cd /usr/hadoop/hadoop-2.2.0/sbin 目录下,分别执行

 

  start-dfs.sh

  start-yarn.sh

  

启动hdfs和yarn,然后用jps命令,查看进程信息。

 

在master节点用浏览器打开: master:50070,查看hdfs

master:8080查看resourcemanager信息

 

在slave1和slave2分别打开slave1:8042和slave2:8042查看本节点resourcemanager信息。

 

至此,配置完毕。

 

   

  

 

 

 

 

 

 

 

 

 

 

 

 

搜索
0 0
原创粉丝点击