博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop环境搭建
阅读量:6638 次
发布时间:2019-06-25

本文共 5400 字,大约阅读时间需要 18 分钟。

hot3.png

环境:CentOS7+Hadoop2.6.4

一、分3类

1、单机环境搭建

2、伪分布式搭建

3、真分布式搭建

二、单机环境搭建

2.1、下载 用迅雷下载贼快。

2.2、将tar拷贝到CentOS的/home目录下,我放的是/home/germmy,这里用xshell或者winscp均可以,我用的是winscp

2.3、将tar包解压到/usr/local中,命令如下

tar -zxvf /home/germmy/hadoop-2.6.4.tar.gz -C /usr/local/

2.4、将hadoop命令配置到环境变量中,这样在控制台中直接输入hadoop就可以快捷操作。

进入环境变量配置页面

vi /etc/profile

先配置HADOOP_HOME,再在path后面加上/bin

HADOOP_HOME=/usr/local/hadoop-2.6.4/PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

:bin代表的是hadoop的一些操作,sbin表示的是hadoop的起停。

2.4.1、配置好后需要当环境变量生效,如下命令

source /etc/profile

2.5、测试有没有配置好。用hadoop version或者where hadoop.

2.5.1、hadoop version显示如下

2.5.2、which hadoop显示如下

2.6、运行wordcount程序。计算某目录下所有文件中每个单词出现的次数

2.6.1、在/home/germmy下新建目录input,并将hadoop/etc/下面所有.xml文件拷贝过去

