导航:首页 > 程序命令 > hadoop解压命令

hadoop解压命令

发布时间:2022-08-30 16:55:49

‘壹’ 如何在Centos6.5下部署hadoop2.2单机伪分布式

hadoop2.x的稳定版本,已经发布多时了,散仙一直都用的hadoop1.x的版本,最近有项目用到hadoop2.x,
所以就开始折腾hadoop2.x了,在hadoop2.x的版本里,目前最新版本已经到hadoop2.4了,但散仙在这里用的是
hadoop2.2.0的版本,为什么用它? 因为这是一个稳定的版本,所以相对来说,问题比较少。

散仙在上篇博客,已经讲了如何在编译hadoop2.2.0的64位的版本,如果有不清楚怎么编译,可以参考散仙上篇博文,在这里就不涉及了。

下面,散仙以表格的形式描述下伪分布式安装

系统环境如下:

序号
名称
描述

1
系统环境
Centos6.5

2
java环境
JDK1.7

3
Haoop版本
hadoop2.2.0

安装步骤如下:

序号
步骤

1
解压hadoop,并配置环境变量

2
使用which hadoop命令,测试是否成功

3
配置core-site.xml

4
配置hdfs-site.xml

5
配置yarn-site.xml(非必须,使用默认也可)

6
配置mapred-site.xml

7
配置mapred-env.sh里面的JAVA路径

8
如上的配置完成后,需要新建几个文件夹,来提供HDFS的格式化底层一个是hadoop的tmp文件夹,另外的是namenode和datanode的文件夹,来分别存储各自的信息

9
上面一切完成后,即可执行hadoop namenode -format 进行格式化

10
然后启动伪分布式集群,执行命令sbin/start-all.sh 最后使用JPS查看JAVA进程

11
配置本机的hosts文件,映射主机名信息

下面来详细说下,各个步骤的具体操作:

在这之前,最好配置好本机的SSH无密码登陆操作,避免hadoop进程之间通信时,需要验证。

下面是各个xml文件的配置

<!-- core-site.xml配置 -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.46.28:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
</property>

</configuration>

<!-- hdfs-site.xml配置 -->

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hadoop/nddir</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hadoop/dddir</value>
</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

</configuration>

<!-- yarn-site.xml 不用配置,使用默认属性即可 -->
<configuration>

</configuration>

<!-- mapred-site.xml的配置 -->
<configuration>
<property>
<name>maprece.cluster.temp.dir</name>
<value></value>
<description>No description</description>
<final>true</final>
</property>

<property>
<name>maprece.cluster.local.dir</name>
<value></value>
<description>No description</description>
<final>true</final>
</property>
</configuration>

mapred-env.sh里面的配置

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding right ownership.
# The ASF licenses this file to You 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 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.

export JAVA_HOME=/usr/local/jdk

export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000

export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

#export HADOOP_JOB_HISTORYSERVER_OPTS=
#export HADOOP_MAPRED_LOG_DIR="" # Where log files are stored. $HADOOP_MAPRED_HOME/logs by default.
#export HADOOP_JHS_LOGGER=INFO,RFA # Hadoop JobSummary logger.
#export HADOOP_MAPRED_PID_DIR= # The pid files are stored. /tmp by default.
#export HADOOP_MAPRED_IDENT_STRING= #A string representing this instance of hadoop. $USER by default
#export HADOOP_MAPRED_NICENESS= #The scheling priority for daemons. Defaults to 0.

然后,建对应的几个文件夹即可,路径都在hadoop2.2的根目录下即可,

然后执行格式化命令bin/hadoop namenode -format即可;

最后使用jps命令,查看进程,如果有以下几个进程名称,就代表部署伪分布式成功

4887 NodeManager
4796 ResourceManager
4661 SecondaryNameNode
4524 DataNode
4418 NameNode
6122 Jps

然后,访问界面端口,注意与之前的配置文件里一致,namenode的端口号仍为50070,原来1.x的50030端口,已经没有了,可以访问8088的yarn的端口,来查看,具体的截图如下:

OK,此时,我们已经成功的完成伪分布式的部署,下一步我们要做的,就是跑一个经典的MR程序Hellow World,来测试我们的集群了。

‘贰’ hadoop基本操作

启动HDFS

通过可视化界面查看HDFS的运行情况

使用方法:

如果是文件,则按照如下格式返回文件信息:
文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID
如果是目录,则返回它直接子文件的一个列表,就像在Unix中一样。目录返回列表的信息如下:
目录名 <dir> 修改日期 修改时间 权限 用户ID 组ID
示例:

返回值:
成功返回0,失败返回-1

使用方法:

将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
示例:

返回值:

成功返回0,失败返回-1。

使用方法:

