hadoop的安装和配置

hadoop安装

在Apache Hadoop主页的下载页面https://hadoop.apache.org/releases.html选择版本进行下载:

hadoop安装配置-1.png

下载下来的是压缩包:
hadoop安装配置-2.png

将压缩包使用Xftp上传hadoop-1的/usr目录下:
hadoop安装配置-3.png

执行命令:

# tar -zxvf hadoop-2.7.7.tar.gz

解压完成后会在/usr目录下生成hadoop-2.7.7目录:


hadoop安装配置-4.png

然后设置环境变量:

# vim /etc/profile

在profile文件末尾添加:

export HADOOP_HOME=/usr/hadoop-2.7.7
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
hadoop安装配置-5.png

保存文件,然后执行:

# source /etc/profile

此时即可直接使用hadoop命令:


hadoop安装配置-6.png

启动hadoop有三种安装模式:本地模式、伪分布式模式、分布式模式。

本地模式

本地模式只需要修改/usr/hadoop-2.7.7/etc/hadoop/hadoop-env.sh文件,设置JAVA_HOME即可。
在hadoop-1上面进行本地模式配置,在终端使用vim打开该文件:

# vim hadoop-2.7.7/etc/hadoop/hadoop-env.sh

找到export JAVA_HOME=${JAVA_HOME}一行,将该行注释掉,然后添加一行:

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64

hadoop安装配置-7.png

本地模式即配置完成。

在/home目录下创建temp目录,在temp目录中创建一个test.txt文件:

# mkdir /home/temp
# vim /home/temp/test.txt

在test.txt文件中写入如下测试内容:

this is a example
hello world hello bob hello everyone

执行命令进入MapReduce示例程序目录:

# cd /usr/hadoop-2.7.7/share/hadoop/mapreduce

查看目录下的内容,执行命令:

# ls -l
hadoop安装配置-8.png

其中hadoop-mapreduce-examples-2.7.7.jar就是要来用测试的jar包,测试执行如下:

# hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /home/temp/test.txt /home/temp/mcl

测试结果会生成在/home/temp/mcl目录下,执行命令查看结果:

# cat /home/temp/mcl/part-r-00000 

可以看到每个单词的统计结果数据。

伪分布式模式

伪分布式模式是在单机上,模拟一个分布式的环境,具备Hadoop的所有功能。
配置文件路径:/usr/hadoop-2.7.7/etc/hadoop/。
首先配置的文件是hadoop-env.sh,与本地模式一样,配置好JAVA_HOME参数即可。
然后配置的两个文件是hdfs-site.xml和core-site.xml,这两个文件作用是配置HDFS的一些属性。
在hdfs-site.xml文件中配置(数据冗余级别设置为1):


hadoop安装配置-9.png

在core-site.xml文件中配置(namenode的地址和HDFS数据保存的目录,默认是Linux的tmp目录):


hadoop安装配置-10.png

其中tmp目录要手动创建:
# mkdir /usr/hadoop-2.7.7/tmp

接下来配置的两个文件是mapred-site.xml和yarn-site.xml,这两个文件的作用是配置mapreduce使用yarn容器和yarn的一些属性。
现在目录中没有mapred-site.xml文件,但是有一个mapred-site.xml.template文件,所以在/usr/hadoop-2.7.7/etc/hadoop路径下执行命令:

# cp mapred-site.xml.template mapred-site.xml

然后在拷贝的mapred-site.xml文件中添加配置(ResourceManager的地址):


hadoop安装配置-11.png

在yarn-site.xml文件中配置(NodeManager运行MR任务的方式):


hadoop安装配置-12.png

最后对namenode进行格式化,执行命令:
# hdfs namenode -format

只要看到信息中有一句关键:
common.Storage: Storage directory /usr/hadoop-2.7.7/tmp/dfs/name has been successfully formatted.
则格式化成功:


hadoop安装配置-13.png

启动hadoop,执行/usr/hadoop-2.7.7/sbin目录下的启动脚本:

# start-all.sh

完成后信息无报错:


hadoop安装配置-14.png

执行jps命令查看进程如下:


hadoop安装配置-15.png

则启动完成。
打开浏览器,输入http://192.168.44.128:50070,即可打开hdfs的web页面:
hadoop安装配置-16.png

点击Datanodes可以看到数据节点为hadoop-1:


hadoop安装配置-17.png

测试wordcount验证是否成功:
创建hadoop的wordCountInput用来上传test.txt文件,执行命令:
# hadoop fs -mkdir /wordCountInput

目录创建完成后,将/home/temp/test.txt文件上传该目录,执行命令:

# hadoop fs -put /home/temp/test.txt /wordCountInput

查看文件是否上传,执行命令:

# hadoop fs -ls /wordCountInput
hadoop安装配置-18.png

然后使用hadoop-mapreduce-examples-2.7.7.jar测试执行如下:

# hadoop jar /usr/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /wordCountInput/test.txt /wordCountOutput
hadoop安装配置-19.png

等待计算完成,查看wordCountOutput目录下的文件,执行命令:

# hadoop fs -ls /wordCountOutput

可以看到计算结果文件已经生成:


hadoop安装配置-20.png

查看结果数据,执行命令:

# hadoop fs -cat /wordCountOutput/part-r-00000

test.txt文件中各个单词的统计数据如下:


hadoop安装配置-21.png

停止进程执行命令:

# stop-all.sh

等下stop完成,执行jps命令可以看到进程已经全部关闭:


hadoop安装配置-22.png

完全分布式模式

是真正的分布式环境,具备生产条件。
完全分布式模式与伪分布式模式的区别就在于配置文件配置内容不同,namenode与datanode分别部署在不同的服务器上。
以下使用hadoop-1、hadoop-2和hadoop-3三台服务器搭建一个完全分布式集群,其中hadoop-1为namenode节点,其余两台为datanode节点。
在hadoop-1服务器上:
首先配置hadoop-env.sh文件,配置好JAVA_HOME参数。
然后配置hdfs-site.xml文件,将冗余级别改为3:


hadoop安装配置-23.png

接下来core-site.xml文件,内容不需要修改:


hadoop安装配置-10.png

接下来mapred-site.xml文件,内容不需要修改:
hadoop安装配置-24.png

接下来yarn-site.xml 文件,内容不需要修改:
hadoop安装配置-25.png

最后slaves文件中的localhost,改成hadoop-2和hadoop-3:
hadoop安装配置-26.png

修改完成之后,将以上文件全部拷贝到hadoop-2和hadoop-3的相应目录下无需做其他修改。

hadoop重置

因为之前搭建伪分布式模式时,格式化过hadoop-1的namenode,所以此处需要进行重置。
首先要删除/usr/hadoop-2.7.7/logs目录中的所有文件

# rm -r *
hadoop安装配置-27.png

然后重新格式化namenode:

# hdfs namenode -format

hadoop安装配置-28.png

然后执行启动:
hadoop安装配置-29.png

然后使用命令jps,查看三台服务器的进程如下:
hadoop-1:
hadoop安装配置-30.png

hadoop-2:
hadoop安装配置-31.png

hadoop-3:
hadoop安装配置-32.png

打开浏览器,输入http://192.168.44.128:50070,即可打开hdfs的web页面:
hadoop安装配置-33.png

点击Datanodes可以看到数据节点为hadoop-2和hadoop-3:
hadoop安装配置-34.png

本地模式一般情况下不用,开发可以使用伪分布式模式或者资源充足情况下使用完全分布式模式。
文中的配置文件参数都是最简化的配置,实际情况应该按照需求进行配置。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容