摘要:hadoop,一个分布式系统基础架构,可以充分利用集群的威力进行高速运算和存储。本文主要介绍hadoop的安装与集群服务器的配置。

准备文件:

VMware11.0.0
      ▪ CentOS-6.5-x86_64-bin-DVD1.iso
      ▪ jdk-6u45-linux-x64-rpm.bin
      ▪ hadoop-1.2.1-1.x86_64.rpm

1.规划

   功能              HOSTNAME             IP                     说明

─────────────────────────────────────────────────────────────────────

Master             HDM01         192.168.44.131      Namenode兼datanode

Slave              HDS01         192.168.44.132      Datanode

Slave              HDS02         192.168.44.133      Datanode

2.系统环境

  在vmwave虚拟机安装三台CentOS系统,并分别安装SSH,rsync.(一般系统自带)

ssh 127.0.0.1   #验证ssh是否正确安装

3.系统配置

(1)创建hadoop运行用户(root用户)

   useradd hadoop
passwd hadoop #设置密码,SSH登录需要

ps:master和slave节点机都要创建相同的用户和用户组,即在所有集群服务器上都要建hadoop用户和用户组。

(2)关闭防火墙

chkconfig iptables off       #永久关闭防火墙
chkconfig --list iptables #查看防火墙状态

(3)配置机器名和网络

■ 配置HOSTNAME:

   vi /etc/sysconfig/network  #修改HOSTNAME(需重启生效)

ps:这里Master设置为HDM01,Slave分别设置为HDS02,HDS03

   

■ 配置网络IP

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

添加IPADDR=192.168.*.*,重启服务service network restart

    

■ 配置IP和HOSTNAME的映射关系

vi /etc/hosts  #添加ip hostname 映射关系

   

4.配置非root用户免验证登录ssh

重要:三个节点都有相同的用户名hadoop

用hadoop用户登录,在cd /home/hadoop下执行以下命令,第一二三步在三台机器上都执行,第四步在HDM01上执行。

(1)第一步

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

-t参数就是指定要生成的密钥类型,这里指定的是rsa
-P就是提供的旧密码,''表示没有
-f是密钥的生成后的保存文件位置
(2)第二步

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

把暴露出来的公共密钥按顺序导入authorized_keys中保存

(3)第三步

chmod  ~/.ssh
chmod ~/.ssh/authorized_keys

ssh机制很严谨,对文件的权限要求非常严格,这里需要把.ssh文件夹的权限设置为700(只有所有者有读和写以及执行的权限),authorized_keys的权限设置为600(只有所有者有读和写的权限)

(4)第四步

ssh HDS02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh HDS03 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp authorized_keys hadoop@HDS02:/home/hadoop/.ssh/
scp authorized_keys hadoop@HDS03:/home/hadoop/.ssh/

最终authorized_keys文件有各个集群服务器的信息

验证:第一次可能需要输入密码,最终每台机器都能联通:

ssh HDM01
ssh HDS02
ssh HDS03

5.安装jdk

这里需要将jdk-6u45-linux-x64-rpm.bin文件放到系统目录下,然后执行以下命令来安装jdk:

chmod +x  jdk-6u45-linux-x64-rpm.bin   #给所有用户添加可执行权限
./jdk-6u45-linux-x64-rpm.bin #生成rpm文件
chmod +x jdk-6u45-linux-amd64.rpm #给所有用户添加可执行权限
rpm -ivh jdk-6u45-linux-amd64.rpm #安装jdk

   

   

安装完成后需要配置环境变量:

vi /etc/profile

文件追加如下内容:

JAVA_HOME=/usr/java/jdk1.6.0_45
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME PATH CLASSPATH

使环境变量生效,需要执行如下:

source /etc/profile

查看java版本,出现版本信息说明安装成功。可以用如下命令查看相关信息:

rpm -qa|grep jdk 检查是否已安装JDK
java -version 查看jdk版本
which java 检查java安装目录
env|grep JAVA_HOME 检查是否配置JAVA_HOME

6.安装hadoop

hadoop包的安装类似jdk的安装:

su root
rpm -ivh /opt/cloud/hadoop-1.2.-.x86_64.rpm #安装hadoop

   

7.配置hadoop配置文件

每台机器服务器都要配置,且都是一样的,配置完一台其他的只需要拷贝,每台机器上的core-site.xml和mapred-site.xml都是配master服务器的hostname.

vi /etc/hadoop/core-site.xml

配置如下内容:

<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://HDM01:9000</value>
</property>

vi /etc/hadoop/hdfs-site.xml

配置如下内容:

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

vi /etc/hadoop/mapred-site.xml

