设为首页 加入收藏

TOP

hadoop入门和简易分布式搭建
2018-11-13 14:32:58 】 浏览:54
Tags:hadoop 入门 简易 分布式 搭建
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hu948162999/article/details/39059755

<1>. Hadoop简介

hadoop是apache的开源项目,山寨版的google

其中包含:

1. HDFS:分布式的文件系统 -- 山寨版GFS(google文件系统)

2. Map-reduce 思想:计算PR (PageRank):就是山寨版计算PageRank算法

3. Hbase :就是山寨版的BigTable


过程: 数据存储:HDFS
数据处理:MapReduse

<2>. Hadoop环境建立

Linux和Windows所需软件包括:

  1. JDK,必须安装,建议选择Sun公司发行的Java版本。
  2. 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位


8:配置主从节点SSH互信
这一步很关键:分布式安装是 追加式的

理解:用pub 公钥加载的 只有私钥才能解密
用私钥加密的 只有公钥才能解密

----整理了一份很详细的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无密码验证

每一个节点在hadoop体系中就是一个java进程,如果在一个节点上回车start all 启动所有集群命令。之所以能全部启动,就是因为能远程登录到其他节点启动

------简单来说 就是把自己的authorized_keys 追加到对方的authorized_keys上面,对方的都追加到自己的authorized_keys下面

步骤1 以root用户登录到host1服务器。
步骤2 执行如下命令,生成密钥。
$ ssh-keygen -t rsa

以上命令用于生成无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在/root/.ssh目录下。
步骤3 执行如下命令,将id_rsa.pub文件内容追加到authorized_keys文件中。
$ cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

步骤4 执行如下命令,将/root/.ssh/authorized_keys文件权限设置为600。
$ chmod 600 /root/.ssh/authorized_keys

步骤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@host1:/root/.ssh/authorized_keys_host1
$ 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@host1:/root/.ssh/authorized_keys_host1
$ 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

1、下载http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/ hadoop-0.20.2.tar.gz
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安装目录

3、修改hdfs的配置相关文件
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

masters 指定哪些为secondaryNameNode
host2

这个时候就可以启动hdfs了;
bin/start-dfs.sh

4、OK,现在可以基于hadoop的启动离线计算框架 Map-Reduce了。
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:


最后:做一个小案例,计算圆周率
./hadoop jar /bin/hadoop-0.20.2/hadoop-0.20.2-examples.jar pi 20 50


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hadoop端口一览表 下一篇hadoop 1.x 伪分布式部署及window..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目