Hadoop2.2.0完全分布式集群平台安装与设置

Similar documents
在Fedora上部署Hadoop2.2.0伪分布式平台

Ubuntu和CentOS如何配置SSH使得无密码登陆

Simulator By SunLingxi 2003

tar -xzf hadoop tar.gz mv hadoop /app 在 Hadoop 目录下创建子目录 在 hadoop 目录下创建 tmp name 和 data 目录 cd /app/hadoop mkdir tmp mkdir

目录 1 编译 HADOOOP 搭建环境 安装并设置 maven 以 root 用户使用 yum 安装 svn 以 root 用户使用 yum 安装 autoconf automake libtool cmake..

¶C¶L§§¬_™¨ A.PDF

A9RBC8B.tmp

Hadoop 2.2.0安装和配置lzo

A9RF716.tmp

Apache CarbonData集群模式使用指南

Microsoft PowerPoint - 03.IPv6_Linux.ppt [相容模式]

CentOS

IP505SM_manual_cn.doc

05_資源分享-NFS及NIS.doc

Microsoft Word - PS2_linux_guide_cn.doc

使用Spark SQL读取Hive上的数据

Flink快速上手(QuickStart)

1 汉水大数据操作系统企业版 7.0 快速入门 本文宗旨 : 本文为帮助新手从零开始在虚拟机中安装部署伪分布式 hadoop 大数据集群, 便于学习大数据开发的相关技术 不适合在企业级环境中应用, 如需要部署分布式企业级 hadoop 集群请跟产品销售联系, 联系方式 : 版

1

通过Hive将数据写入到ElasticSearch

.. 3 N

自由軟體教學平台

自由軟體教學平台

六种使用Linux命令发送带附件的邮件

DOS下常用的网络命令.PDF

Hive:用Java代码通过JDBC连接Hiveserver

穨control.PDF

使用Cassandra和Spark 2.0实现Rest API服务

自由軟體教學平台

AL-MX200 Series

ebook140-8

使用MapReduce读取XML文件

对于 Hadoop 来说, 在 HDFS 看来, 节点分为 Namenode 和 Datanode, 其中 Namenode 只有一个,Datanode 可以是很多 ; 在 MapReduce 看来, 节点又分为 Jobtracker 和 Tasktracker, 其中 Jobtracker 只有一

ebook 185-6

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

Spark读取Hbase中的数据

AL-M200 Series

使用Hive读取ElasticSearch中的数据

ebook140-9

Linux Ubuntu Part Linux Ubuntu Linux UNIX...19 Linux...19 Linux Linux...21 Linux GNU FSF Open So urce.

ssh-keygen -t rsa

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

在Spring中使用Kafka:Producer篇

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

untitled

HOL-CHG-1695

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

ch08.PDF

MapReduce

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

(Microsoft Word - 00.RHCE_RHEL6_\260\362\302\246_\272\364\270\364\272\336\262z_\250\276\244\365\300\360\303\366\263\254_ doc)

ansoft_setup21.doc

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

untitled

深圳市亚可信息技术有限公司 NetWeaver 7.3 EhP1 ABAP on Redhat Enterprise Linux Server 62 for Oracle112 High Availability System Installation Created by

Microsoft Word - linux命令及建议.doc

epub 61-2

PowerPoint 演示文稿

Guide to Install SATA Hard Disks

本文由筱驀釹贡献

untitled

RunPC2_.doc

Hadoop元数据合并异常及解决方法

ebook70-22

R3105+ ADSL

Abstract arm linux tool-chain root NET-Start! 2

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

D E 答 案 :C 3. 工 作 站 A 配 置 的 IP 地 址 为 /28. 工 作 站 B 配 置 的 IP 地 址 为 /28. 两 个 工 作 站 之 间 有 直 通 线 连 接, 两 台

Guava学习之Resources

投影片 1

Windows 2000 Server for T100

電子商業伺服器管理(終極版).doc

ebook20-8

ebook70-5

Basic System Administration

lect03.ppt

mppp-ddr.pdf

Flink on YARN部署快速入门指南

スライド 1

韶关:神奇丹霞

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

