机器准备

物理机器 总 共4台,想配置基于物理机的hadoop集群中包括 4 个 节点: 1 个 Master , 3 个 Salve , 节点之间局域网连接,可以相互 ping 通
Ip分布 为
192.168.1.201 hadoop1
192.168.1.202 hadoop2
192.168.1.203 hadoop3
192.168.1.204 hadoop4

操作系 统为 CentOS 5.6 64bit
Master机器主要配置NameNode和JobTracker的角色, 负责总 管分布式数据和分解任 务 的 执 行;3个Salve机器配置DataNode和TaskTracker的角色, 负责 分布式数据存 储 以及任 务 的 执 行。其 实应该还应该 有1个Master机器,用来作 为备 用,以防止Master服 务 器宕机, 还 有一个 备 用 马 上 启 用。后 续经验积 累一定 阶 段后 补 上一台 备 用Master机器。

创建账户

使用root登 陆 所有机器后,所有的机器都 创建 hadoop 用 户
useradd hadoop
passwd hadoop

此 时 在 /home/ 下就会生成一个 hadoop 目 录 ,目 录 路径 为 /home/hadoop

创建相关的目录

定 义 需要数据及目 录 的存放路径

定 义 代 码及工具 存放的路径
mkdir -p /home/hadoop/source
mkdir -p /home/hadoop/tools

定 义 数据 节 点存放的路径到跟目 录 下的hadoop文件夹, 这 里是数据 节 点存放目 录 需要有足够的空 间 存放
mkdir -p /hadoop/hdfs
mkdir -p /hadoop/tmp
mkdir -p /hadoop/log
设 置可写权限
chmod -R 777 /hadoop

定 义 java安装程序路径
mkdir -p /usr/java

安装

安装JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html
在以上 连接 下 载 linux 64 下的 jdk 的安装文件:  jdk-6u32-linux-x64.bin
1 ,将下 载好的 jdk-6u32-linux-x64.bin 通 过 SSH 上 传到 /usr/java 下
scp -r ./jdk-6u32-linux-x64.bin root@hadoop1:/usr/java
2 , 进入 JDK 安装目 录 cd /usr/java 并且 执行 chmod +x jdk-6u32-linux-x64.bin
3 , 执行 ./jdk-6u32-linux-x64.bin
4 ,配置 环境变量,执行 cd /etc 命令后 执行 vi profile ,在行末尾添加
export JAVA_HOME=/usr/java/jdk1.6.0_32
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
5 , 执行 chmod +x profile 将其 变成可执行文件
6 , 执行 source profile 使其配置立即生效
source /etc/profile
7 , 执行 java -version 查看是否安装成功

这个步骤所有机器都必须安装

[root@hadoop1 bin]# java -version
java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)

修改主机名

修改主机名,所有 节点均一样配置
1 , 连接到主节点 192.168.1.201 ,修改 network , 执行 vim /etc/sysconfig/network ,修改 HOSTNAME=hadoop1
2 ,修改 hosts 文件, 执行 cd /etc 命令后 执行 vi hosts ,在行末尾添加 :

192.168.1.201   hadoop1
192.168.1.202   hadoop2
192.168.1.203   hadoop3
192.168.1.204   hadoop4

3 , 执行 hostname hadoop1
4 , 执行 exit 后重新 连接可看到主机名以修改 OK

其他 节点 也修改主机名后添加 Host, 或者 host 文件可以在后面 执行 scp 覆盖操作

配置SSH无密码登陆

SSH 无密 码原理简介 :
首先在 hadoop1 上生成一个密 钥对,包括一个公钥和一个私钥,并将公钥复制到所有的 slave(hadoop2-hadoop4) 上。
然后当 master 通 过 SSH 连接 slave 时, slave 就会生成一个随机数并用 master 的公 钥对随机数进行加密,并发送给 master 。
最后 master 收到加密数之后再用私 钥解密,并将解密数回传给 slave , slave 确 认解密数无误之后就允许 master 不 输入密码进行连接了

