windows下Hadoop调试开发环境

Windows下Hadoop调试开发环境

Tags: Hadoop

摘要

windows下Hadoop调试开发环境,windows下开发,IDE用的IntelliJ IDEA。hadoop运行实例是最新版2.7.1。部署在ubuntu14.04 x64上。

开发环境清单

Windows 7 64位下开发
IDE用的IntelliJ IDEA 14
Hadoop运行实例是最新版2.7.1
Hadoop部署在ubuntu14.04 x64上(VirtualBox5.0)
Hadoop部署是单机模式,因为只是为了开发需要

IP分配

虚拟机Host Only适配器
自动分配到的IP是 192.168.56.101

win7对应的虚拟网卡IP是 192.168.56.1
虚拟网卡的名字一般是 VirtualBox Host-Only Ethernet Adapter

Hadoop单机模式

进入已经装好的虚拟机

安装jdk1.7
wget -O init.sh https://coding.net/u/javacore/p/dev-env-shell/git/raw/master/init.sh && bash init.sh

下载Hadoop2.7.1
下载地址 http://archive.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

因为网络模式是HostOnly 所以无法上网
可以通过xftp从win7上传到虚拟机里。

假设上传到的目录是
/root/hadoop/hadoop-2.7.1.tar.gz

更改环境变量
vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
#export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386
export HADOOP_HOME=/root/hadoop/hadoop-2.7.1
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH"
. /etc/profile

SSH免登录
生成SSH
ssh-keygen 一路回车

cd /root/.ssh
cat id_rsa.pub >> authorized_key

检查权限

reboot重启一下
ssh localhost 可以正常访问自己

更改配置文件
cd /root/hadoop/
解压 tar -zxvf hadoop-2.7.1.tar.gz
配置JAVA_HOME

vi /root/hadoop/hadoop-2.7.1/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64

更改hadoop配置文件

vi /root/hadoop/hadoop-2.7.1/etc/hadoop/core-site.xml

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.56.101:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/local/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
</property>

vi /root/hadoop/hadoop-2.7.1/etc/hadoop/hdfs-site.xml

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.56.101:50090</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

vi /root/hadoop/hadoop-2.7.1/etc/hadoop/mapred-site.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

vi /root/hadoop/hadoop-2.7.1/etc/hadoop/yarn-site.xml

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.56.101</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

启动Hadoop

cd /root/hadoop/hadoop-2.7.1
bin/hdfs namenode -format # 首次运行需要执行初始化,后面不再需要
sbin/start-dfs.sh
sbin/start-yarn.sh

如果想要新格式化,记得删除临时目录后再重新格式化。

rm -rf /usr/local/hadoop/tmp/

这个目录是我们在core-site.xml中配置的。

jps查看,该启动的进程都在。

NodeManager
DataNode
NameNode
SecondaryNameNode
Jps
ResourceManager

在win7下 telnet 192.168.56.101 9000 访问成功就可以了。

准备数据

虚拟机上 /root/a.txt
内容是
zhang 90
lisi 88
lisi 777
lisi 98
zhang 22

创建文件夹 hadoop fs -mkdir -p /user/root/input
上传文件a.txt到hdfs中 hadoop fs -put /root/a.txt /user/root/input/a.txt

win7下idea的配置

假设win7下的hadoop文件夹是 D:\hadoop2.7.1\hadoop-2.7.1

配置环境变量

Path最后追加
;%HADOOP_HOME%\bin

导入准备好的Maven项目,统计每个学生的平均成绩
git地址 https://coding.net/u/javacore/p/haddop-score/git

找到文件 https://coding.net/u/javacore/p/haddop-score/git/tree/master/bin/winutils.exe
拷贝到D:\hadoop2.7.1\hadoop-2.7.1\bin目录下

找到文件 https://coding.net/u/javacore/p/haddop-score/git/tree/master/bin/msvcr120.dll---syswow64 (知道怎么改名吧^_^)
和 hadoop.dll
把这两个dll文件都拷贝到C:\Windows\SysWOW64目录下

IDEA配置
选中项目后,F12打开项目依赖。导入如图所示的文件夹。

启动一次后就关闭,去设置 Working directory,再启动有main方法的测试类Score_process

当然打了断点一样是可以有效的。
点此查看效果

http://ww4.sinaimg.cn/large/a79ce670jw1eyrkw1uabkg20pq0jce81.gif