Python菜鸟的Hadoop实战——Hadoop集群搭建

Hadoop集群的部署

网上很多关于hadoop集群部署的文章, 我这里重新整理下,毕竟,别人的经历,让你按照着完整走下来,总有或多或少的问题。

小技巧分享:

有些初学者喜欢在自己机器上安装虚拟机来部署hadoop,毕竟,很多同学的学习环境都是比较受限的。

我这里则直接选择了阿里云的机器,买了三台ECS作为学习环境。毕竟,最低配一个月才40多块,学习还是要稍微投入点的。

一、 基础环境准备

Windows不熟练,小主只有选择Linux了。

官方提示如下,Linux所需软件包括:

  1. JavaTM1.5.x,必须安装,建议选择Sun公司发行的Java版本。
  2. ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。
  3. rsync也是需要安装的。

so, 首先选择买几台Linux服务器,然后去准备基础环境。

  1. 阿里云官网www.aliyun.com, 注册一个账号,很便捷,支持支付宝付款。这年头,如果没有支付宝,就真的奥特曼了。
  2. 购买一台ECS(当然,最便宜的一种),选择的是aliyun redhat 5.7 64.(哦,不是要买三台吗?不急,后面可以展示下云计算的威力,花点小钱,节约大把时间,何乐不为呢?)
  3. 检查这个机器的基础环境:
[[email protected] ~]$ uname -a
Linux iZ94cjwg86gZ 2.6.32-220.23.2.al.ali1.1.alios6.x86_64 #1 SMP Sun Jan 4 15:01:53 CST 2015 x86_64 x86_64 x86_64 GNU/Linux

[[email protected] ~]$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.41.1.10.4.5.alios6-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

[[email protected] ~]$ python --version
Python 2.6.6
[[email protected] ~]$
Hey, 兄弟,真不赖,什么Java/Python安装起来也不轻松。不用操心,太好了。

检查下, Java中的JPS工具是否有,后面会依赖这个工具。这个时候,你会纳闷,咦,怎么检查呢,Java目录在哪里呢?
这个时候,你会发现两个命令可以帮你,一个是find, 当然,另外一个就是rpm。这里就不介绍这些命令了。(如果有问题,大家搜索下就了解了)
rpm -qa|grep java
[[email protected] ~]$ rpm -qa|grep java
libvirt-java-0.4.7-1.3.alios6.noarch
java-1.6.0-openjdk-devel-1.6.0.0-1.41.1.10.4.5.alios6.x86_64
libvirt-java-devel-0.4.7-1.3.alios6.noarch
tzdata-java-2011l-4.4.alios6.noarch
java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.5.alios6.x86_64

[[email protected] ~]$ rpm -ql java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.5.alios6.x86_64|grep bin
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/keytool
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/orbd
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/pack200
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/policytool
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/rmid
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/rmiregistry
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/servertool
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/tnameserv
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/unpack200
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/libinstrument.so
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/zi/Asia/Harbin

哦, maybe  /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/就是java的主目录啦~~~~~~~~~

[[email protected] bin]$ pwd
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin
[[email protected] bin]$ ls jps
jps
[[email protected] bin]$

[[email protected] bin]$ rpm -qa|grep rsync
rsync-3.0.6-5.4.alios6.1.x86_64
[[email protected] bin]$

Fortunately,  Java环境, Python环境, rsync 都是ok的。
另外,就是集群管理,毫无疑问, PSSH需要有一个的,不然, 一台机器一台机器操作, 没有人愿意。

安装setuptools,即easy_install。
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e 
tar zxf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11 & python setup.py install 

然后, easy_install pssh, 就这样,基础工具就这样准备好啦。

二、系统环境准备

  1. 权限问题

我们尽量要规避Hadoop的root操作权限,因此,我们需要新建一个用户:hadoop。