2 ,具体步 骤(在root用户和hadoop用户登陆情况下执行)
1 、 执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对: cd .ssh 后 执行 ll
2 、把 id_rsa.pub 追加到授权的 key 里面去。 执行命令 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
3 、修改权限: 执行 chmod 600 ~/.ssh/authorized_keys
4 、确保 cat /etc/ssh/sshd_config 中存在如下内容

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
如需修改, 则在修改后执行重启 SSH 服 务命令使其生效 :service sshd restart

5 、将公 钥复制到所有的 slave 机器上 :scp ~/.ssh/id_rsa.pub 192.168.1.203 : ~/    然后 输入 yes ,最后 输入 slave 机器的密 码
6 、在 slave 机器上 创建 .ssh 文件夹 :mkdir ~/.ssh 然后 执行 chmod 700 ~/.ssh (若文件夹以存在 则不需要创建)
7 、追加到授权文件 authorized_keys 执行命令 :cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 然后 执行 chmod 600 ~/.ssh/authorized_keys
8 、重复第 4 步
9 、 验证命令 : 在 master 机器上 执行 ssh 192.168.1.203 发现主机名由 hadoop1 变成 hadoop3 即成功,最后 删除 id_rsa.pub 文件 :rm -r id_rsa.pub
按照以上步 骤分别配置 hadoop1,hadoop2,hadoop3,hadoop4 ,要求每个都可以无密 码登录

源码下载

HADOOP 版本
最新版本 hadoop-2.0.0-alpha  安装包 为 hadoop-2.0.0-alpha.tar.gz
下 载官网地址 :http://www.apache.org/dyn/closer.cgi/hadoop/common/
下 载到 /home/hadoop/source 目录下
wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.0.0-alpha/hadoop-2.0.0-alpha.tar.gz
解压目录
tar zxvf hadoop-2.0.0-alpha.tar.gz

创建软连接
cd /home/hadoop
ln -s /home/hadoop/source/hadoop-2.0.0-alpha/ ./hadoop

源码配置修改

/etc/profile

配置 环境变量: vim /etc/profile
添加
export HADOOP_DEV_HOME=/home/hadoop/hadoop
export PATH=$PATH:$HADOOP_DEV_HOME/bin
export PATH=$PATH:$HADOOP_DEV_HOME/sbin
export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

创建并配置hadoop-env.sh

vim /usr/hadoop/hadoop-2.0.0-alpha/etc/hadoop/hadoop-env.sh 
在末尾添加 export JAVA_HOME=/usr/java/jdk1.6.0_32

core-site.xml

在 configuration 节点 里面添加属性

<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.201:9000</value>
</property>

添加 httpfs 的 选项
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>192.168.1.201</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

slave配置

vim /home/hadoop/hadoop/etc/hadoop/slaves 
添加 slave 的 IP
192.168.1.202
192.168.1.203
192.168.1.204

配置hdfs-site.xml

vim /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml
添加 节点

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

<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/hdfs/name</value>
<final>true</final>
</property>

<property>
<name>dfs.federation.nameservice.id</name>
<value>ns1</value>
</property>

<property>
<name>dfs.namenode.backup.address.ns1</name>
<value>192.168.1.201:50100</value>
</property>

<property>
<name>dfs.namenode.backup.http-address.ns1</name>
<value>192.168.1.201:50105</value>
</property>

<property>
<name>dfs.federation.nameservices</name>
<value>ns1</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>192.168.1.201:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns2</name>
<value>192.168.1.201:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.ns1</name>
<value>192.168.1.201:23001</value>
</property>

<property>
<name>dfs.namenode.http-address.ns2</name>
<value>192.168.1.201:13001</value>
</property>

<property>
<name>dfs.dataname.data.dir</name>
<value>file:/hadoop/hdfs/data</value>
<final>true</final>
</property>