目 录 一 ServerSpeeder 简 介... 1 二 ServerSpeeder 加 速 原 理... 2 三 软 件 命 名 格 式... 3 四 安 装 步 骤 自 动 安 装 采 用 手 动 安 装 方 式 进 行 安 装... 5 五 使 用 方 法.

WinMDI 28

Microsoft Word - template.doc

投影片 1

summerCampBookP1~16.pdf

程模型,MapReduce 把任务分为 map( 映射 ) 阶段和 reduce( 化简 ) 由于 MapReduce 工作原理的特性, Hadoop 能以并行的方式访问数据, 从而实现快速访问数据 Hbase--HBase 是一个建立在 HDFS 之上, 面向列的 NoSQL 数据库, 用于快速读

SL2511 SR Plus 操作手冊_單面.doc

ARP ICMP

スライド 1

PowerPoint Presentation

计算机网络概论

IP Access Lists IP Access Lists IP Access Lists

Eclipse C C++, or

三种方法实现Hadoop(MapReduce)全局排序(1)

f2.eps

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

網路安全:理論與實務 第二版

Linux服务器构建与运维管理

Transcription:

如果你想搭建伪分布式 Hadoop 平台, 请参见本博客 在 Fedora 上部署 Hadoop2.2.0 伪分布式平台 经过好多天的各种折腾, 终于在几台电脑里面配置好了 Hadoop2.2.0 分布式系统, 现在总结一下如何配置 前提条件 : (1) 首先在每台 Linux 电脑上面安装好 JDK6 或其以上版本, 并设置好 JAVA_HOME 等, 测试一下 java javac jps 等命令是否可以在终端使用, 如何配置 JDK 这里就不说了 ; (2) 在每台 Linux 上安装好 SSH, 如何安装请参加 Linux 平台下安装 SSH 后面会说如何配置 SSH 无密码登录 有了上面的前提条件之后, 我们接下来就可以进行安装 Hadoop 分布式平台了 步骤如下 : 1 先设定电脑的 IP 为静态地址 : 由于各个 Linux 发行版本静态 IP 的设置不一样, 这里将介绍 CentOS Ubunt Fedora 19 静态 IP 的设置步骤 : (1) CentOS 静态 IP 地址设置步骤如下 : [wyp@wyp hadoop]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0 在里面添加下面语句 : IPADDR=192.168.142.139 NETMASK=255.255.255.0 NETWORK=192.168.0.0 里面的 IPADDR 地址设置你想要的, 我这里是 192.168.142.139 设置好后, 需要让 IP 地址生效, 运行下面命令 : [wyp@wyp hadoop]$ sudo service network restart Shutting down interface eth0: Device state: 3 (disconnected) [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Active connection state: activated Active connection path: /org/freedesktop/networkmanager/activeconnection/7 1 / 13

[wyp@wyp hadoop]$ [ OK ] 然后运行 ifconfig 检验一下设置是否生效 : [wyp@wyp hadoop]$ ifconfig eth0 Link encap:ethernet HWaddr 00:0C:29:9F:FB:C0 inet addr:192.168.142.139 Bcast:192.168.142.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe9f:fbc0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:389330 errors:0 dropped:0 overruns:0 frame:0 TX packets:171679 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:473612019 (451.6 MiB) TX bytes:30110196 (28.7 MiB) lo Link encap:local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:80221 errors:0 dropped:0 overruns:0 frame:0 TX packets:80221 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1051174395 (1002.4 MiB) TX bytes:1051174395 (1002.4 MiB) [wyp@wyp hadoop]$ 可见 IP 地址已经设置为 192.168.142.139 了! (2) Ubuntu 静态 IP 地址设置步骤如下 : wyp@node1:~$ sudo vim /etc/network/interfaces 在里面添加 : auto eth0 iface eth0 inet static address 192.168.142.140 netmask 255.255.255.0 gateway 192.168.142.1 2 / 13

同样需要让 IP 地址生效 : wyp@node1:~$ sudo /etc/init.d/networking restart 同样也是输入 ifconfig 来检验 IP 设置是否生效, 这里就不说了 (3) Fedora 19 静态 IP 地址设置步骤如下 (Fedora 其他版本的静态 IP 设置和 19 版本不一样, 这里就不给出了 ): [wyp@wyp network-scripts]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33 在里面添加 : IPADDR0=192.168.142.138 NETMASK0=255.255.255.0 GATEWAY0=192.168.142.0 设置好后, 需要让 IP 地址生效, 运行下面命令 : [wyp@wyp network-scripts]$ sudo service network restart Restarting network (via systemctl): [ 确定 ] 同样也是输入 ifconfig 来检验 IP 设置是否生效, 这里就不说了 2 设置各个主机的 hostname 在步骤 1 中, 我分别配置了 CentOS Ubuntu 以及 Fedora 三台主机, 我打算用它们作为集群中的电脑, 其中 Fedora 主机作为 master, 其余的两台电脑作为 slave 这步将说说如何修改这三台电脑的 hostname: (1) Fedora19 设置 hostname 步骤如下 : [wyp@wyp network-scripts]$ sudo hostnamectl set-hostname master 查看设置是否生效, 运行下面命令 [wyp@wyp network-scripts]$ hostname master 3 / 13

(2) Ubuntu 设置 hostname 步骤如下 : wyp@node1:~$ sudo vim /etc/hostname 在里面添加自己需要取的 hostname, 我这里是取 node1 查看设置是否生效, 运行下面命令 wyp@node1:~$ hostname node1 (3) CentOS 设置 hostname 步骤如下 : [wyp@node network-scripts]$ sudo vim /etc/sysconfig/network 将里面的 HOSTNAME 修改为你想要的 hostname, 我这里是取 node HOSTNAME=node 查看设置是否生效, 运行下面命令 [wyp@node network-scripts]$ hostname node 3 在以上三台电脑的 /etc/hosts 添加以下配置 : [wyp@master ~]$ sudo vim /etc/hosts 在里面添加以下语句 192.168.142.138 master 192.168.142.139 node 192.168.142.140 node1 其实就是上面三台电脑的静态 IP 地址和其 hostname 的对应关系 检验是否修改生效, 可以用 ping 来查看 : 4 / 13

[wyp@master ~]$ ping node PING node (192.168.142.139) 56(84) bytes of data. 64 bytes from node (192.168.142.139): icmp_seq=1 ttl=64 time=0.541 ms 64 bytes from node (192.168.142.139): icmp_seq=2 ttl=64 time=0.220 ms ^C --- node ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.220/0.380/0.541/0.161 ms [wyp@master ~]$ 如果上面的命令可以 ping 通, 说明设置生效了 4 设置 SSH 无密码登陆 在本博客里面已经介绍了如何安装 SSH( Linux 平台下安装 SSH ), 和怎么设置 SSH 无密码登陆 ( Ubuntu 和 CentOS 如何配置 SSH 使得无密码登陆 ), 这里主要是想说一下需要注意的事项, 首先在 master 主机上面设置好了 SSH 无密码登陆之后, 然后将生成的 id_dsa.pub 文件拷贝到 node 和 node1 上面去, 可以运行下面的命令 : [wyp@localhost ~]$ cat /home/wyp/.ssh/id_dsa.pub \ ssh wyp@192.168.142.139 'cat - >> ~/.ssh/authorized_keys' 要确保 192.168.142.139 主机的 SSH 服务是运行的 wyp@192.168.142.139 的 wyp 是你需要登录 192.168.142.139 主机的用户名 同样, 你也可以用上面类似的命令将 id_dsa.pub 拷贝到 192.16 8.142.140 主机上面去 当然, 你也可以用 scp 命令将文件拷贝到相应的主机 : [wyp@master Documents]$ scp /home/wyp/.ssh/id_dsa.pub \ wyp@192.168.142.139:~/.ssh/authorized_keys 检验是否可以从 master 无密码登录 node 和 node1, 可以用下面的命令 : [wyp@master Documents]$ ssh node The authenticity of host 'node (192.168.142.139)' can't be established. RSA key fingerprint is ae:99:43:f0:cf:c6:a9:82:6c:93:a1:65:54:70:a6:97. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'node,192.168.142.139' (RSA) 5 / 13

to the list of known hosts. Last login: Wed Nov 6 14:54:55 2013 from master [wyp@node ~]$ 第一次运行上面的命令会出现上述信息 上面 [wyp@node ~] 已经暗示了我们成功从 master 无密码登录 node; 如果在登陆过程中出现了需要输入密码才能登录 node, 说明 SSH 无密码登录没成功, 一般都是文件权限的问题, 解决方法请参照 Ubuntu 和 CentOS 如何配置 SSH 使得无密码登陆 5 下载好 Hadoop, 这里用到的是 hadoop-2.2.0.tar.gz, 你可以用下面的命令去下载 : 下面的操作都是在 master 机器上进行的 [wyp@wyp /home]$ mkdir /home/wyp/downloads/hadoop [wyp@wyp /home]$ cd /home/wyp/downloads/hadoop [wyp@wyp hadoop]$ wget \ http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz 运行完上面的命令之后,hadoop-2.2.0.tar.gz 文件将会保存在 /home/wyp/downloads/hadoop 里面, 请解压它 [wyp@wyp hadoop]$ tar- zxvf hadoop-2.2.0.tar.gz 之后将会在 hadoop 文件夹下面生成 hadoop-2.2.0 文件夹, 运行下面的命令 [wyp@wyp hadoop]$ cd hadoop-2.2.0 [wyp@wyp hadoop-2.2.0]$ ls -l total 56 drwxr-xr-x. 2 wyp wyp 4096 Oct 7 14:38 bin drwxr-xr-x. 3 wyp wyp 4096 Oct 7 14:38 etc drwxr-xr-x. 2 wyp wyp 4096 Oct 7 14:38 include drwxr-xr-x. 3 wyp wyp 4096 Oct 7 14:38 lib drwxr-xr-x. 2 wyp wyp 4096 Oct 7 14:38 libexec -rw-r--r--. 1 wyp wyp 15164 Oct 7 14:46 LICENSE.txt drwxrwxr-x. 3 wyp wyp 4096 Oct 28 14:38 logs -rw-r--r--. 1 wyp wyp 101 Oct 7 14:46 NOTICE.txt -rw-r--r--. 1 wyp wyp 1366 Oct 7 14:46 README.txt drwxr-xr-x. 2 wyp wyp 4096 Oct 28 12:37 sbin 6 / 13

drwxr-xr-x. 4 wyp wyp 4096 Oct 7 14:38 share 显示出刚刚解压文件的文件夹 6 配置 Hadoop 的环境变量 [wyp@wyp hadoop]$ sudo vim /etc/profile 在 /etc/profile 文件的末尾加上以下配置 export HADOOP_DEV_HOME=/home/wyp/Downloads/hadoop/hadoop-2.2.0 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 然后按 :wq 保存 为了让刚刚的设置生效, 运行下面的命令 [wyp@wyp hadoop]$ sudo source /etc/profile 在终端输入 hadoop 命令查看 Hadoop 的环境变量是否生效 : [wyp@node ~]$ hadoop Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file checknative [-a -h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archivename NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the 7 / 13

Hadoop jar and the required libraries daemonlog get/set the log level for each daemon or CLASSNAME run the class named CLASSNAME Most commands print help when invoked w/o parameters. [wyp@node ~]$ 如果显示上面的信息, 说明环境变量生效了, 如果显示不了, 重启一下电脑再试试 7 修改 Hadoop 的配置文件 修改 Hadoop 的 hadoop-env.sh 配置文件, 设置 jdk 所在的路径 : [wyp@wyp hadoop]$ vim etc/hadoop/hadoop-env.sh 在里面找到 JAVA_HOME, 并将它的值设置为你电脑 jdk 所在的绝对路径 # The java implementation to use. export JAVA_HOME=/home/wyp/Downloads/jdk1.7.0_45 依次修改 core-site.xml yarn-site.xml mapred-site.xml 和 hdfs-site.xml 配置文件 ----------------core-site.xml <name>fs.default.name</name> <value>hdfs://master:8020</value> <final>true</final> <name>hadoop.tmp.dir</name> <value>/home/wyp/cloud/tmp/hadoop2.0</value> ------------------------- yarn-site.xml <name>yarn.resourcemanager.address</name> <value>master:8032</value> 8 / 13

<name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.shufflehandler</value> ------------------------ mapred-site.xml <name>mapreduce.framework.name</name> <value>yarn</value> <name>mapred.system.dir</name> <value>file:/hadoop/mapred/system/</value> <final>true</final> <name>mapred.local.dir</name> <value>file:/opt/cloud/hadoop_space/mapred/local</value> <final>true</final> 9 / 13

----------- hdfs-site.xml <name>dfs.namenode.name.dir</name> <value>file:/opt/cloud/hadoop_space/dfs/name</value> <final>true</final> <name>dfs.datanode.data.dir</name> <value>file:/opt/cloud/hadoop_space/dfs/data</value> <description>determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored. </description> <final>true</final> <name>dfs.replication</name> <value>1</value> <name>dfs.permissions</name> <value>false</value> 配置好 Hadoop 的相关东西之后, 请将 hadoop-2.2.0 整个文件夹分别拷贝到 node 和 node1 主机上面去, 设置都不需要改! 8 关掉 master node 和 node1 的防火墙 如果在 node 上启动 nodemanager, 遇到 java.net.noroutetohostexception 异常 java.net.noroutetohostexception: No Route to Host from localhost.localdomain/192.168.142.139 to 192.168.142.138:8031 failed on socket timeout exception: java.net.noroutetohostexception: No route to host; For more details see: http://wiki.apache.org/hadoop/noroutetohost 10 / 13

... 省略了好多东西 Caused by: java.net.noroutetohostexception: No route to host at sun.nio.ch.socketchannelimpl.checkconnect(native Method)... 省略了好多东西 at org.apache.hadoop.ipc.client.getconnection(client.java:1399) at org.apache.hadoop.ipc.client.call(client.java:1318)... 19 more 说明了没有关闭防火墙, 各个 linux 平台关闭防火墙的方法不一样, 这里也分享一下 : (1) 对于 ubuntu 关闭防火墙 可以运行 :ufw disable 如果你要防火墙可以运行 : apt-get remove iptables (2) 对于 fedora 关闭防火墙可以运行 : [wyp@wyp hadoop]$ sudo systemctl stop firewalld.service [wyp@wyp hadoop]$ sudo systemctl disable firewalld.service 9 查看 Hadoop 是否运行成功 首先在 master 上面格式化一下 HDFS, 如下命令 [wyp@wyp hadoop]$ cd $hadoop_home [wyp@wyp hadoop-2.2.0]$ hdfs namenode -format 13/10/28 16:47:33 INFO namenode.namenode: STARTUP_MSG: /************************************************************... 此处省略好多文字... ************************************************************/ 13/10/28 16:47:33 INFO namenode.namenode: registered UNIX signal handlers for [TERM, HUP, INT] 11 / 13

Formatting using clusterid: CID-9931f367-92d3-4693-a706-d83e120cacd6 13/10/28 16:47:34 INFO namenode.hostfilemanager: read includes: HostSet( ) 13/10/28 16:47:34 INFO namenode.hostfilemanager: read excludes: HostSet( )... 此处也省略好多文字... 13/10/28 16:47:38 INFO util.exitutil: Exiting with status 0 13/10/28 16:47:38 INFO namenode.namenode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at wyp/192.168.142.138 ************************************************************/ [wyp@wyp hadoop-2.2.0]$ 在 master 中启动 namenode 和 resourcemanager [wyp@wyp hadoop-2.2.0]$ sbin/hadoop-daemon.sh start namenode [wyp@wyp hadoop-2.2.0]$ sbin/yarn-daemon.sh start resourcemanager 在 node 和 node1 中启动 datanode 和 nodemanager [wyp@wyp hadoop-2.2.0]$ sbin/hadoop-daemon.sh start datanode [wyp@wyp hadoop-2.2.0]$ sbin/yarn-daemon.sh start nodemanager 检查 Hadoop 集群是否安装好了, 在 master 上面运行 jps, 如果有 NameNode ResourceManager 二个进程, 说明 master 安装好了 [wyp@master hadoop]$ jps 2016 NameNode 2602 ResourceManager 12 / 13

Powered by TCPDF (www.tcpdf.org) 在 node(node1) 上面运行 jps, 如果有 DataNode NodeManager 二个进程, 说明 node(node1 ) 安装好了 [wyp@node network-scripts]$ jps 7889 DataNode 7979 NodeManager 本博客文章除特别声明, 全部都是原创! 转载本文请加上 : 转载自过往记忆 (https://www.iteblog.com/) 本文链接 : () 13 / 13