useradd hadoop
password hadoop 
比较重要的就是:hadoop的sudo权限
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
hadoop   ALL=(ALL)  NOPASSWD: ALL
如果你想设置只有某些命令可以sudo的话,hadoop   ALL= (root) NOPASSWD: /sbin/mount, (root) NOPASSWD: /bin/umount, (root) NOPASSWD: /mnt/mount, (root) NOPASSWD: /bin/rm, (root) NOPASSWD: /usr/bin/make, (root) NOPASSWD: /bin/ln, (root) NOPASSWD: /bin/sh, (root) NOPASSWD: /bin/mv, (root) NOPASSWD: /bin/chown, (root) NOPASSWD: /bin/chgrp, (root) NOPASSWD: /bin/cp, (root) NOPASSWD: /bin/chmod

然后,hadoop账号的下日常工具也要能用才行,~/.bash_profile文件需要增加一些内容。
PATH=$PATH:$HOME/bin
PATH=$PATH:$HOME/bin:/sbin:/usr/sbin/:/usr/bin:/usr/local/bin:/usr/local/python27/bin/:/home/hadoop/hadoop-2.6.0/bin
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
export JAR_HOME=$JAVA_HOME/jre/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAR_HOME/lib
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

添加完毕后,sourece ~/.bash_profile即可。

三、准备单台Hadoop环境

Maybe, 你可以专门准备一个Hadoop目录,比如, /home/hadoop就是你的主目录。

su - hadoop

下载hadoop 2.6.0:
cd /home/hadoop/
wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable2/hadoop-2.6.0.tar.gz

tar -xzvf hadoop-2.6.0.tar.gz

修改配置文件:
cd /home/hadoop/hadoop-2.6.0/etc/hadoop

hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/

yarn-env.sh
[[email protected] hadoop]$ cat yarn-env.sh |grep -i java

# some Java parameters
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64

hdfs-site.xml
<configuration>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>iZ94cjwg86gZ:9001</value>
 </property>

  <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/home/hadoop/hadoop-2.6.0/dfs/name</value>
 </property>

 <property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/home/hadoop/hadoop-2.6.0/dfs/data</value>
  </property>

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

 <property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
 </property>

</configuration>

mapred-site.xml
[[email protected] hadoop]$ cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
</configuration>

     也许,你想知道这些配置项的意思。 ok, 我的回答是:管他呢!(其实,我也不知道,没有关系,慢慢来吧)

ok, 就这样,我们的第一台机器就准备好了。

四、准备Hadoop集群环境

剩下的,就是靠云计算的便捷了;

阿里云ECS可以通过打快照的方式,将我们刚才做的工作做成自定义镜像,无需在其他机器上重复做了。How amazing!!!

我们进入下一个环节,集群环境准备:

首先,我利用这个新制作的镜像,重新购买了两台机器。然后,分别进入后,发现,god, 确实啥都有了!!kickstart装机系统可以out了。科技改变生活。

ok, Anyway, Now, 我们拥有了三台ECS。一个月大概100块吧。这年头,买个苹果都要2块,当然,如果是个苹果手表呢,100块体验云计算多划算~~~~

这块明天接着弄把~~~~~今天洗洗休息了。

时间: 2024-07-28 15:44:36

Python菜鸟的Hadoop实战——Hadoop集群搭建的相关文章

Hadoop伪分布式集群搭建总结

Hadoop伪分布式集群搭建总结 一.所需软件VMware15!CentOS6.5JDK1.8Hadoop2.7.3二.安装注意:对文件进行编辑:输入a,表示对该文件进行编辑,最后保存该文件,操作为:点击键盘上的Esc按钮,然后输入英文的:字符,再输入wq,点击回车,完成文件的保存.1.关闭防火墙和禁用SELINUX(1).永久关闭防火墙,重启Linux系统(2) .禁用SELINUX:修改文件参数 重启Linux使其生效(3).检查防火墙是否运行,显示下图即为关闭2.配置hostname与IP

Hadoop(二)——分布式集群搭建

