Windows7+Eclipse+jdk7+CentOS5.8+Hadoop2.7.1开发环境搭建
2015-10-27 20:24
549 查看
一、hadoop2.7.1伪分布环境搭建
参考文档
http://www.aboutyun.com/thread-7779-1-1.html
http://www.aboutyun.com/thread-12798-1-1.html
http://www.oschina.net/question/117352_247251
CentOS5.8+jdk1.7+hadoop2.7.1
偷懒,全使用root用户
环境变量的配置/etc/profile
export HADOOP_PREFIX=/home/hadoop/hadoop-2.7.1
export JAVA_HOME=/home/setup/jdk1.7.0_67
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH
hadoop2.x版本与之前不同,配置文件在hadoop下的etc/hadoop/下,没有JobTracker 和JobTracker 的概念,多了yarn,上网查
我的配置文件:
1.core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<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>
</configuration>
2.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<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.permissions</name>
<value>false</value>
</property>
</configuration>
3.mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
hadoop命令:
格式化datanode:hadoop datanode -format
启动hadoop全部进程:start-all.sh
关闭hadoop全部进程:stop-all.sh
二、Windows安装Eclipse远程连接Linux上的hadoop
参考文档
http://www.aboutyun.com/thread-6001-1-1.html
/article/1502063.html
eclipse-jee-mars-R-win32-x86_64.zip
hadoop-eclipse-plugin-2.7.1.jar
插件版本要和hadoop版本一致,也曾自己编译过插件,没有成功,用网上找的。有的eclipse版本和插件也有不匹配,试了好久才找到合适的。编译插件参考:http://doc.okbase.net/congcong68/archive/119982.html
问题1:关于Call From to ***** failed on connection exception:
检查网络配置:两端防火墙、hadoop进程等
如果还不行,检查9000端口
netstat -anp
我开始做的不通,发现远程telnet不到9000端口,服务器上也只能本机telnet到,发现hosts文件配置只允许127.0.0.1访问,改成具体的地址。
问题2:datanode起不来
ps进程可以看到datanode,但是在jps中没有找到,这种情况一般是namenode与datanode的版本clusterID不一致导致的
将/home/hadoop/dfs/name/current/VERSION中的clusterID拷贝覆盖到/home/hadoop/dfs/data/current/VERSION中
问题3:win+eclipse运行wordcount程序出现的问题
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NullPointerException
参考但是没有解决最终问题:
/article/7104474.html
http://www.aboutyun.com/thread-8311-1-1.html
http://www.bkjia.com/ASPjc/931209.html
在Windows部署eclipse远程hadoop真的是相当麻烦!!!我觉得主要还是hadoop本身就是对LINUX的支持,Windows要涉及大量的修改!!
问题4:以上做下来eclipse还是报错:
Exception in thread "main" ExitCodeException exitCode=-1073741515
参考:/article/1502063.html
http://my.oschina.net/u/189445/blog/520948
原因是windows缺少部分动态链接库,这里废了很大劲,直到这篇说的除了hadoop.dll用的网上下的hadoopbin2.7.1,其他的还是用的老版本hadoop-common-2.2.0-bin-master
问题5:Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557)
Windows的唯一方法用于检查当前进程的请求在给定的路径的访问权限,下载原包hadoop-2.7.1-src.tar.gz,解压缩找到对应的D:\hadoop\hadoop-2.7.1-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio,将其中的java文件拷贝到eclipse中,建立相同的包,可能涉及其他包的依赖,一样找到并拷贝。
修改NativeIO.java,将其中的
public static boolean access(String path, AccessRight desiredAccess)
throws IOException {
return access0(path, desiredAccess.accessRight());
}
改为return true;
再次输入参数运行,终于好了
注意:运行wordcount程序参数一定要写对,要用远程HDFS的参数,并且要把文件放到HDFS里面对应的路径hdfs://10.0.4.35:9000/test/input和hdfs://10.0.4.35:9000/test/output(既然用HDFS,当然不是系统路径了),output是程序根据参数自动生成,如图:
附:hadoop一些基本命令
参考:/article/4741537.html
/article/10157306.html
hadoop fs -mkdir /tmp/input 在HDFS上新建文件夹
hadoop fs -put input1.txt /tmp/input 把本地文件input1.txt传到HDFS的/tmp/input目录下
hadoop fs -get input1.txt /tmp/input/input1.txt 把HDFS文件拉到本地
hadoop fs -ls /tmp/output 列出HDFS的某目录
hadoop fs -cat /tmp/ouput/output1.txt 查看HDFS上的文件
hadoop fs -rmr /home/less/hadoop/tmp/output 删除HDFS上的目录
hadoop dfsadmin -report 查看HDFS状态,比如有哪些datanode,每个datanode的情况
hadoop dfsadmin -safemode leave 离开安全模式
hadoop dfsadmin -safemode enter 进入安全模式
参考文档
http://www.aboutyun.com/thread-7779-1-1.html
http://www.aboutyun.com/thread-12798-1-1.html
http://www.oschina.net/question/117352_247251
CentOS5.8+jdk1.7+hadoop2.7.1
偷懒,全使用root用户
环境变量的配置/etc/profile
export HADOOP_PREFIX=/home/hadoop/hadoop-2.7.1
export JAVA_HOME=/home/setup/jdk1.7.0_67
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH
hadoop2.x版本与之前不同,配置文件在hadoop下的etc/hadoop/下,没有JobTracker 和JobTracker 的概念,多了yarn,上网查
我的配置文件:
1.core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<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>
</configuration>
2.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<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.permissions</name>
<value>false</value>
</property>
</configuration>
3.mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
hadoop命令:
格式化datanode:hadoop datanode -format
启动hadoop全部进程:start-all.sh
关闭hadoop全部进程:stop-all.sh
二、Windows安装Eclipse远程连接Linux上的hadoop
参考文档
http://www.aboutyun.com/thread-6001-1-1.html
/article/1502063.html
eclipse-jee-mars-R-win32-x86_64.zip
hadoop-eclipse-plugin-2.7.1.jar
插件版本要和hadoop版本一致,也曾自己编译过插件,没有成功,用网上找的。有的eclipse版本和插件也有不匹配,试了好久才找到合适的。编译插件参考:http://doc.okbase.net/congcong68/archive/119982.html
问题1:关于Call From to ***** failed on connection exception:
检查网络配置:两端防火墙、hadoop进程等
如果还不行,检查9000端口
netstat -anp
我开始做的不通,发现远程telnet不到9000端口,服务器上也只能本机telnet到,发现hosts文件配置只允许127.0.0.1访问,改成具体的地址。
问题2:datanode起不来
ps进程可以看到datanode,但是在jps中没有找到,这种情况一般是namenode与datanode的版本clusterID不一致导致的
将/home/hadoop/dfs/name/current/VERSION中的clusterID拷贝覆盖到/home/hadoop/dfs/data/current/VERSION中
问题3:win+eclipse运行wordcount程序出现的问题
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NullPointerException
参考但是没有解决最终问题:
/article/7104474.html
http://www.aboutyun.com/thread-8311-1-1.html
http://www.bkjia.com/ASPjc/931209.html
在Windows部署eclipse远程hadoop真的是相当麻烦!!!我觉得主要还是hadoop本身就是对LINUX的支持,Windows要涉及大量的修改!!
问题4:以上做下来eclipse还是报错:
Exception in thread "main" ExitCodeException exitCode=-1073741515
参考:/article/1502063.html
http://my.oschina.net/u/189445/blog/520948
原因是windows缺少部分动态链接库,这里废了很大劲,直到这篇说的除了hadoop.dll用的网上下的hadoopbin2.7.1,其他的还是用的老版本hadoop-common-2.2.0-bin-master
问题5:Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557)
Windows的唯一方法用于检查当前进程的请求在给定的路径的访问权限,下载原包hadoop-2.7.1-src.tar.gz,解压缩找到对应的D:\hadoop\hadoop-2.7.1-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio,将其中的java文件拷贝到eclipse中,建立相同的包,可能涉及其他包的依赖,一样找到并拷贝。
修改NativeIO.java,将其中的
public static boolean access(String path, AccessRight desiredAccess)
throws IOException {
return access0(path, desiredAccess.accessRight());
}
改为return true;
再次输入参数运行,终于好了
注意:运行wordcount程序参数一定要写对,要用远程HDFS的参数,并且要把文件放到HDFS里面对应的路径hdfs://10.0.4.35:9000/test/input和hdfs://10.0.4.35:9000/test/output(既然用HDFS,当然不是系统路径了),output是程序根据参数自动生成,如图:
附:hadoop一些基本命令
参考:/article/4741537.html
/article/10157306.html
hadoop fs -mkdir /tmp/input 在HDFS上新建文件夹
hadoop fs -put input1.txt /tmp/input 把本地文件input1.txt传到HDFS的/tmp/input目录下
hadoop fs -get input1.txt /tmp/input/input1.txt 把HDFS文件拉到本地
hadoop fs -ls /tmp/output 列出HDFS的某目录
hadoop fs -cat /tmp/ouput/output1.txt 查看HDFS上的文件
hadoop fs -rmr /home/less/hadoop/tmp/output 删除HDFS上的目录
hadoop dfsadmin -report 查看HDFS状态,比如有哪些datanode,每个datanode的情况
hadoop dfsadmin -safemode leave 离开安全模式
hadoop dfsadmin -safemode enter 进入安全模式
相关文章推荐
- Linux分区和加密分区操作
- Linux下mysql的root密码忘记解决方法
- linux 下关于用户的操作
- suse linux rpm安装
- linux 下常用的文件和目录操作命令(转)
- linux 下文件的搜寻(转)
- 来自 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7 的无 效 GPG 密钥:No key found in given key data
- linux vi(vim)常用命令汇总(转)
- Linux 下查看mac地址
- linux ls和 ll 命令
- linux之stat命令
- Linux 中less的使用
- 看完了linux书第二章后,关于内存寻址的一点总结
- linux awk命令详解
- linux sort,uniq,cut,wc命令详解
- linux grep命令详解
- linux(unix)下java应用占用cpu过高查找方法
- linux-多线程互斥锁在--多进程--中的使用
- linux运维要掌握的工具
- iTOP-4412开发板---Linux系统学习下载步骤