Hadoop 伪分布模式的安装
Hadoop 伪分布模式的安装
一 下载软件 安装环境:CentOS 6.4 X86_64 JDK 1.7.0_25 Hadoop 1.2.1Hadop下载地址:http://hadoop.apache.org/releases.html JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
二 SSH免密码登录 a.安装SSH服务 yum install ssh 安装SSH协议 yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件) service sshd restart 启动服务
b.配置 生成其无密码密钥对 ssh-keygen –t rsa –P ‘' 询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。 查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。 把id_rsa.pub追加到授权的key里面去 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys c.修改权限 在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。 修改文件"authorized_keys"权限 chmod 600 ~/.ssh/authorized_keys 用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容 vim /etc/ssh/sshd_config 修改如下的内容: RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥私钥配对认证方式 AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同) d.验证登录 退出root登录,使用hadoop普通用户验证是否成功 ssh localhost 注意:把公钥复制到其他的所有机器上,可以实现hadoop集群部署 scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/ scp ~/.ssh/id_rsa.pub hadoop@192.168.1.3:~/ 上面的命令是复制文件"id_rsa.pub"到服务器IP为"192.168.1.3"的用为"hadoop"的"/home/hadoop/“下面。 注意:1.文件夹".ssh"在配置SSH无密码登录时系统自动生成时,权限自动为"700",如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败,所以如果是手动创建.ssh文件夹的话应将其权限设置为700: chmod 700 ~/.ssh 2.在配置SSH需要注意两个权限:a.authorized_keys的权限600 b.ssh文件夹的权限700
三 配置JAVA a. 将下载后的java文件进行解压,然后将其放到相应的文件夹中 b. 配置java环境变量 以下命令都适用root用户进行操作 vim /etc/profile 在文件尾部添加以下内容 #set java environment export JAVA_HOME=/usr/java/jdk1.6.0_31 export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin 使配置生效 source /etc/profile c.验证 java -version
四 配置主机名字 a.主机名称的修改 查看当前主机的名称:hostname 修改当前主机的名称(使用root用户):vim /etc/sysconfig/network HOSTNAME=Master b.配置hosts文件 "/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。
我们要测试两台机器之间知否连通,一般用"ping 机器的IP",如果想用"ping 机器的主机名"发现找不见该名称的机器,解决的办法就是修改"/etc/hosts"这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。 修改hosts文件:vim /etc/hosts 192.168.2.175 Master 192.168.2.175 Slave 注:如果是集群搭建的话,可以书写不同的IP地址 c.测试连通性 ping Slave 五 配置Hadoop a.修改hadoop-env.sh文件,设置java环境 export JAVA_HOME=/usr/java/jdk1.6.0_31 b.配置core-site.xml
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://192.168.2.175:9000/</value>
- 默认的namenode的端口为8020
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/home/hadoop/hadoop/tmp</value>
- </property>
- </configuration>
- <configuration>
- <property>
- <name>dfs.name.dir</name>
- <value>/home/hadoop/hadoop/hdfs/name</value>
- </property>
- <property>
- <name>dfs.data.dir</name>
- <value>/home/hadoop/hadoop/hdfs/data</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- </configuration>
-
<property> - <name>mapred.job.tracker</name>
- <value>http://192.168.2.175:9001</value>
- </property>
- <property>
- <name>mapred.local.dir</name>
- <value>/home/hadoop/hadoop/mapred/local</value>
- </property>
- <property>
- <name>mapred.system.dir</name>
- <value>/tmp/hadoop/mapred/system</value>
- </property>
- </configuration>
f.配置/etc/profile文件 # set hadoop environment export HADOOP_HOME=/home/hadoop/hadoop export PATH=$PATH :$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_HOME_WARN_SUPPRESS=1 export HADOOP_PID_DIR=$HADOOP_HOME/run/tmp 这样就能直接使用"bin/hadoop"也可以直接使用"hadoop",现在不管哪种情况,hadoop命令都能找见了。我们也没有必要重新在设置hadoop环境变量了,只需要记住执行Hadoop命令时不需要在前面加"bin"就可以了。
d.测试hadoop 安装 hadoop version
六 启动应用
a.格式化hadfs hadoop namenode -format b. 启动hadoop start-all.sh 注:对于集群的环境,在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。 service iptables stop c.验证hadoop 用"jps”命令 jps 查看Hadoop集群的状态 hadoop dfsadmin -report d.网页查看 可以通过以下链接访问haddop服务了
localhost:50030/ for the Jobtracker localhost:50070/ for the Namenode localhost:50060/ for the Tasktracker
知识补充说明
hadoop-env.sh:用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;
core-site.xml: 用于定义系统级别的参数,它作用于全部进程及客户端,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;
hdfs-site.xml: HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;
mapred-site.xml:mapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;
masters: hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;
slaves:Hadoop集群的slave(datanode)和tasktracker的主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
评论暂时关闭