• 1. Hadoop安装实践杜威 dave_duw@hotmail.com
  • 2. (本页无文本内容)
  • 3. 网络配置 网卡IP配置, 配置过程
  • 4. IP 192.168.0.2 /etc/sysconfig/network HOSTNAME=master.hadoop /etc/hosts 192.168.0.2 master.hadoop 192.168.0.4 slave2.hadoop 192.168.0.3 slave1.hadoop source /etc/hosts service network restart service iptables stop 网络配置
  • 5. 配置 Slave2 IP 192.168.0.4 /etc/sysconfig/network HOSTNAME=Slave2.hadoop /etc/hosts 192.168.0.2 master.hadoop 192.168.0.4 slave2.hadoop source /etc/hosts service network restart
  • 6. 机器名IP地址作用Hadoop-247192.168.0.2NameNode、master、jobTrackerHadoop-248 192.168.0.3DataNode、slave、taskTrackerHadoop-249 192.168.0.4DataNode、slave、taskTracker实践环境 CentOs jdk1.6 hadoop-0.20.2
  • 7. 1、创建用户 :$useradd或者adduser 修改机器名:$ hostname 机器名 在/etc/hosts中添加机器名和对应的ip 2、安装ssh $ sudo apt-get install openssh-server 开始安装
  • 8. 3、建立ssh 无密码登录 (1)在NameNode 上实现无密码登录本机: $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa , 直接回车,完成后会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。这两个是成对 出现,类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys 文件):$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys。完成后可以实现无密码 登录本机:$ ssh localhost。 (2)实现NameNode 无密码登录其他DataNode: 把NameNode 上的id_dsa.pub 文件追加到dataNode 的authorized_keys 内( 以 192.168.0.3 节点为例): a. 拷贝NameNode 的id_dsa.pub 文件: $ scp id_dsa.pub hadoop@192.168.0.248:/home/hadoop/ b. 登录192.168.0.248,执行$ cat id_dsa.pub >> .ssh/authorized_keys 其他的dataNode 执行同样的操作。 注意:如果配置完毕,如果namenode 依然不能访问datanode,可以修改datanode 的 authorized_keys:$ chmod 600 authorized_keys。
  • 9. 4、关闭防火墙 $ sudo ufw disable 注意:这步非常重要。如果不关闭,会出现找不到datanode 问题。 5、安装jdk1.6 下载地址:http://java.sun.com/javase/downloads/widget/jdk6.jsp下载后,直接 安装。本例的安装路径为/home/hadoop/jdk1.6.0_14。 安装后,添加如下语句到/etc/profile 中: export JAVA_HOME=/home/hadoop/jdk1.6.0_14 export JRE_HOME=/home/hadoop/jdk1.6.0_14/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH ►注意:每台机器的java 环境最好一致。安装过程中如有中断,切换 为root 权限来安装。
  • 10. 6、安装hadoop 下载hadoop-0.20.2.tar.gz:Apache官方网站 解压:$ tar –zvxf hadoop-0.20.2.tar.gz 把Hadoop 的安装路径添加到环/etc/profile 中: export HADOOP_HOME=/home/hadoop/hadoop-0.20.2 export PATH=$HADOOP_HOME/bin:$PATH
  • 11. 7、配置hadoop hadoop 的主要配置都在hadoop-0.20.2/conf 下。 (1)在conf/hadoop-env.sh 中配置Java 环境(namenode 与datanode 的配置相同): $ gedit hadoop-env.sh $ export JAVA_HOME=/home/hadoop/jdk1.6.0_14 (2)配置conf/masters 和conf/slaves 文件:(只在namenode 上配置) masters: 192.168.0.2 slaves: 192.168.0.4 192.168.0.3
  • 12. (3)配置conf/core-site.xml, conf/hdfs-site.xml 及conf/mapred-site.xml(简单配置,datanode 的配置相同) core-site.xml: hadoop.tmp.dir /home/hadoop/tmp A base for other temporary directories. fs.default.name hdfs://192.168.0.247:9000 core-site.xml
  • 13. hdfs-site.xml:( replication 默认为3,如果不修改,datanode 少于三台就会报错) dfs.replication 1 mapred-site.xml: mapred.job.tracker 192.168.0.247:9001 hdfs-site.xml
  • 14. mapred-site.xml: mapred.job.tracker 192.168.0.247:9001 mapred-site.xml
  • 15. 8、运行hadoop 进入hadoop-0.20.2/bin,首先格式化文件系统:$ hadoop namenode –format 启动Hadoop:$ start-all.sh 用jps 命令查看进程,NameNode 上的结果如下: DataNode 上的结果: 查看集群状态:$ hadoop dfsadmin -report Hadoop 的web 方式查看:http://192.168.0.44:50070
  • 16. 9、运行wordcount.java 程序 (1)先在本地磁盘建立两个输入文件file01 和file02: $ echo “Hello World Bye World” > file01 $ echo “Hello Hadoop Goodbye Hadoop” > file02 (2)在hdfs 中建立一个input 目录:$ hadoop fs –mkdir input (3)将file01 和file02 拷贝到hdfs 中: $ hadoop fs –copyFromLocal /home/hexianghui/soft/file0* input (4)执行wordcount: $ hadoop jar hadoop-0.20.1-examples.jar wordcount input output (5)完成之后,查看结果: $ hadoop fs -cat output/part-r-00000 Bye 1 Goodbye 1 Hadoop 2 Hello 2 World 2
  • 17. 附录: 可能出现的问题及相应的解决方法: 1、如果防火墙未关,可能出现如下错误: File /home/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1。用jps 查看进程都正常,用web 查看live nodes为0. 说明datanode 没有正常启动,但datanode 进程实际是启动了。 解决方法:关闭防火墙。 另一种可能:把safemode 置于off 状态:$ hadoop dfsadmin -safemode leave。
  • 18.       操作系统:ubuntu 12.10 64bit       jdk:sun jdk 1.6 64bit       hadoop:apache hadoop 1.02       hbase:apache hbase 0.92       先决条件:配置apache hadoop append,默认这个属性是false,需要设置为true Hbase安装及配置
  • 19. 2)配置hbase 前提是安装完成hadoop,默认在namenode上进行 1.修改conf/hbase-env.sh,添加jdk支持 export JAVA_HOME=/usr/local/jdk export HBASE_MANAGES_ZK=true export HBASE_LOG_DIR=/data/logs/hbase Hbase安装及配置
  • 20. 2)配置hbase 前提是安装完成hadoop,默认在namenode上进行 1.修改conf/hbase-env.sh,添加jdk支持 export JAVA_HOME=/usr/local/jdk export HBASE_MANAGES_ZK=true export HBASE_LOG_DIR=/data/logs/hbase Hbase安装及配置
  • 21. 2)配置hbase 前提是安装完成hadoop,默认在namenode上进行 1.修改conf/hbase-env.sh,添加jdk支持 export JAVA_HOME=/usr/local/jdk export HBASE_MANAGES_ZK=true export HBASE_LOG_DIR=/data/logs/hbase export JAVA_HOME=/hadoop/jdk1.7.0_45 export HBASE_MANAGES_ZK=true Hbase安装及配置
  • 22. /etc/profile
  • 23. 2. 修改conf/hbase-site.xml, hbase.rootdir hdfs://master:9000/hbase hbase.cluster.distributed true hbase.master hdfs://master:60000 Hbase安装及配置 hbase.zookeeper.quorum slave-001,slave-002,slave-003 hbase.zookeeper.property.dataDir /data/work/zookeeper .
  • 24. hbase.rootdir设置hbase在hdfs上的目录,主机名为hdfs的namenode节点所在的主机 hbase.cluster.distributed设置为true,表明是完全分布式的hbase集群 hbase.master设置hbase的master主机名和端口 hbase.zookeeper.quorum设置zookeeper的主机,建议使用单数
  • 25. 3.修改hadoop的目录下的conf/hdfs-site.xml dfs.datanode.max.xcievers 4096 4.修改conf/regionservers 将所有的datanode添加到这个文件,类似与hadoop中slaves文件 5.拷贝hbase到所有的节点 Hbase安装及配置
  • 26. 6. 启动hbase $ ./bin/start-hbase.sh 7 hbase自带的web界面 http://master:60010/ 8 测试 1).登录hbase客户端 ./bin/hbase shell Hbase安装及配置
  • 27. hive-env.sh HIVE_HOME=/hadoop/hive-0.9.0 HADOOP_HOME=/hadoop/hadoop-1.2.1 JAVA_HOME=/hadoop/jdk1.7.0_45 PATH=$JAVA_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jar export HADOOP_HOME export JAVA_HOME export HIVE_HOME export PATH export CLASSPATH Hive
  • 28. # HIVE HIVE_HOME=/hadoop/hive-0.9.0 HADOOP_HOME=/hadoop/hadoop-1.2.1 JAVA_HOME=/hadoop/jdk1.7.0_45 PATH=$JAVA_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jar export HADOOP_HOME export JAVA_HOME export HIVE_HOME export PATH export CLASSPATH Hive-config.xml
  • 29. (本页无文本内容)