从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。

返回值:

成功返回0,失败返回-1。

使用方法:

删除指定的文件。只删除非空目录和文件。请参考rmr命令了解递归删除。
示例:

返回值:

成功返回0,失败返回-1。

分布式文件系统的设计思路:

添加环境变量

保存退出后, 让.bash_profile立即生效

进入到解压后的hadoop目录 修改配置文件

集群

‘叁’ 如何在centos7上配置hadoop

1
解压hadoop,并配置环境变量
2
使用which
hadoop命令,测试是否成功
3
配置core-site.xml
4
配置hdfs-site.xml
5
配置yarn-site.xml(非必须,使用默认也可)
6
配置mapred-site.xml
7
配置mapred-env.sh里面的JAVA路径
8
如上的配置完成后,需要新建几个文件夹,来提供HDFS的格式化底层一个是hadoop的tmp文件夹,另外的是namenode和datanode的文件夹,来分别存储各自的信息
9
上面一切完成后,即可执行hadoop
namenode
-format
进行格式化
10
然后启动伪分布式集群,执行命令sbin/start-all.sh
最后使用JPS查看JAVA进程
11
配置本机的hosts文件,映射主机名信息
下面来详细说下,各个步骤的具体操作:
在这之前,最好配置好本机的SSH无密码登陆操作,避免hadoop进程之间通信时,需要验证。
下面是各个xml文件的配置
<!--
core-site.xml配置
-->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.46.28:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
</property>
</configuration>
<!--
hdfs-site.xml配置
-->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hadoop/nddir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hadoop/dddir</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>

‘肆’ 如何在ubuntu14.04配置分布式hadoop

我的环境是:Ubuntu14.04+Hadoop2.6.0+JDK1.8.0_25
官网2.6.0的安装教程:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html
为了方面配置,我在每台机器上都使用了hadoop用户来操作,这样做的确够方便。
结点信息:(分布式集群架构:master为主节点,其余为从节点)

机器名

IP

作用

master

122.205.135.254

NameNode and JobTracker

slave1

122.205.135.212

DataNode and TaskTracker

1.JDK的安装
首先Hadoop运行需要Java的支持,所以必须在集群中所有的节点安装JDK,
jdk1.8.0_25的详细安装见我的另一篇文章:http://www.linuxidc.com/Linux/2015-01/112030.htm 注意:最好将集群中的JDK都安装在同一目录下,便于配置。实践中,笔者一般将JDK安装在/usr/java这个目录,但并不是必须的。
2.配置hosts文件
修改集群中所有机器的/etc/hosts,打开该文件的命令如下:
sudo gedit /etc/hosts
添加:
122.205.135.254 master
122.205.135.212 slave1
如图所示:

注意:这里的master、slave1、slave2等等,指的是机器的机器名(使用命令hostname可以查看本机的机器名),切记,如果不是机器名的话会出问题的,并且集群中所有结点的机器名都应该不一样。
3.SSH无密码登录
Hadoop主从节点无密码登录的安装配置详细见我的另一篇章:点击打开链接
4.Hadoop的安装与配置
(1).下载解压Hadoop稳定版
我用的是hadoop-2.6.0,下载地址:http://mirrors.hust.e.cn/apache/hadoop/common/stable/
将下载后的Hadoop 拷贝到hadoop目录下,解压到master服务器的/hadoop目录下(配置好master结点后再将其复制到其它的服务器上,一般来说,群集中所有的hadoop都安装在同一目录下):
解压命令如下:
tar xzfv hadoop-2.6.0.tar.gz
(2).配置Hadoop
1.修改hadoop-2.6.0/etc/hadoop/hadoop-env.sh,添加JDK支持:
export JAVA_HOME=/usr/java/jdk1.8.0_25
如果不知道你的JDK目录,使用命令echo $JAVA_HOME查看。
2.修改hadoop-2.6.0/etc/hadoop/core-site.xml
注意:必须加在<configuration></configuration>节点内
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.6.0/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
3.修改hadoop-2.6.0/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop-2.6.0/dfs/name</value>
<description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
</property>

<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-2.6.0/dfs/data</value>
<description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
4.修改hadoop-2.6.0/etc/hadoop/mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
<description>Host or IP and port of JobTracker.</description>
</property>
5. 修改hadoop-2.6.0/etc/hadoop/masters
列出所有的master节点:
master
6.修改hadoop-2.6.0/etc/hadoop/slaves
这个是所有datanode的机器,例如:
slave1
slave2
slave3
slave4
7.将master结点上配置好的hadoop文件夹拷贝到所有的slave结点上
以slave1为例:命令如下:
scp -r ~/hadoop-2.6.0 hadoop@slave1:~/
安装完成后,我们要格式化HDFS然后启动集群所有节点。
5.启动Hadoop
1.格式化HDFS文件系统的namenode
(这里要进入hadoop-2.6.0目录来格式化好些):
cd hadoop-2.6.0 //进入hadoop-2.6.0目录
bin/hdfs namenode -format //格式化
2.启动Hadoop集群
启动hdrs命令如下:
sbin/start-dfs.sh //开启进程

