设为首页 收藏本站
查看: 1938|回复: 0

[经验分享] hadoop学习笔记——环境搭建

[复制链接]

尚未签到

发表于 2015-7-11 09:38:45 | 显示全部楼层 |阅读模式
  
基础环境准备:
  系统:(VirtualBox) ubuntu-12.04.2-desktop-i386.iso
  hadoop版本:hadoop-0.20.203.0rc1.tar.gz
  jdk版本:jdk-6u26-linux-i586.bin
  
  安装ssh服务
  sudo apt-get install openssh-server
  
  在Ubuntu下创建hadoop用户组和用户
  $ sudo addgroup hadoop
  $ sudo adduser --ingroup hadoop hadoop
  
  编辑/etc/sudoers文件,为hadoop用户添加权限
$ sudo vim /etc/sudoers
给hadoop用户赋予root相同的权限
hadoop  ALL=(ALL:ALL) ALL
  ================================================================================
hadoop实战之安装与单机模式
  
--------------------------------------------------------------------------------   
1. 下载最新的hadoop安装包,这里我使用的是hadoop-0.20.203.0rc1.tar.gz版本。
  下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz
  2. 解压压缩包到自己的目录,比如解压到/home/hadoop/data目录下(tar –zxvf hadoop-0.20.203.orc1.tar.gz),为了后面说明方便,这里把/home/hadoop/data/hadoop-0.20.203.0定义为$HADOOP_HOME;   
3. 修改$HADOOP_HOME/conf/hadoop-env.sh文件,将JAVA_HOME指定到正确的jdk路径上(echo $JAVA_HOME查看);   
4. 进入$HADOOP_HOME目录下执行以下命令,将会得到hadoop命令的帮助;   
  $ bin/hadoop   
5. 进入$HADOOP_HOME目录下执行以下命令来测试安装是否成功   
  $ mkdir input   
  $ cp conf/*.xml input   
  $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'   
  $ cat output/*
  输出:
  hadoop@ubuntu-V01:~/data/hadoop-0.20.203.0$ cat output/*   
1    dfsadmin   
  经过上面的步骤,如果没有出现错误就算安装成功了。
  ================================================================================   
hadoop实战之伪分布式模式
  
--------------------------------------------------------------------------------   
Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行,这种运行方式的配置和操作如下:
  关于hadoop的安装和测试可以参考...   
这里仍假定${HADOOP_HOME}为位置是/home/hadoop/data/hadoop-0.20.203.0   
1. 修改hadoop配置   
1.1 编辑${HADOOP_HOME}/conf/core-site.xml文件,内容修改如下:   
   
      
    fs.default.name   
    hdfs://localhost:9000   
      
   
1.2 编辑${HADOOP_HOME}/conf/hdfs-site.xml文件,内如修改如下:   
   
      
    dfs.replication   
    1   
      
   
1.3 编辑${HADOOP_HOME}/conf/mapred-site.xml文件,内如修改如下:   
   
      
    mapred.job.tracker   
    localhost:9001   
      

  2. 设置linux上ssh是用户可以自动登录   
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa   
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  3. 格式化一个新的分布式文件系统:   
$ bin/hadoop namenode -format
  4. 执行hadoop   
4.1 启动hadoop后台daemon   
$ bin/start-all.sh   
启动后可以通过网页方式查看NameNode和JobTracker状态   
NameNode - http://localhost:50070/   
JobTracker - http://localhost:50030/   
4.2 复制文件到分布式文件系统上   
$ bin/hadoop fs -put conf input   
4.3 运行测试   
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'   
   
4.4 获取测试程序的执行结果   
$ bin/hadoop fs -cat output/*
  输出:
  hadoop@ubuntu-V01:~/data/hadoop-0.20.203.0$ bin/hadoop fs -cat output/*  
2 dfs.replication  
1 dfs.server.namenode.  
1 dfsadmin
  
4.5 停止hadoop后台daemon   
$ bin/stop-all.sh
  ================================================================================   
hadoop实战之分布式模式
  
  --------------------------------------------------------------------------------   
1. 首先为hadoop的集群准备几台机器,这里机器名如下:   
ubuntu-V01(master)   
ubuntu-V02(slave1)   
ubuntu-V03(slave2)
  2. 修改每个机器的/etc/hosts文件,确保每个机器都可以通过机器名互相访问;
  3. 在上面每个机器上的相同位置分别安装hadoop,这里安装的都是hadoop-0.20.203.0rc1.tar.gz包,并且假定安装路径都是/home/hadoop/data/hadoop-0.20.203.0;
  4. 修改所有机器上的${HADOOP_HOME}/conf/hadoop-env.sh文件,将JAVA_HOME指定到正确的jdk路径上;
  5. 修改master机器上的${HADOOP_HOME}/conf/slaves文件,修改后文件内容如下:   
ubuntu-V02   
ubuntu-V03
  6. 修改和部署配置文件   
6.1 编辑${HADOOP_HOME}/conf/core-site.xml文件,内容修改如下:   
   
      
    fs.default.name   
    hdfs://ubuntu-V01:9000   
      
      
    hadoop.tmp.dir   
    /home/hadoop/data/hadoop-0.20.203.0/hadoop-${user.name}   
      
   
6.2 编辑${HADOOP_HOME}/conf/hdfs-site.xml文件,内如修改如下:   
   
      
      dfs.replication   
      1   
      
   
6.3 编辑${HADOOP_HOME}/conf/mapred-site.xml文件,内如修改如下:   
   
      
      mapred.job.tracker   
      ubuntu-V01:9001   
      
   
6.4 将以上三个配置文件分别部署在每个节点上;
  7. 格式化一个新的分布式文件系统:   
$ bin/hadoop namenode -format
  8. 执行hadoop   
8.1 启动hadoop后台daemon   
$ bin/start-all.sh   
启动后可以通过以下网页方式查看NameNode和JobTracker状态,此时可以从NameNode状态网页上看到"Live Nodes"的数量变成了两个,此时表示已经部署成功   
NameNode - http://localhost:50070/   
JobTracker - http://localhost:50030/
DSC0000.png
DSC0001.png
  
8.2 运行测试   
在hadoop默认提供了一些可以运行的测试工具在安装包目录下,下面就用这些测试程序来验证分布式模式是否成功
  8.2.1 测试一   
运行下面的命令将从本地复制一个文件到hdfs文件系统的/test/目录下   
$ bin/hadoop fs -copyFromLocal /home/hadoop/data/hadoop-0.20.203.0/hadoop-examples-0.20.203.0.jar /test/hadoop-examples-0.20.203.0.jar   
运行下面的命令将显示hdfs文件系统上/test/目录下的文件   
$ bin/hadoop fs -ls /test/   
输出结果如下:   
Found 1 items   
-rw-r--r--   1 hadoop supergroup     142469  2014-01-25 16:22 /test/hadoop-examples-0.20.203.0.jar   
运行完上面的命令以后,可以通过http://localhost:50070/来查看hdfs上的文件,此时可以看到slave节点上已经有刚才命令上传的文件存在了。
  8.2.2 测试二   
运行下面的命令   
$ bin/hadoop jar hadoop-examples-0.20.203.0.jar sleep 300   
然后访问http://localhost:50030/,可以看到会有job在cluster里运行
  8.2.3 测试三   
首先准备数据,下面两个命令是在hdfs上创建一个/test/input目录,然后从本地复制一下文件到此目录下   
$ bin/hadoop fs -mkdir /test/input   
$ bin/hadoop fs -copyFromLocal /home/hadoop/data/hadoop-0.20.203.0/conf/*.xml /test/input   
运行测试来查找一些字符串   
$ bin/hadoop jar hadoop-examples-*.jar grep /test/input /test/output 'dfs[a-z.]+'   
查看测试结果   
$ bin/hadoop fs -ls /test/output/   
$ bin/hadoop fs -cat /test/output/part-00000
  8.3 停止hadoop后台daemon   
$ bin/stop-all.sh
  ================================================================================   
hadoop实战之动态添加节点
  
--------------------------------------------------------------------------------   
假定已经有了一个hadoop cluster环境,并且已经有了两个slave节点ubuntu-V02和ubuntu-V03,这里需要动态添加一个新的节点ubuntu-V04.
  1. 修改${HADOOP_HOME}/conf/slaves文件,在其中添加一个新的slave节点,比如   
ubuntu-V02   
ubuntu-V03   
ubuntu-V04(新节点)
  2. 登录到新添加的slave节点上,进入${HADOOP_HOME}目录并运行以下命令:   
$ bin/hadoop-daemon.sh start datanode     
$ bin/hadoop-daemon.sh start tasktracker
  3. 验证添加是否成功   
3.1 访问http://localhost:50070/可以看到"Live Nodes"的数量就从2变成了3;   
3.2 也可以通过以下命令行来验证是否成功   
$ bin/hadoop dfsadmin -report
  ================================================================================
  
  
  备注:
  进行分布式环境配置时,注意 /etc/hosts中ip与主机名的映射
  如ubuntu-01机器上:
  hadoop@ubuntu-V01:~$ cat /etc/hosts
127.0.0.1localhost
192.168.1.109 ubuntu-V01
192.168.1.110 ubuntu-V02
192.168.1.111 ubuntu-V03
192.168.1.112 ubuntu-V04
  
  
  参考:
  http://hadoop.apache.org/docs/r0.19.1/cn/index.html
  http://hadoop.apache.org/docs/r1.0.4/cn/index.html
  http://blog.iyunv.com/greatelite/article/details/17690239 Hadoop 2.2.0 分布式集群搭建
  http://www.infoq.com/cn/articles/hadoop-intro  分布式计算开源框架Hadoop入门实践(一)分布式计算开源框架Hadoop介绍
  http://www.infoq.com/cn/articles/hadoop-config-tip  分布式计算开源框架Hadoop入门实践(二)Hadoop中的集群配置和使用技巧
  http://www.infoq.com/cn/articles/hadoop-process-develop  分布式计算开源框架Hadoop入门实践(三)Hadoop基本流程与应用开发
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85410-1-1.html 上篇帖子: 第九章 搭建Hadoop 2.2.0版本HDFS的HA配置 下篇帖子: 初学hadoop——安装启动及遇到的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表