<1>. Hadoop简介
其中包含:
1. HDFS:分布式的文件系统 -- 山寨版GFS(google文件系统)
2. Map-reduce 思想:计算PR (PageRank):就是山寨版计算PageRank算法
3. Hbase :就是山寨版的BigTable
过程: 数据存储:HDFS
数据处理:MapReduse
<2>. Hadoop环境建立
Linux和Windows所需软件包括:
- JDK,必须安装,建议选择Sun公司发行的Java版本。
- ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。
Windows下的附加软件需求 window安装hadoop的情况:
用cygwin 模拟nuix 环境 vi等命令最重要的是 win不支持ssh通讯,微软巨坑,吐槽。。
鄙人电脑4G发烧机。内存不足,推荐装两个虚拟机。给每个512内存。简单的分布式(非伪分布式)部署节点 :一个主机master(768M),一个副机slave(256M)。
虚拟机软件下载地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.0-1295980.exe
64位操作系统下载地址:http://mirror.nsc.liu.se/centos-store/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso
32位操作系统下载地址:http://mirror.nsc.liu.se/centos-store/6.4/isos/i386/CentOS-6.4-i386-bin-DVD1.iso
装好虚拟机之后
1:设置虚拟机网络
保证两台虚拟能连上互联网、能互相通讯、ping互相IP----不懂发邮件
2:禁用Selinux
3:关闭防火墙
–service iptablesstop
–chkconfigiptablesoff restart ----永久性关闭防火墙
4:配置时钟同步
不安装Hbase的童鞋就不用了。
5:修改主机hostname
–vi /etc/sysconfig/network
6:修改hosts映射
–vi /etc/hosts
7:安装JDK:注意虚拟机版本是64为还是32位
用私钥加密的 只有公钥才能解密
----整理了一份很详细的ssh无密码配置。
一: 安装和启动SSH
步骤1 以root用户登录到host1服务器。步骤2 执行如下命令,查看是否安装ssh。
$ rpm -qa | grep ssh
屏幕显示如下:
openssh-5.3p1-70.el6.x86_64
libssh2-1.2.2-7.el6_1.1.x86_64
openssh-server-5.3p1-70.el6.x86_64
openssh-clients-5.3p1-70.el6.x86_64
$ rpm -qa | grep rsync
屏幕显示如下:
rsync-3.0.6-5.el6_0.1.x86_64
步骤3 如果没有安装ssh和rsync,可以通过如下命令进行安装。(需要配置yum源)
$ yum install ssh
$ yum install rsync
步骤4 执行如下命令,查看ssh是否已经启动。
$ service sshd status
屏幕显示如下:
openssh-daemon is stopped
步骤5 执行如下命令,启动ssh。
$ service sshd start
屏幕显示如下:
Starting sshd: [ OK ]
步骤6 重复以上步骤,在192、193和195服务器上安装和启动SSH。
二: 配置SSH无密码验证
步骤1 以root用户登录到host1服务器。
步骤2 执行如下命令,生成密钥。
$ ssh-keygen -t rsa
以上命令用于生成无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在/root/.ssh目录下。
步骤3 执行如下命令,将id_rsa.pub文件内容追加到authorized_keys文件中。
步骤4 执行如下命令,将/root/.ssh/authorized_keys文件权限设置为600。
步骤5 执行如下命令,验证ssh无密码验证设置是否成功。
$ ssh root@host1
步骤6 重复以上步骤,在host2 ,host3服务器上生成密钥对并进行配置。
步骤7 执行如下命令,将host1服务器上/root/.ssh/authorized_keys文件拷贝到其他服务器
上的/root/.ssh/目录下。
$ scp /root/.ssh/authorized_keys root@host2:/root/.ssh/authorized_keys_host2
$ scp /root/.ssh/authorized_keys root@host3:/root/.ssh/authorized_keys_host3
为了不覆盖原来服务器上的authorized_keys文件,在拷贝的时候指定文件名,如:authorized_keys_主机名。
步骤8 重复步骤7,将host2服务器上/root/.ssh/authorized_keys文件拷贝到其他服务器
$ scp /root/.ssh/authorized_keys root@host3:/root/.ssh/authorized_keys_host3
步骤9 重复步骤7,将host3服务器上/root/.ssh/authorized_keys文件拷贝到其他服务器
$ scp /root/.ssh/authorized_keys root@host2:/root/.ssh/authorized_keys_host2
步骤10 分别在host1、host2、host3 服务器上执行如下命令,将密钥追加到authorized_keys。
$ cat /root/.ssh/authorized_keys_* >> /root/.ssh/authorized_keys
三:配置启动hadoop
2、放到bin目录下并解压
cd /bin/
tar -xzvf hadoop-0.20.2.tar.gz
cd /bin/hadoop-0.20.2/conf/
修改hadoop-env.sh: vi hadoop-env.sh
默认是被注释的,去掉注释,把JAVA_HOME 改成现有java安装目录
core-site.xml namenode配置
<configuration>
<property>
<!-- namenode 所在的节点-->
<name>fs.default.name</name>
<value>hdfs://host1:9000</value>
</property>
<property>
<!-- 设置hadoop的工作目录,默认在linux的tmp目录,linux的tmp目录,每次重启都清空,其它一些目录(hdfs)都是以这些目录为基本目录的-->
<name>hadoop.tmp.dir</name>
<value>/usr/java/hadoop-1.2</value>
</property>
</configuration>
hdfs-site.xml hdfs配置
<configuration>
<property>
<!-- hdfs的配置文件,配置几个副本数,hdfs的规则是一个节点只能有一个副本。-->
<!-- 伪分布式的情况下,只能为1,由于我配置的是两台,则那么只能配置2个副本 -->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
slaves 指定哪些为datanode
host2
host3
host2
bin/start-dfs.sh
mapred-site.xml 是map-reduce的核心配置文件
<configuration>
<property>
<!-- 指定jobtracker -->
<name>mapred.job.tracker</name>
<value>host1:9001</value>
</property>
</configuration>
将已经配置好的将已经配置好的hadoop-0.20.2,拷贝到其他虚拟机上
scp -r /bin/hadoop-0.20.2 root@hadoops:/bin/ Hadoop云计算 http://tianhailong.com/ 33
进入hadoop bin目录:cd /bin/hadoop-0.20.2/bin/
Hadoop集群搭建验证
格式化hadoop:hadoop namenode –format
启动hadoop:./start-all.sh
在master节点,输入jps,查看启动服务进程:
Slave节点,输入jps: