工作须要。要開始搞hadoop了,又是大数据,自己感觉大数据、云。仅仅是ERP、SOAP风潮之后与智能地球一起诞生的概念炒作。
只是Apache是个奇妙的组织。Java假设没有它也不会如今如火中天。言归正传:
首先须要下载Apache hadoop 2.4.0的tar.gz包,到本地解压缩到某个盘下,注意路径里不要带空格。
否则你配置文件中须要用windows 8.3格式的路径!
第二确保操作系统是64bit。已安装.netframework4.0以上版本号,这个你懂的,微软的天下,没有这个怎么混!
第三确保安装了64 bit 版本号的JDK1.7,笔者使用的就是JDK1.7.
第四请到github下载hadoop-commin-2.2.zip,官方下载的Apache hadoop 2.4.0的压缩包里,缺少windows下执行的链接库(hadoop.dll,winutils.exe。libwinutils.lib等),这个github的是大佬们编译好的64bit版的链接库包。
下载直接解压缩。覆盖掉官方hadoop文件夹下的bin文件夹就可以。
假设你想在windows下编译安装hadoop,则请直接參考官方原版文档:Hadoop2.X Windows安装指南
接下来进行配置(大部分摘抄自官方文档):
我的Hadoop解压缩文件夹是D:\Hadoop_2_4_0,下面简称h_home
首先,改动%h_home%\etc\hadoop的hadoop-env.cmd脚本文件,在文件末尾添加环境变量定义。注意找到文件最初的JAVA_HOME设置,改成你的64位JDK路径,这一点一定要注意!
比方我的:“set JAVA_HOME=D:\OLD_JDK\jdk1.7.0_51”
set HADOOP_PREFIX=c:\deploy
set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop
set YARN_CONF_DIR=%HADOOP_CONF_DIR%
set PATH=%PATH%;%HADOOP_PREFIX%\bin
之后在该路径下找到或创建core-site.xml文件,改动内容例如以下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://0.0.0.0:19000</value>
</property>
</configuration>
接下来是 hdfs-site.xml 文件。一样的改动内容例如以下。
配置文件默认使用\tmp文件夹作为hdfs文件的存储位置。比方我解压hadoop在D:\下,则它就会创建D:\tmp来存放HDFS文件系统。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
基本配置ok。
接下来我们配置一个YARN演示样例:
还是在该配置文件路径下,改动或者创建一个mapred-site.xml文件,路径下有个同名的模板文件,能够直接复制,然后改动当中的内容。
注意替换配置文件里%USERNAME% 为你windows的username。
<configuration>
<property>
<name>mapreduce.job.user.name</name>
<value>%USERNAME%</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.apps.stagingDir</name>
<value>/user/%USERNAME%/staging</value>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>local</value>
</property>
</configuration>
最后,创建yarn-site.xml文件,变更内容例如以下:
<configuration>
<property>
<name>yarn.server.resourcemanager.address</name>
<value>0.0.0.0:8020</value>
</property>
<property>
<name>yarn.server.resourcemanager.application.expiry.interval</name>
<value>60000</value>
</property>
<property>
<name>yarn.server.nodemanager.address</name>
<value>0.0.0.0:45454</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.server.nodemanager.remote-app-log-dir</name>
<value>/app-logs</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/dep/logs/userlogs</value>
</property>
<property>
<name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>-1</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value>
</property>
</configuration>
点击命令提示符(管理员)执行命令提示符,切换到hadoop的安装文件夹。进行下面操作
1、切换到etc/hadoop文件夹,执行hadoop-env.cmd脚本,设置当前命令窗体执行环境变量。
2、格式化HDFS文件系统(建议切换到bin文件夹然后运行命令):
%HADOOP_PREFIX%\bin\hdfs namenode -format
3、执行HDFS演示样例:
%HADOOP_PREFIX%\sbin\start-dfs.cmd
不报错的话。部署就ok了!
!
!