‘伍’ 大数据:Hadoop入门

什么是大数据:
(1.)大数据是指在一定时间内无法用常规软件对其内容进行抓取,管理和处理的数据集合,简而言之就是数据量非常大,大到无法用常规工具进行处理,如关系型数据库,数据仓库等。这里“大”是一个什么量级呢?如在阿里巴巴每天处理数据达到20PB(即20971520GB).
2.大数据的特点:
(1.)体量巨大。按目前的发展趋势来看,大数据的体量已经到达PB级甚至EB级。
(2.)大数据的数据类型多样,以非结构化数据为主,如网络杂志,音频,视屏,图片,地理位置信息,交易数据,社交数据等。
(3.)价值密度低。有价值的数据仅占到总数据的一小部分。比如一段视屏中,仅有几秒的信息是有价值的。
(4.)产生和要求处理速度快。这是大数据区与传统数据挖掘最显着的特征。
3.除此之外还有其他处理系统可以处理大数据。
Hadoop (开源)
Spark(开源)
Storm(开源)
MongoDB(开源)
IBM PureDate(商用)
Oracle Exadata(商用)
SAP Hana(商用)
Teradata AsterData(商用)
EMC GreenPlum(商用)
HP Vertica(商用)
注:这里我们只介绍Hadoop。
二:Hadoop体系结构
Hadoop来源:
Hadoop源于Google在2003到2004年公布的关于GFS(Google File System),MapRece和BigTable的三篇论文,创始人Doug Cutting。Hadoop现在是Apache基金会顶级项目,“
Hadoop”一个虚构的名字。由Doug Cutting的孩子为其黄色玩具大象所命名。
Hadoop的核心:
(1.)HDFS和MapRece是Hadoop的两大核心。通过HDFS来实现对分布式储存的底层支持,达到高速并行读写与大容量的储存扩展。
(2.)通过MapRece实现对分布式任务进行处理程序支持,保证高速分区处理数据。
3.Hadoop子项目:
(1.)HDFS:分布式文件系统,整个Hadoop体系的基石。
(2.)MapRece/YARN:并行编程模型。YARN是第二代的MapRece框架,从Hadoop 0.23.01版本后,MapRece被重构,通常也称为MapRece V2,老MapRece也称为 MapRece V1。
(3.)Hive:建立在Hadoop上的数据仓库,提供类似SQL语音的查询方式,查询Hadoop中的数据,
(5.)HBase:全称Hadoop Database,Hadoop的分布式的,面向列的数据库,来源于Google的关于BigTable的论文,主要用于随机访问,实时读写的大数据。
(6.)ZooKeeper:是一个为分布式应用所设计的协调服务,主要为用户提供同步,配置管理,分组和命名等服务,减轻分布式应用程序所承担的协调任务。
还有其它特别多其它项目这里不做一一解释了。
三:安装Hadoop运行环境
用户创建:
(1.)创建Hadoop用户组,输入命令:
groupadd hadoop
(2.)创建hser用户,输入命令:
useradd –p hadoop hser
(3.)设置hser的密码,输入命令:
passwd hser
按提示输入两次密码
(4.)为hser用户添加权限,输入命令:
#修改权限
chmod 777 /etc/sudoers
#编辑sudoers
Gedit /etc/sudoers
#还原默认权限
chmod 440 /etc/sudoers
先修改sudoers 文件权限,并在文本编辑窗口中查找到行“root ALL=(ALL)”,紧跟后面更新加行“hser ALL=(ALL) ALL”,将hser添加到sudoers。添加完成后切记还原默认权限,否则系统将不允许使用sudo命令。
(5.)设置好后重启虚拟机,输入命令:
Sudo reboot
重启后切换到hser用户登录
安装JDK
(1.)下载jdk-7u67-linux-x64.rpm,并进入下载目录。
(2.)运行安装命令:
Sudo rpm –ivh jdk-7u67-linux-x64.rpm
完成后查看安装路径,输入命令:
Rpm –qa jdk –l
记住该路径,
(3.)配置环境变量,输入命令:
Sudo gedit /etc/profile
打开profile文件在文件最下面加入如下内容
export JAVA_HOME=/usr/java/jdk.7.0.67
export CLASSPATH=$ JAVA_HOME/lib:$ CLASSPATH
export PATH=$ JAVA_HOME/bin:$PATH
保存后关闭文件,然后输入命令使环境变量生效:
Source /etc/profile
(4.)验证JDK,输入命令:
Java –version
若出现正确的版本则安装成功。
配置本机SSH免密码登录:
(1.)使用ssh-keygen 生成私钥与公钥文件,输入命令:
ssh-keygen –t rsa
(2.)私钥留在本机,公钥发给其它主机(现在是localhost)。输入命令:
ssh--id localhost
(3.)使用公钥来登录输入命令:
ssh localhost
配置其它主机SSH免密登录
(1.)克隆两次。在VMware左侧栏中选中虚拟机右击,在弹出的快捷键菜单中选中管理---克隆命令。在克隆类型时选中“创建完整克隆”,单击“下一步”,按钮直到完成。
(2.)分别启动并进入三台虚拟机,使用ifconfig查询个主机IP地址。
(3.)修改每台主机的hostname及hosts文件。
步骤1:修改hostname,分别在各主机中输入命令。
Sudo gedit /etc/sysconfig/network
步骤2:修改hosts文件:
sudo gedit /etc/hosts
步骤3:修改三台虚拟机的IP
第一台对应node1虚拟机的IP:192.168.1.130
第二台对应node2虚拟机的IP:192.168.1.131
第三台对应node3虚拟机的IP:192.168.1.132
(4.)由于已经在node1上生成过密钥对,所有现在只要在node1上输入命令:
ssh--id node2
ssh--id node3
这样就可以将node1的公钥发布到node2,node3。
(5.)测试SSH,在node1上输入命令:
ssh node2
#退出登录
exit
ssh node3
exit
四:Hadoop完全分布式安装
1. Hadoop有三种运行方式:
(1.)单机模式:无须配置,Hadoop被视为一个非分布式模式运行的独立Java进程
(2.)伪分布式:只有一个节点的集群,这个节点即是Master(主节点,主服务器)也是Slave(从节点,从服务器),可在此单节点上以不同的java进程模拟分布式中的各类节点
(3.)完全分布式:对于Hadoop,不同的系统会有不同的节点划分方式。
2.安装Hadoop
(1.)获取Hadoop压缩包hadoop-2.6.0.tar.gz,下载后可以使用VMWare Tools通过共享文件夹,或者使用Xftp工具传到node1。进入node1 将压缩包解压到/home/hser目录下,输入命令: #进入HOME目录即:“/home/hser”
cd ~
tar –zxvf hadoop-2.6.0.tar.gz
(2.)重命名hadoop输入命令:
mv hadoop-2.6.0 hadoop
(3.)配置Hadoop环境变量,输入命令:
Sudo gedit /etc/profile
将以下脚本加到profile内:
#hadoop
export HADOOP_HOME=/home/hser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
保存关闭,最后输入命令使配置生效
source /etc/profile
注:node2,和node3都要按照以上配置进行配置。
3.配置Hadoop
(1.)hadoop-env.sh文件用于指定JDK路径。输入命令:
[hser@node1 ~]$ cd ~/hadoop/etc/hadoop
[hser@node1 hadoop]$ gedit hadoop-env.sh
然后增加如下内容指定jDK路径。
export JAVA_HOME=/usr/java/jdk1.7.0_67
(2.)打开指定JDK路径,输入命令:
export JAVA_HOME=/usr/java/jdk1.7.0_67
(4.)core-site.xml:该文件是Hadoop全局配置,打开并在元素中增加配置属性如下:

fs.defaultFs hdfs://node1:9000 hadoop.tmp.dir file:/home/hser/hadoop/tmp 这里给出了两个常用的配置属性,fs.defaultFS表示客户端连接HDFS时,默认路径前缀,9000是HDFS工作的端口。Hadoop.tmp.dir如不指定会保存到系统的默认临时文件目录/tmp中。 (5.)hdfs-site.xml:该文件是hdfs的配置。打开并在元素中增加配置属性。 (6.)mapred-site.xml:该文件是MapRece的配置,可从模板文件mapred-site.xml.template中复制打开并在元素中增加配置。 (7.)yarn-site.xml:如果在mapred-site.xml配置了使用YARN框架,那么YARN框架就使用此文件中的配置,打开并在元素中增加配置属性。 (8.)复制这七个命令到node2,node3。输入命令如下: scp –r /home/hser/hadoop/etc/hadoop/ hser@node2:/home/hser/hadoop/etc/ scp –r /home/hser/hadoop/etc/hadoop/ hser@node3:/home/hser/hadoop/etc/ 4.验证: 下面验证hadoop是否正确 (1.)在Master主机(node1)上格式化NameNode。输入命令: [hser@node1 ~]$ cd ~/hadoop [hser@node1 hadoop]$ bin/hdfs namenode –format (2)关闭node1,node2 ,node3,系统防火墙并重启虚拟机。输入命令: service iptables stop sudo chkconfig iptables off reboot (3.)输入以下启动HDFS: [hser@node1 ~]$ cd ~/hadoop (4.)启动所有 [hser@node1 hadoop]$ sbin/start-all.sh (5.)查看集群状态: [hser@node1 hadoop]$ bin/hdfs dfsadmin –report (6.)在浏览器中查看hdfs运行状态,网址:http://node1:50070 (7.)停止Hadoop。输入命令: [hser@node1 hadoop]$ sbin/stop-all.sh 五:Hadoop相关的shell操作 (1.)在操作系统中/home/hser/file目录下创建file1.txt,file2.txt可使用图形界面创建。 file1.txt输入内容: Hello World hi HADOOP file2.txt输入内容 Hello World hi CHIAN (2.)启动hdfs后创建目录/input2 [hser@node1 hadoop]$ bin/hadoop fs –mkdir /input2 (3.)将file1.txt.file2.txt保存到hdfs中: [hser@node1 hadoop]$ bin/hadoop fs –put -/file/file*.txt /input2/ (4.)[hser@node1 hadoop]$ bin/hadoop fs –ls /input2