前两天和一个朋友在聊天的时候说,很多自学Hadoop的朋友80%都会夭折在集群环境的搭建上,原因吗无在乎:1,没有很好的电脑配置,不能像机房一样用多台电脑搭建起集群:2,对linux的不熟悉,各种小黑窗,linux命令--:3,环境搭建的反锁步骤,需要耐心+细心+认真等等吧.不过吗,我觉的,只要敢于坚持,敢于付出都是会成功的.下边讲述一下我的Hadoop集群搭建过程,由于条件有限,也是在虚拟机中进行的. 一,准备资料: 1,一台笔记本:I5的CPU,4G内存,500硬盘(内存有些小,运行的时候比

Hadoop全分布式集群搭建(详细)

一.准备物理集群.1.物理集群搭建方式.采用搭建3台虚拟机的方式来部署3个节点的物理集群.2.虚拟机准备.准备一个已近建好的虚拟机进行克隆.(建议为没进行过任何操作的)在要选择克隆的虚拟机上右击鼠标,管理,克隆.在弹出对话框中进行以下操作.(1).下一步.(2).选择虚拟机中的当前状态,下一步. (3).选择创建完整克隆,下一步.(4).输入虚拟机名称,下一步.(5).克隆完成.(6).按照上述步骤再创建一个虚拟机名称为slave02的.3.虚拟机网络配置.由于slave01和slave02虚拟

Hadoop完全分布式集群搭建

Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和调试. 伪分布式模式(Pseudo Distrubuted Mode),使用的是分布式文件系统,守护进程运行在本机机器,模拟一个小规模的集群,在一台主机模拟多主机,适合模拟集群学习. 完全分布式集群模式(Full Distributed Mode),Hadoop的守护进程运行在由多台主机搭建的集群上

hadoop伪分布式集群搭建与安装(ubuntu系统)

1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链接成功了: 3:修改主机的名称vi /etc/hostname和域名和主机映射对应的关系 vi /etc/hosts,改过之后即生效,自己可以ping一下,我这里ip对应master,比如ping master之后发现可以ping通即可: 4:修改过主机名称和主机名与ip对应的关系之后:开始上传jd

Hadoop伪分布式集群搭建-此文章在个人51.cto转载

一.HDFS伪分布式环境搭建 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统的区别也是很明显的.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的.HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架

hadoop 的HA集群搭建

1.关闭防火墙 1.1 查看防火墙状态 service iptables status 1.2 关闭防火墙 service iptables off 1.3 关闭防火墙开机启动 chkconfig iptables off 2.关闭selinux vi /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=disabled 3.ssh免密登陆 ssh-keygen -t rsa ssh-copy-id hostname 4.解压安装hadoop j

hadoop高可用集群搭建

首先创建4台虚拟机,规划如下 IP地址 主机名 安装软件 运行服务 192.168.16.134 hadoop1 jdk,hadoop  namenode,Journalnode,ZKFC,Resourcemanager 192.168.16.135 hadoop2 jdk,hadoop,zookeeper  namenode,datanode,Journalnode,ZKFC,Resourcemanager,zookeeper 192.168.16.136 hadoop3 jdk,hadoop

29.Hadoop之HDFS集群搭建笔记

0.修改IP,主机名,hosts文件 setup        修改网卡IP service  network  restart        重启网络服务使IP生效 vim /etc/sysconfig/network修改主机名 vim /etc/hosts/修改hosts文件 192.168.126.128 hadoop001 192.168.126.129 hadoop002 192.168.126.130 hadoop003 192.168.126.131 hadoop004 1.安装j

Debian下Hadoop 3.12 集群搭建

Debian系统配置 我这里在Vmware里面虚拟4个Debian系统,一个master,三个solver.hostname分别是master.solver1.solver2.solver3.对了,下面的JDK和hadoop安装配置操作都是使用hadoop用户权限来执行,并非root权限. 1. 静态网络的配置 编辑/etc/network/interfaces文件,注释自动获取IP,并添加下面内容 # The primary network interface #allow-hotplug e