配置如下内容:

<property>
<name>mapred.job.tracker</name>
<value>HDM01:9001</value>
<property>

注:core-site.xml文件中hadoop.tmp.dir是hadoop文件系统依赖的基础配置,默认位置是/tmp/{$user}下面,但是/tmp路径下的存储不安全的,因为linux一次重启,文件就可能被删除。修改该参数后需要格式化: hadoop namenode -format

   

8.配置hadoop集群配置文件

只需要namenode节点机,这里的HDM01既做namenode也兼datanode,一般情况namenode要求独立机器,namenode不兼datanode.

vi /etc/hadoop/masters

配置如下内容:
HDM01

vi /etc/hadoop/slaves

配置如下内容:
HDM01
HDS02
HDS03

9.配置非root用户权限

■ 将/usr/sbin/下的以下脚本文件的owner设置为hadoop,且赋给hadoop全权rwx:

chown hadoop:hadoop /usr/sbin/hadoop-create-user.sh
chown hadoop:hadoop /usr/sbin/hadoop-daemon.sh
chown hadoop:hadoop /usr/sbin/hadoop-daemons.sh
chown hadoop:hadoop /usr/sbin/hadoop-setup-applications.sh
chown hadoop:hadoop /usr/sbin/hadoop-setup-conf.sh
chown hadoop:hadoop /usr/sbin/hadoop-setup-hdfs.sh
chown hadoop:hadoop /usr/sbin/hadoop-setup-single-node.sh
chown hadoop:hadoop /usr/sbin/hadoop-validate-setup.sh
chown hadoop:hadoop /usr/sbin/rcc
chown hadoop:hadoop /usr/sbin/slaves.sh
chown hadoop:hadoop /usr/sbin/start-all.sh
chown hadoop:hadoop /usr/sbin/start-balancer.sh
chown hadoop:hadoop /usr/sbin/start-dfs.sh
chown hadoop:hadoop /usr/sbin/start-jobhistoryserver.sh
chown hadoop:hadoop /usr/sbin/start-mapred.sh
chown hadoop:hadoop /usr/sbin/stop-all.sh
chown hadoop:hadoop /usr/sbin/stop-balancer.sh
chown hadoop:hadoop /usr/sbin/stop-dfs.sh
chown hadoop:hadoop /usr/sbin/stop-jobhistoryserver.sh
chown hadoop:hadoop /usr/sbin/stop-mapred.sh
chown hadoop:hadoop /usr/sbin/update-hadoop-env.sh

chmod u+rwx /usr/sbin/hadoop-create-user.sh
chmod u+rwx /usr/sbin/hadoop-daemon.sh
chmod u+rwx /usr/sbin/hadoop-daemons.sh
chmod u+rwx /usr/sbin/hadoop-setup-applications.sh
chmod u+rwx /usr/sbin/hadoop-setup-conf.sh
chmod u+rwx /usr/sbin/hadoop-setup-hdfs.sh
chmod u+rwx /usr/sbin/hadoop-setup-single-node.sh
chmod u+rwx /usr/sbin/hadoop-validate-setup.sh
chmod u+rwx /usr/sbin/rcc
chmod u+rwx /usr/sbin/slaves.sh
chmod u+rwx /usr/sbin/start-all.sh
chmod u+rwx /usr/sbin/start-balancer.sh
chmod u+rwx /usr/sbin/start-dfs.sh
chmod u+rwx /usr/sbin/start-jobhistoryserver.sh
chmod u+rwx /usr/sbin/start-mapred.sh
chmod u+rwx /usr/sbin/stop-all.sh
chmod u+rwx /usr/sbin/stop-balancer.sh
chmod u+rwx /usr/sbin/stop-dfs.sh
chmod u+rwx /usr/sbin/stop-jobhistoryserver.sh
chmod u+rwx /usr/sbin/stop-mapred.sh
chmod u+rwx /usr/sbin/update-hadoop-env.sh

■将/usr/bin下的hadoop设为所有人可读可执行:

chmod 555 /usr/bin/hadoop

■将/var/log/hadoop及其下的owner设置为hadoop,且赋值给hadoop全权rwx
 将/var/run/hadoop及其下的owner设置为hadoop, 且赋值给hadoop全权rwx
 将/home/hadoop/及其下的owner设置为hadoop,且hadoop权限设为"rwxr-xr-x",设为更大权限不行,主要是因为/home/hadoop/tmp/dfs/data的权限需要为"rwxr-xr-x"

chown -R hadoop:hadoop /var/log/hadoop
chown -R hadoop:hadoop /var/run/hadoop
chown -R hadoop:hadoop /home/hadoop