‘陆’ 搭建hadoop集群,常用配置文件是什么,以及配置哪些属性

一. 简介

参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功。下面就把详细的安装步骤叙述一下。我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择2.7.1版本。(前边主要介绍单机版的配置,集群版是在单机版的基础上,主要是配置文件有所不同,后边会有详细说明)

二. 准备工作

2.1 创建用户

创建用户,并为其添加root权限,经过亲自验证下面这种方法比较好。

1 sudo adser hadoop2 sudo vim /etc/sudoers3 # 修改内容如下:4 root ALL = (ALL)ALL5 hadoop ALL = (ALL)ALL

给hadoop用户创建目录,并添加到sudo用户组中,命令如下:

1 sudo chown hadoop /home/hadoop2 # 添加到sudo用户组3 sudo adser hadoop sudo

最后注销当前用户,使用新创建的hadoop用户登陆。

2.2安装ssh服务

ubuntu中默认是没有装ssh server的(只有ssh client),所以先运行以下命令安装openssh-server。安装过程轻松加愉快~

sudo apt-get install ssh openssh-server

2.3 配置ssh无密码登陆

直接上代码:执行完下边的代码就可以直接登陆了(可以运行ssh localhost进行验证)

1 cd ~/.ssh# 如果找不到这个文件夹,先执行一下 "ssh localhost"2 ssh-keygen -t rsa3 cp id_rsa.pub authorized_keys

注意:

这里实现的是无密登陆自己,只适用与hadoop单机环境。如果配置Hadoop集群设置Master与Slave的SSH无密登陆可

三. 安装过程

3.1 下载hadoop安装包

有两种下载方式:

1. 直接去官网下载:

2. 使用wget命令下载:

3.2 配置hadoop

1. 解压下载的hadoop安装包,并修改配置文件。我的解压目录是(/home/hadoop/hadoop-2.7.1),即进入/home/hadoop/文件夹下执行下面的解压缩命令。

tar -zxvf hadoop-2.7.1.tar.gz

2. 修改配置文件:(hadoop2.7.1/etc/hadoop/)目录下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml。

(1). core-site.xml 配置:其中的hadoop.tmp.dir的路径可以根据自己的习惯进行设置。

至此,wordcount demo 运行结束。

六. 总结

配置过程遇到了很多问题,最后都一一解决,收获很多,特此把这次配置的经验分享出来,方便想要配置hadoop环境的各位朋友~

