Hadoop

HDFS编程实践

2017-03-19  本文已影响0人  张玉腾

实验环境

VMware + Ubuntu 16.04

Hadoop环境部署

简介

本实验使用Hadoop环境采用Docker来搭建的,采用开源项目hadoop-cluster-docker,总共有三个结点,下面来一段百度百科的摘要:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

[站外图片上传中……(1)]

安装步骤

Ubuntu系统安装过程就不演示了,下面从安装后开始操作。

sudo usermod -aG docker $USER

$USER表示当前用户名,例如,当前用户是hadoop,则把$USER替换成hadoop即可;然后注销,再次登录即可方便使用Docker了;

docker network create --driver=bridge hadoop
docker pull kiwenlau/hadoop:1.0
git clone https://github.com/kiwenlau/hadoop-cluster-docker
cd hadoop-cluster-docker
vim start-container.sh
将第10行改为如下代码
sudo docker run -itd \
                --net=hadoop \
                -p 9000:9000 \
                -p 50070:50070 \
                -p 8088:8088 \
                --name hadoop-master \
                --hostname hadoop-master \
                kiwenlau/hadoop:1.0 &> /dev/null

因为我们后续要调用HDFS的API,默认端口为9000,所以要将容器中的9000端口暴露出来。

./start-container.sh
start hadoop-master container...
start hadoop-slave1 container...
start hadoop-slave2 container...
root@hadoop-master:~#

启动了3个容器,1个master, 2个slave
运行后就进入了hadoop-master容器的/root目录

./start-hadoop.sh
./run-wordcount.sh
编程实践

实际操作过程可以查看此篇博客。此处只写了如何在本机调用容器中的接口。

wget https://github.com/kiwenlau/compile-hadoop/releases/download/2.7.2/hadoop-2.7.2.tar.gz
tar -xzvf hadoop-2.7.2.tar.gz

使用Eclipse编写HDFS的程序时,引入当前下载Hadoop的Java API即可。

Configuration conf = new Configuration();  
conf.set("fs.defaultFS","hdfs://localhost:9000");
问题总结

在Ubuntu上使用Eclipse编写代码调用Hadoop API遇到的坑

log4j.rootLogger = off
上一篇 下一篇

猜你喜欢

热点阅读