<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>192.168.1.201:23002</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address.ns2</name>
<value>192.168.1.201:23002</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>192.168.1.201:23003</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address.ns2</name>
<value>192.168.1.201:23003</value>
</property>

配置yarn-site.xml

添加 节点

<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.1.201:18040</value>
</property>

<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.201:18030</value>
</property>

<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.201:18088</value>
</property>

<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.1.201:18025</value>
</property>

<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.1.201:18141</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>

配置httpfs-site.xml

同步代码到其他机器

1.同步配置代 码
先在 slaves 的机器上也 创 建
mkdir -p /home/hadoop/source
部署hadoop代 码 , 创 建 软连接 ,然后只要同步修改 过 的etc/hadoop下的配置文件即可
2.同步 /etc/profile
3.同步 /etc/hosts 
scp -r /etc/profile root@hadoop2:/etc/profile
scp -r /etc/hosts root@hadoop2:/etc/hosts

其他机器以此操作

Hadoop启动

格式化集群

hadoop namenode -format -clusterid clustername

启动hdfs

执行
start-dfs.sh

开 启 hadoop dfs服 务

启动Yarn

开 启 yarn 资 源管理服 务
start-yarn.sh

启动httpfs

开 启 httpfs 服 务
httpfs.sh start
使得 对外 可以提高 http 的restful接口服 务

测试

安装结果验证

验证hdfs

在各台机器 执行 jps 看 进程 是否都已 经启动 了

[root@hadoop1 hadoop]# jps
7396 NameNode
24834 Bootstrap
7594 SecondaryNameNode
7681 ResourceManager
32261 Jps

[root@hadoop2 ~]# jps
8966 Jps
31822 DataNode
31935 NodeManager

进程启动 正常

验证 是否可以登 陆
hadoop fs -ls hdfs://192.168.1.201:9000/ 
hadoop fs -mkdir hdfs://192.168.1.201:9000/testfolder 
hadoop fs -copyFromLocal ./xxxx hdfs://192.168.1.201:9000/testfolder 
hadoop fs -ls hdfs://192.168.1.201:9000/ testfolder

看以上 执行 是否正常

验证map/reduce

