网络上充斥着大量Hadoop1的教程,版本老旧,Hadoop2的中文资料相对较少,本教程的宗旨在于从Hadoop2出发,结合作者在实际工作中的经验,提供一套最新版本的Hadoop2相关教程。 为什么是Hadoop2.2.0,而不是Hadoop2.4.0 本文写作时,Hadoop的最新版本已经是2.4.0,但是最新版本的Hbase0.98.1仅支持到Hadoop2.2.0,且Hadoop2.2.0已经相对稳定,所以我们依然采用2.2.0版本。 一. Hadoop安装(伪分布式) 1. 操作系统 Hadoop一定要运行在Linux系统环境下,网上有windows下模拟linux环境部署的教程,放弃这个吧,莫名其妙的问题多如牛毛。 2. 安装JDK 1> 下载并解压JDK 我的目录为:/home/apple/jdk1.8 2> 配置环境变量 打开/etc/profile,添加以下内容: export JAVA_HOME=/home/apple/jdk1.8 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar执行source /etc/profile ,使更改后的profile生效。 执行以下命令,赋予JDK运行的权限: chmod 777 /home/apple/jdk1.8/bin/* chmod 777 /home/apple/jdk1.8/lib/*3> 检测JDK环境 执行 java –version ,查看结果,如看到版本信息,则表明配置成功。 3. 安装SSH 1> 检验ssh是否已经安装 Ubuntu系统可以通过如下命令来查看ssh是否已经安装: netstat -an| grep 22如果已安装,可跳过第二步。 2> 安装ssh Ubuntu系统可以通过如下命令来安装ssh: sudo apt-get install ssh 3> 配置ssh免密码登录 通过如下命令来配置ssh免密码登录: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys输入如下命令验证免密码登录是否成功: ssh localhost成功登陆,可显示welcome信息。 4. 安装Hadoop 1> 下载并解压 我的目录为:/home/apple/hadoop-2.2.0 2> 配置环境变量 打开/etc/profile,添加以下内容: export HADOOP_HOME=/home/apple/hadoop-2.2.0 export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" export YARN_HOME=$HADOOP_HOME export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin执行source /etc/profile ,使更改后的profile生效。 执行以下命令,赋予Hadoop运行的权限: chmod 777 /home/apple/hadoop-2.2.0/bin/* chmod 777 /home/apple/hadoop-2.2.0/sbin/*3> 配置Hadoop 修改$HADOOP_HOME/etc/hadoop目录下的配置文件。 core-site.xml添加以下内容: <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.native.lib</name> <value>true</value> </property>hadoop-env.sh修改以下内容: export JAVA_HOME=/home/apple/jdk1.8hdfs-site.xml添加以下内容: <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/apple/hadoop-2.2.0/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/apple/hadoop-2.2.0/hdfs/datanode</value> </property>这里的两个地址,是你namenode和datanode两个节点上,希望hdfs文件存储的位置。 mapred-site.xml.template改为mapred-site.xml,添加以下内容: <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>yarn-site.xml添加以下内容: <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>4> 启动并验证 用如下命令启动或关闭Hadoop: start-all.sh stop-all.sh如果一切正常,使用jps命令你会看到如下信息: 2499 ResourceManager 2965 Jps 2616 NodeManager 2186 DataNode 2075 NameNode 2363 SecondaryNameNode 2669 JobHistoryServer访问8088端口可以查看job信息,访问50070端口可以查看namenode信息。 (责任编辑:IT) |