hadoop学习笔记-搭建环境

这几天乘着工作之余,学习了一下hadoop技术,跌跌撞撞的几天,终于完成了一个初步的hadoop的安装及测试,具体如下:

动力:工作中遇到的数据量太大,服务器已经很吃力,sql语句运行老半天,故想用大数据技术来改善一下

环境:centos5.11+jdk1.7+hadoop2.5.2


1.  伪分布安装步骤

关闭防火墙

修改ip

修改hostname

设置ssh自动登录

安装jdk

安装hadoop

注:此部分涉及到的Linux操作部分可以再下面的链接中找到,Linux初级操作

2.  安装jdk

用xftp把jdk安装包放到/root/Downloads

tar xzvfjdk-7u67-linux-i586.tar.gz  解压缩

vi/etc/profile 设置环境变量,添加如下3行内容

exportJAVA_HOME=/usr/local/jdk1.7

exportCLASSPATH=/usr/local/jdk1.7/lib

exportPATH=.:$JAVA_HOME/bin:$PATH

source /etc/profile  配置文件立即生效

java –version 验证是否设置成功

3.  安装hadoop

用xftp把hadoop安装包放到/root/Downloads

tar xzvf hadoop-2.5.2.tar.gz  解压缩

vi /etc/profile 设置环境变量,添加并修改如下内容

export JAVA_HOME=/usr/local/jdk1.7

export HADOOP_HOME=/usr/local/hadoop2.5

export CLASSPATH=/usr/local/jdk1.7/lib

export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

source /etc/profile  配置文件立即生效

hadoop version 验证hadoop是否配置成功

4.  设置hadoop伪分布模式

上面步骤安装成功后,hadoop处于独立模式即本机模式,本机模式用于开发阶段测试调试MapReduce程序。伪分布模式用于在本机上模拟一个小规模的集群。

修改$HADOOP_HOME/etc/hadoop下的5个配置文件。

(1) 修改core-site.xml,设置namenode主机,hadoop文件系统

   
       fs.default.name
       hdfs://hadoop:9000
   

   hadoop.tmp.dir

/usr/local/hadoop2.5/tmp


(2) 修改hdfs-site.xml,设置数据块副本数目

dfs.name.dir

/usr/local/hadoop2.5/hdfs/name

dfs.data.dir

      /usr/local/hadoop2.5/hdfs/data

 dfs.replication

 1

dfs.permissions

false



(3) 修改mapred-site.xml

[cp mapred-site.xml.template mapred-site.xml]

        

  mapreduce.framework.name

    yarn



(4)修改hadoop-env.sh,设置JAVA_HOME
     在hadoop-env.sh中添加,本机中jdk路径
     export JAVA_HOME=/usr/local/jdk1.7

(5)修改yarn-site.xml,包含MapReduce启动的配置信息。

yarn.nodemanager.aux-services

 mapreduce_shuffle

5.  启动hadoop

hdfs namenode –format 格式化HDFS文件系统

注:第一,格式化之后jdk的路径会变成相对路径,需要到hadoop-env.sh中再改成绝对路径;

第二,一定在hadoop安装目录的sbin目录下执行格式化命令!

cd /usr/local/hadoop2.5/sbin  进入sbin目录

start-dfs.sh,start-yarn.sh   启动hadoop

jps 查看Java进程

共涉及5个Java进程,如下图所示:NodeManager、SecondaryNameNode、NameNode、DataNode、 ResourceManager;

6.  浏览器验证

在windows系统中绑定Linux主机名和ip

修改C:\Windows\System32\drivers\etc下的host文件

访问hadoop:50070和hadoop:8088端口

7.  执行测试程序

使用新建的伪分布式平台运行wordcount程序:

echo"Hello World.Hello hadoop." > hello.txt

hadoopfs -mkdir -p input  在hdfs系统上创建文件夹input

hadoopfs –ls 查看文件夹是否创建成功

hadoopfs -put ../hello.txt input 将本地文件上传到hdfs

hadoopfs -ls input   查看文件是否上传成功

hadoopjar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcountinput output  运行wordcount

hadoopfs -ls output 查看运行之后产生的文件

hadoopfs -cat output/part-r-00000 查看运行结果


8.错误记录

1.  Q:Java HotSpot(TM) ClientVM warning: You have loaded library/usr/local/hadoop2.5/lib/native/libhadoop.so.1.0.0which might have disabled stack guard. The VM will try to fix the stack guardnow.

A:这个问题的错误原因会发生在64位的操作系统上,原因是从官方下载的hadoop使用的本地库文件都是基于32位编译的,运行在64位系统上就会出现上述错误。

方案一:在64位系统上重新编译hadoop;

方案二:在hadoop-env.sh,yarn-env.sh中添加下两行: 

 

Export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native

export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"


9.感想

hadoop2.X跟hadoop1.X区别还是比较大的,可供查阅的资料方面1.x居多,故把自己学习hadoop2.5的过程分享出来,一方面方便自己查阅,另一方面让其他人少走弯路

你可能感兴趣的:(redis,hadoop)