在 master1 上, 创建输入目录 :hadoop fs -mkdir hdfs://192.168.1.201:9000/input
将 /usr/hadoop/hadoop-2.0.1-alpha/ 目 录下的所有 txt 文件复制到 hdfs 分布式文件系 统的目录里,执行以下命令
hadoop fs -put /usr/hadoop/hadoop-2.0.1-alpha/*.txt hdfs://192.168.1.201:9000/input

在 hadoop1 上, 执行 HADOOP 自 带的例子, wordcount 包,命令如下
cd /usr/hadoop/hadoop-2.0.1-alpha/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.0.1-alpha.jar wordcount hdfs://192.168.1.201:9000/input hdfs://192.168.1.201:9000/output

hadoop fs -put /usr/hadoop/hadoop-2.0.1-alpha/*.txt hdfs://192.168.1.201:9000/input

在 hadoop1 上, 查看结果命令如下 :
[root@master1 hadoop]# hadoop fs -ls hdfs://192.168.1.201:9000/output
Found 2 items
-rw-r--r--   2 root supergroup          0 2012-06-29 22:59 hdfs://192.168.1.201:9000/output/_SUCCESS
-rw-r--r--   2 root supergroup       8739 2012-06-29 22:59 hdfs://192.168.1.201:9000/output/part-r-00000

[root@hadoop1 hadoop]# hadoop fs -cat  hdfs://192.168.1.201:9000/output/part-r-00000 即可看到每个 单词的数量

linux上安装hadoop的更多相关文章

  1. 在Linux上安装Hadoop

    先决条件: Hadoop是用JAVA写的,所以首先要安装Java.在Ubuntu上安装JDK见:http://blog.csdn.net/microfhu/article/details/766739 ...

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

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

  3. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)

    1下载hadoop 2安装3个虚拟机并实现ssh免密码登录 2.1安装3个机器 2.2检查机器名称 2.3修改/etc/hosts文件 2.4 给3个机器生成秘钥文件 2.5 在hserver1上创建 ...

  4. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.3)

    https://blog.csdn.net/pucao_cug/article/details/71698903 1下载hadoop 2安装3个虚拟机并实现ssh免密码登录 2.1安装3个机器 2.2 ...

  5. Linux上安装Zookeeper以及一些注意事项

    最近打算出一个系列,介绍Dubbo的使用. 分布式应用现在已经越来越广泛,Spring Could也是一个不错的一站式解决方案,不过据我了解国内目前貌似使用阿里Dubbo的公司比较多,一方面这个框架也 ...

  6. 在linux上安装spark详细步骤

    在linux上安装spark ,前提要部署了hadoop,并且安装了scala. 提君博客原创 对应版本 >>提君博客原创  http://www.cnblogs.com/tijun/   ...

  7. 在Windows和Linux上安装paramiko模块以及easy_install的安装方法

    一.paramiko模块有什么用? paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.由于使用的是python这样的能够跨平台运行的语言 ...

  8. 在Linux上安装Oracle RAC 12 c(12.1) 虚拟机,一步一步向导

    Oracle RAC 12 c(12.1)在Linux上安装虚拟机,一步一步向导 今天我们将看到如何安装 12 c版本1 RAC(真正的应用程序集群)数据库2 Linux 64位的虚拟机 使用VMWa ...

  9. WINDOWS和Linux上安装php7 alpha 并安装 yaf

    WINDOWS和Linux上安装php7 alpha 并安装 yaf PHP技术  widuu  2个月前 (06-15)  126浏览  0评论 windows 1.windows上安装 php7 ...

随机推荐

  1. hdu 1075 二分搜索

    还是写一下,二分搜索好了 这道题开数组比较坑... 二分,需要注意边界问题,例如:左闭右闭,左闭右开,否则查找不到or死循环 先上AC代码 #include<iostream> #incl ...

  2. 小而美的js程序

    1.获取数字数组最小值的索引 function _getMinKey(arr) { var a = arr[0]; var b = 0; for (var k in arr) { if (arr[k] ...

  3. 创建PO

    FORM FRM_CREATE_PO USING P_POSNR CHANGING P_EBELN. DATA: LV_VENDOR TYPE LIFNR, LV_ITEM TYPE EBELP, L ...

  4. query attr prop区别

    大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked", ...

  5. 5月4日课堂内容:for循环的穷举、迭代

    一.for循环拥有两类: 1.穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 2.迭代: 从初始情况按照规律不断求解中间情况,最终推导出结果. 二.穷举练习 1.单位给发了一张 ...

  6. Swing——JFrame

    1.定义 相对于AWT(hevay weight component),Swing(hevay weight component)是轻量化的组件.Swing由纯Java Code 所写,解决了Java ...

  7. Octopus系列之接下来的任务

    更新默认国家[已实现] 更新每页显示条数的后台控制[已实现] 更新国家和区域的Ajax的关联[已实现] 更新详情页面的 属性选择 脚本提示[已实现 可以做到和兰亭一样的效果了] 增加优惠方案的设置和批 ...

  8. Can't connect to local MySQL server through socket 问题解决

    Fedora8启动mysql 报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/m ...

  9. 提升WordPress站点速度的八个建议

    WordPress是一个很棒的开源程序,几乎我认识的站长朋友当中,粗略估算有80%使用Wordpress.但很棒不等于完美,就在我所认识的这些朋友中,几乎所有人都会抱怨Wordpress太臃肿,运行效 ...

  10. 大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)

    package com.kkdiangame.UI.res; import java.io.ByteArrayOutputStream; import java.io.File; import jav ...