cp ./etc/hadoop/*.xml /home/germmy/input/

2.6.1、执行代码

hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount /home/germmy/input/ /home/germmy/output

2.6.2 结果如下

2.6.3、查看一下output目录里面的part-r-00000文件如下图

2.6.3 会报一个错误:ebadf bad file descriptor hadoop,不过不要紧,这是由于文件被快速关闭的情况下就会出现这个问题,网上查了说没事

2.7 运行寻找统计符合特定规则的单词的程序

hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep /home/germmy/input/ /home/germmy/output2 'dfs[a-z.]+'

结果同上面差不多,就不再赘述了。

三、伪分布式搭建(略)

四、分布式搭建

4.1、机器准备

4.1.1、搭建另外2台hadoop机器

a)克隆。这个比较简单。注意:被克隆的机器要处于关闭状态

b)起来后进来配置

b.1)修改机器名(reboot才能生效)。

vi /etc/hostname

b.2)修改IP,改成静态的,命令如下

vi /etc/sysconfig/network-scripts/ifcfg-ens33

完成的效果如下:

TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=no#hadoop config startBOOTPROTO=staticIPADDR=192.168.92.203BROADCAST=192.168.92.255NETMAST=255.255.255.0GATEWAY=192.168.92.2DNS1=192.168.92.2#hadoop config endDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=f0a0731d-5dde-4961-b5bf-a958d204d5b9DEVICE=ens33ONBOOT=yes

注意

1>重点关注区域是#hadoop config start~end的范围,这里只要将IPADDR改成192.168.92.20X即可

2>不需要特别配置网卡,即MAC地址。在克隆的机器启动后,vmware会自动给他分配一个新的mac.

3>配置完后,要重启网卡,用service network restart.在宿主机中能ping通,搞定。

b.3)修改本地host

192.168.92.201 hadoop01192.168.92.202 hadoop02192.168.92.203 hadoop03

 

4.2、配置hadoop01。

主要是配置各种xml文件

4.2.1、配置hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_162

注意:在hadoop-env.sh要再配置一下JAVA_HOME,否则namenode启动时就会报JAVA_HOME找不到的错误

4.2.2、配置core-site.xml

fs.defaultFS
hdfs://hadoop01:9000
io.file.buffer.size
4096
hadoop.tmp.dir
/home/bigdata/tmp

4.2.3、hdfs-site.xml

dfs.replication
2
dfs.block.size
134217728
dfs.namenode.name.dir
/home/hadoopdata/dfs/name
dfs.datanode.data.dir
/home/hadoopdata/dfs/data
fs.checkpoint.dir
/home/hadoopdata/checkpoint/dfs/cname
dfs.http.address
hadoop01:50070
dfs.secondary.http.address
hadoop01:50090
dfs.webhdfs.enabled
false
dfs.permissions
false

4.2.4、配置yarn-site.xml.需要将yarn-site.templae.xml改名成yarn-site.xml

yarn.resourcemanager.hostname
hadoop01
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
hadoop01:8032
yarn.resourcemanager.scheduler.address
hadoop01:8030
yarn.resourcemanager.resource-tracker.address
hadoop01:8031
yarn.resourcemanager.admin.address
hadoop01:8033
yarn.resourcemanager.webapp.address
hadoop01:8088

4.2.5、配置slaves。路径是:./etc/hadoop/slaves

hadoop01hadoop02hadoop03

4.2.6、将hadoop01配置好的hadoop全部复制到hadoop02、hadoop03中。

scp -r  /usr/local/hadoop-2.6.4/ hadoop02:/usr/local/scp -r  /usr/local/hadoop-2.6.4/ hadoop03:/usr/local/

:最爽的当然是提前配置好免密登录,否则输密码输死你

4.3、格式化hdfs

hadoop namenode -format

 

4.4、启动dfs.

start-dfs.sh

:因为提前将hadoop/sbin配置到了path环境变量中,所以这里可以直接输入start-dfs.sh

4.4.1、测试hadoop01的启动情况。用jps命令

如果能看到NameNode,DataNode表示正常。

4.4.2、看一下datanode02的启动情况。

4.4.3、datanode03,同02,不赘述了。

4.5、上传下载文件,测试hdfs.

4.5.1、上传。用命令如下

hdfs dfs -put ./README.txt /

4.5.2、查看。用命令如下

hdfs dfs -cat /README.txt

效果如下

4.6、启动测试yarn命令如下:

start-yarn.sh

4.6.1、hadoop01机器上jps一下

4.6.2、hadoop02机器上jps一下

:jps时可能会出现Java异常,报Properties init的错误,我就看了一下logs/****.out和***.log文件,啥也没干,再次Jps竟然又好了,没搞懂。

4.5.3、hadoop03和02一样,不赘述。

4.7、测试yarn.

启动一个计数器,命令如下

yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount /README.txt /out/00

解释:

/README.txt代表源,代表谁要被word count

/out/00,这个表示统计完了后,结果放在hdfs中的哪里

4.7.1、查看hdfs的/out/00目录,命令如下

hdfs dfs -cat /out/00/part-r-00000

4.7.2、结果如下

五、web监控截图

5.1、hdfs web监控页面(端口:50070)

5.2、yarnweb监控页面(端口:8088)

六、异常解决

exitcodeexception exitcode=1

是因为jobhistory的服务器没有配置正确,我是从别地拷贝过来的,改完后问题解决,

七、总结

总的来说,hadoop集群还是非常简单的,比想像中的简单的多。

因为它安装是纯绿色的,解压下来就能用。然后就是改改基础配置,IP改成固定的,机器名、免登录什么的。再然后就是改改xml配置,改好后同步给另外2台slave机器,真的是简单爆了。

但hadoop集群好像不太稳定,跑的时候总是动不动出个小错误,不知道什么鬼。

 

转载于:https://my.oschina.net/windows20/blog/1807088

你可能感兴趣的文章
215. Kth Largest Element in an Array
查看>>
追踪解析 FutureTask 源码
查看>>
android图片蒙层
查看>>
js编程
查看>>
你的微博也被盗赞?试试HSTS强制HTTPS加密
查看>>
Vue 中给组件绑定原生事件
查看>>
PAT A1037
查看>>
我对JavaScript中this的一些理解
查看>>
The project you were looking for could not be found
查看>>
leetcode381. Insert Delete GetRandom O(1) - Duplicates allowed
查看>>
VuePress 静态网站生成
查看>>
leetcode398. Random Pick Index
查看>>
CSS预编译是什么?
查看>>
ThinkSNS+的 SPA(H5)安装教程
查看>>
关于 synchronizeOnSession
查看>>
03Go 类型总结
查看>>
专访阿里云MVP王俊杰:开发者的超能力是用技术让世界更美好
查看>>
computed:快速理解setter和getter
查看>>
高级开发人员必备技术:MQ
查看>>
Java 8 新特性之Lambda表达式
查看>>