chmod -R u+rwx /var/log/hadoop
chmod -R u+rwx /var/run/hadoop
chmod -R u+rwx /home/hadoop

10.配置hadoop的java环境

配置hadoop的java环境与env的java_home保持一致,文件/etc/hadoop/hadoop-env.sh

   

11.格式化HDFS

hadoop namenode -format #hadoop用户执行

chown -R hadoop:hadoop /home/hadoop/
chown -R 755 /home/hadoop/

12.启动hadoop

hadoop用户登录:

start-all.sh

   

13.验证hadoop

在Master上用java自带的小工具jps查看5个进程都在:

   

在Slave1上用jps查看进程:

  

14.网页查看集群

http:192.168.44.131:50030    查看Map/Reduce状态

   

http:192.168.44.131:50070 查看HDFS状态

   

安装hadoop集群服务器(hadoop1.2.1)的更多相关文章

  1. 安装Hadoop集群的最快的软件

    Quick Hadoop是一款安装Hadoop集群的桌面软件,只需要点两下鼠标,一分钟之内安装Hadoop到集群上,超快! 还在每台主机的Shell里一行一行地敲安装Hadoop的命令?别苦逼了! 用 ...

  2. CentOS7 搭建Ambari-Server,安装Hadoop集群(一)

    2017-07-05:修正几处拼写错误,之前没发现,抱歉! 第一次在cnblogs上发表文章,效果肯定不会好,希望各位多包涵. 编写这个文档的背景是月中的时候,部门老大希望我们能够抽时间学习一下Had ...

  3. 安装hadoop集群--hdfs

    安装hadoop集群--hdfs 大数据软件 链接:https://pan.baidu.com/s/1-3PYLHMgvvONawJq55hstQ 提取码:izqf 准备一台干净的虚拟机-centos ...

  4. docker安装hadoop集群

    docker安装hadoop集群?图啥呢?不图啥,就是图好玩.本篇博客主要是来教大家如何搭建一个docker的hadoop集群.不要问 为什么我要做这么无聊的事情,答案你也许知道,因为没有女票.... ...

  5. 通过ambari安装hadoop集群,ZT

    通过ambari安装hadoop集群,ZT http://www.cnblogs.com/cenyuhai/p/3295635.html http://www.cnblogs.com/cenyuhai ...

  6. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建

    Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...

  7. 在虚拟机上配置安装hadoop集群

    原本以为有大神已经总结的很清楚了,就不自己在写了, 但是在自己安装的过程中还是出现了一些问题, 所以打算以自己的方式重新总结一下.    参考https://blog.csdn.net/hliq539 ...

  8. 完全分布式安装hadoop集群

    0.安装jdk 1.配置hosts文件 2.建立hadoop运行账号 3.配置ssh免密码登录 4.在namenode上配置hadoop 4.1.修改hadoop-env.sh文件 4.2.修改yar ...

  9. CentOS 7安装Hadoop集群

    准备三台虚拟机,ip分别为192.168.220.10(master).192.168.220.11(slave1).192.168.220.12(slave2) 准备好jdk-6u45-linux- ...

随机推荐

  1. linux xorddos样本分析2

    逆向分析 之后我们通过ida对该样本进行更深入的分析样本的main函数中,一开始会调用函数dec_conf对样本中的大量加密的字符串进行解密,如下图所示.

  2. ThinkPHP的D方法和M方法的区别

    M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...

  3. 表单验证——jquery validate使用说明【另一个教程】

    [参考:http://www.tuicool.com/articles/y6fyme] jQuery Validate jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证 ...

  4. C# 词法分析器(五)转换 DFA

    系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 在上一篇文章中,已经得到了与正则表达式等价的 NFA ...

  5. C#_实用

    1.获取当前浏览器信息HttpContext.Current.Request.Browser string browser = HttpContext.Current.Request.Browser. ...

  6. sql server存储过程中SELECT 与 SET 对变量赋值的区别

    SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...

  7. Redis安装部署

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据 可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(dif ...

  8. postcss-px2rem

    1.安装 npm install gulp-postcss --save-dev 2.gulp var gulp = require('gulp'); var postcss = require('g ...

  9. Mac 系统环境变量配置

    Mac 系统环境变量配置 例如这里要配置一下 QUICK_V3_ROOT 的环境变量 1.打开终端 输入  vim ~/.bash_profile 2.一直回车 知道出现以下选项 按 E 编辑     ...

  10. 谢欣伦 - OpenDev原创教程 - 设备查找类CxDeviceFind & CxDeviceMapFind

    这是一个精练的设备查找类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxDeviceFind的使用如下: void CUsbSc ...