(Hadoop集群安装配置过程基本和单机版是一样的,主要是在配置文件方面有所区别,以及ssh无密登陆要求master和slave能够互相无密登陆。

‘柒’ 怎么在Centos6.5下部署hadoop2.2单机伪分布式

hadoop2.x的稳定版本,已经发布多时了,散仙一直都用的hadoop1.x的版本,最近有项目用到hadoop2.x,所以就开始折腾hadoop2.x了,在hadoop2.x的版本里,目前最新版本已经到hadoop2.4了,但散仙在这里用的是hadoop2.2.0的版本,为什么用它? 因为这是一个稳定的版本,所以相对来说,问题比较少。
散仙在上篇博客,已经讲了如何在编译hadoop2.2.0的64位的版本,如果有不清楚怎么编译,可以参考散仙上篇博文,在这里就不涉及了。

下面,散仙以表格的形式描述下伪分布式安装
系统环境如下:

序号 名称 描述

1 系统环境 Centos6.5

2 JAVA环境 JDK1.7

3 Haoop版本 hadoop2.2.0



安装步骤如下:

序号 步骤

1 解压hadoop,并配置环境变量

2 使用which hadoop命令,测试是否成功

3 配置core-site.xml

4 配置hdfs-site.xml

5 配置yarn-site.xml(非必须,使用默认也可)

6 配置mapred-site.xml

7 配置mapred-env.sh里面的JAVA路径

8 如上的配置完成后,需要新建几个文件夹,来提供HDFS的格式化底层一个是hadoop的tmp文件夹,另外的是namenode和datanode的文件夹,来分别存储各自的信息

9 上面一切完成后,即可执行hadoop namenode -format 进行格式化

10 然后启动伪分布式集群,执行命令sbin/start-all.sh 最后使用JPS查看JAVA进程

11 配置本机的hosts文件,映射主机名信息



下面来详细说下,各个步骤的具体操作:
在这之前,最好配置好本机的SSH无密码登陆操作,避免hadoop进程之间通信时,需要验证。

下面是各个xml文件的配置

Xml代码




  • OK,此时,我们已经成功的完成伪分布式的部署,下一步我们要做的,就是跑一个经典的MR程序Hellow World,来测试我们的集群了。
  • ‘捌’ winserver 2012 怎么配置hadoop

    1、安装JDK1.6或更高版本

    官网下载JDK,安装时注意,最好不要安装到带有空格的路径名下,例如:Programe Files,否则在配置Hadoop的配置文件时会找不到JDK(按相关说法,配置文件中的路径加引号即可解决,但我没测试成功)。

    2、安装Cygwin

    Cygwin是Windows平台下模拟Unix环境的工具,需要在安装Cygwin的基础上安装Hadoop

    根据操作系统的需要下载32位或64的安装文件。

    1)、双击下载好的安装文件,点击下一步,选择install from internet


    2)、选择安装路径

    3)、选择local Package Directory

    4)、选择您的Internet连接方式

    5)、选择合适的安装源,点击下一步

    6)、在Select Packages界面里,Category展开net,选择如下openssh和openssl两项

    如果要在Eclipe上编译Hadoop,需要安装Category为Base下的sed

    如果想在Cygwin上直接修改hadoop的配置文件,可以安装Editors下的vim

    7)、点击“下一步”,等待安装完成。

    3、配置环境变量

    在“我的电脑”上点击右键,选择菜单中的“属性",点击属性对话框上的高级页签,点击”环境变量"按钮,在系统变量列表里双击“Path”变量,在变量值后输入安装的Cygwin的bin目录,例如:D:hadoopcygwin64in

    4、安装sshd服务

    双击桌面上的Cygwin图标,启动Cygwin,执行ssh-host-config -y命令

    执行后,会提示输入密码,否则会退出该配置,此时输入密码和确认密码,回车。最后出现Host configuration finished.Have fun!表示安装成功。

    输入net start sshd,启动服务。或者在系统的服务里找到并启动Cygwin sshd服务。

    可能会遇到无法安装和启动sshd服务的问题,可参考此连接http://www.cnblogs.com/kinglau/p/3261886.html。

    另外如果是Win8操作系统,启动Cygwin时,需要以管理员身份运行(右键图标,选择以管理员身份运行),否则会因为权限问题,提示“发生系统错误5”。

    5、配置SSH免密码登录

    执行ssh-keygen命令生成密钥文件

    如下图所示,输入:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa,注意-t -P -f参数区分大小写。

    ssh-keygen是生成密钥命令

    -t 表示指定生成的密钥类型(dsa,rsa)

    -P表示提供的密语

    -f指定生成的密钥文件。

    注意:~代表当前用户的文件夹,/home/用户名

    执行此命令后,在你的Cygwinhome用户名 路径下面会生成.ssh文件夹,可以通过命令ls -a /home/用户名 查看,ssh -version命令查看版本。

    执行完ssh-keygen命令后,再执行下面命令,就可以生成authorized_keys文件了。

    cd~/.ssh/
    cpid_dsa.pubauthorized_keys

    如下图所示:

    然后执行exit命令,退出Cygwin窗口

    6、再次在桌面上双击Cygwin图标,打开Cygwin窗口,执行ssh localhost命令,第一次执行该命令会有提示,输入yes后,回车即可。如下图所示

    7、安装Hadoop

    把hadoop压缩包解压到/home/用户名 目录下,文件夹名称更改为hadoop,可以不修改,但后边在执行命令时稍显麻烦。

    (1)单机模式配置方式

    单机模式不需要配置,这种方式下,Hadoop被认为是一个单独的Java进程,这种方式经常用来调试。

    (2)伪分布模式

    可以把伪分布模式看作是只有一个节点的集群,在这个集群中,这个节点既是Master,也是Slave,既是NameNode,也是DataNode,既是JobTracker,也是TaskTracker。

    这种模式下修改几个配置文件即可。

    配置hadoop-env.sh,记事本打开改文件,设置JAVA_HOME的值为你的JDK安装路径,例如:

    JAVA_HOME="D:hadoopJavajdk1.7.0_25"


    配置core-site.xml

    <?xmlversion="1.0"?>
    <?xml-stylesheettype="text/xsl"href="configuration.xsl"?>
    <!--Putsite-.-->
    <configuration>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
    </property>
    <property>
    <name>mapred.child.tmp</name>
    <value>/home/u/hadoop/tmp</value>
    </property>
    </configuration>

    配置hdfs-site.xml

    <?xmlversion="1.0"?>
    <?xml-stylesheettype="text/xsl"href="configuration.xsl"?>
    <!--Putsite-.-->
    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    </configuration>

    配置mapred-site.xml

    <?xmlversion="1.0"?>
    <?xml-stylesheettype="text/xsl"href="configuration.xsl"?>
    <!--Putsite-.-->
    <configuration>
    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
    </property>
    <property>
    <name>mapred.child.tmp</name>
    <value>/home/u/hadoop/tmp</value>
    </property>
    </configuration>

    8、启动Hadoop

    打开Cgywin窗口,执行cd ~/hadoop命令,进入hadoop文件夹,如下图:

    启动Hadoop前,需要先格式化Hadoop的文件系统HDFS,执行命令:bin/hadoop namenode -format

    注意namenode要小些,否则如果输入NameNode,会提示错误,找不到或无法加载主类NameNode。执行正确命令后如下图所示:

    输入命令 bin/start-all.sh,启动所有进程,如下图:

    接下来,验证是否安装成功

    打开浏览器,分别输入下列网址,如果能够正常浏览,说明安装成功。

    localhost:50030,回车打开MapRece的web页面,如下图(页面部分截图):

    localhost:50070,回车打开HDFS的web页面,如下图(页面部分截图):

    第一次启动后,如果都不能浏览,或不能浏览某一个,退出Cygwin,重新打开Cygwin,执行bin/start-all.sh命令。

    如果只想启动MapRece,可执行bin/start-mapred.sh命令。

    如果只想启动HDFS,可执行bin/start-dfs.sh命令。

    ‘玖’ centos 6.5怎么搭建hadoop2.7.3

    总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器,解压安装JDK,解压安装Hadoop,配置hdfs、maprece等主从关系。

    1、环境,3台CentOS6.5,64位,Hadoop2.7.3需要64位Linux,操作系统十几分钟就可以安装完成,
    Master 192.168.0.182
    Slave1 192.168.0.183
    Slave2 192.168.0.184

    2、SSH免密码登录,因为Hadoop需要通过SSH登录到各个节点进行操作,我用的是root用户,每台服务器都生成公钥,再合并到authorized_keys
    (1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
    #RSAAuthentication yes
    #PubkeyAuthentication yes
    (2)输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
    (3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
    cat id_rsa.pub>> authorized_keys
    ssh [email protected] cat ~/.ssh/id_rsa.pub>> authorized_keys
    ssh [email protected] cat ~/.ssh/id_rsa.pub>> authorized_keys
    (4)把Master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录
    (5)完成,ssh [email protected]、ssh [email protected]就不需要输入密码了

    3、安装JDK,Hadoop2.7需要JDK7,由于我的CentOS是最小化安装,所以没有OpenJDK,直接解压下载的JDK并配置变量即可
    (1)下载“jdk-7u79-linux-x64.gz”,放到/home/java目录下
    (2)解压,输入命令,tar -zxvf jdk-7u79-linux-x64.gz
    (3)编辑/etc/profile
    export JAVA_HOME=/home/java/jdk1.7.0_79
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    (4)使配置生效,输入命令,source /etc/profile
    (5)输入命令,java -version,完成

    4、安装Hadoop2.7,只在Master服务器解压,再复制到Slave服务器
    (1)下载“hadoop-2.7.0.tar.gz”,放到/home/hadoop目录下
    (2)解压,输入命令,tar -xzvf hadoop-2.7.0.tar.gz
    (3)在/home/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name

    5、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的core-site.xml
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.0.182:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/tmp</value>
    </property>
    <property>
    <name>io.file.buffer.size</name>
    <value>131702</value>
    </property>
    </configuration>

    6、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的hdfs-site.xml
    <configuration>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/dfs/data</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.0.182:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    </configuration>

    7、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
    <configuration>
    <property>
    <name>maprece.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>maprece.jobhistory.address</name>
    <value>192.168.0.182:10020</value>
    </property>
    <property>
    <name>maprece.jobhistory.webapp.address</name>
    <value>192.168.0.182:19888</value>
    </property>
    </configuration>

    8、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>maprece_shuffle</value>
    </property>
    <property>
    <name>yarn.nodemanager.auxservices.maprece.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>192.168.0.182:8032</value>
    </property>
    <property>
    <name>yarn.resourcemanager.scheler.address</name>
    <value>192.168.0.182:8030</value>
    </property>
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>192.168.0.182:8031</value>
    </property>
    <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>192.168.0.182:8033</value>
    </property>
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>192.168.0.182:8088</value>
    </property>
    <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>768</value>
    </property>
    </configuration>

    9、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME,不设置的话,启动不了,
    export JAVA_HOME=/home/java/jdk1.7.0_79

    10、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,
    192.168.0.183
    192.168.0.184

    11、将配置好的Hadoop复制到各个节点对应位置上,通过scp传送,
    scp -r /home/hadoop 192.168.0.183:/home/
    scp -r /home/hadoop 192.168.0.184:/home/

    12、在Master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.7.0目录
    (1)初始化,输入命令,bin/hdfs namenode -format
    注意:执行这步的时候可能会报一个错误:
    java.net.UnknownHostException: tiancunPC: tiancunPC: unknown error
    at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
    at org.apache.hadoop.net.DNS.resolveLocalHostname(DNS.java:264)
    at org.apache.hadoop.net.DNS.<clinit>(DNS.java:57)
    at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:982)
    at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:591)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:157)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:992)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1434)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1559)
    Caused by: java.net.UnknownHostException: tiancunPC: unknown error
    at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
    at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
    ... 8 more
    16/11/11 19:15:23 WARN net.DNS: Unable to determine address of the host-falling back to "localhost" address
    java.net.UnknownHostException: tiancunPC: tiancunPC: unknown error
    at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
    at org.apache.hadoop.net.DNS.resolveLocalHostIPAddress(DNS.java:287)
    at org.apache.hadoop.net.DNS.<clinit>(DNS.java:58)
    at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:982)
    at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:591)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:157)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:992)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1434)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1559)
    Caused by: java.net.UnknownHostException: tiancunPC: unknown error
    at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
    at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
    ... 8 more
    linux中使用hostname查看为:
    [root@tiancunPC hadoop-2.7.3]# hostname
    tiancunPC
    查看/etc/hosts为:
    [root@tiancunPC hadoop-2.7.3]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    难怪会映射不到,修改/etc/hosts
    [root@tiancunPC hadoop-2.7.3]# cat /etc/hosts
    127.0.0.1 tiancunPC localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    对应修改另外两个机器的主机名,在执行那个命令就可以了

    (2)全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
    执行sbin/start-all.sh 可能会有错误提示:
    maps to localhost(IP), but this does not map back to the address
    解决办法:

    修改 /etc/ssh/ssh_config
    vim /etc/ssh/ssh_config
    GSSAPIAuthentication no
    这个时候可能还会出现这个错误提示:

    hadoop出现namenode running as process 18472. Stop it first.,hadoopnamenode
    解决办法:重新启动一下hadoop

    (3)停止的话,输入命令,sbin/stop-all.sh
    (4)输入命令,jps,可以看到相关信息

    ‘拾’ hadoop 解压安装成功后怎么用

    先安装vim:sudo apt-get install vim
    然后输入:sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(vim需安装)
    在弹出的编辑框里输入:greeter-show-manual-login=true 保存关闭。
    为了给root设置密码,在终端中输入:sudo passwd root。
    关机重启在多出的登录框里输入root 和设置的密码!

    阅读全文

    与hadoop解压命令相关的资料

    热点内容
    我的世界苹果版的2b2t服务器地址咋查 浏览:87
    xlsx转换pdf 浏览:94
    3dmax挤出命令英语 浏览:903
    靶心率的定义和算法 浏览:513
    3d模术师app哪里下载 浏览:474
    php中文api文档 浏览:458
    安卓设计怎么加入输入框 浏览:185
    主根服务器什么时候开始 浏览:738
    奇门遁甲完整版pdf 浏览:901
    app软件怎么用的 浏览:802
    电子书pdf购买 浏览:193
    浪潮服务器如何做系统 浏览:111
    冒险岛img格式加密 浏览:596
    我的世界手游如何复制命令 浏览:659
    天刀自动弹琴脚本源码 浏览:970
    打开其它app微信怎么收不到 浏览:447
    安卓游戏耳机怎么戴 浏览:18
    不越狱怎么去除app广告 浏览:178
    ipadminipdf阅读 浏览:507
    文件夹无限制压缩会不会降低内存 浏览:414