一、安装伪分布式hadoop

metadata

保存整个文件系统的元数据

元数据:整个文件系统的目录结构,每个目录有哪些文件,每个文件有哪些分块,每个分块保存在那个datanode上

namennode保存metadata,metadata会被调用到在内存中,为处理快速的“读请求”,由于metadata是非常重要的

数据所以它要在磁盘上有保存,当metadata中数据有变化的时候namenode会首先写editlog,同时将数据同步到磁盘,若写磁盘成功则会修改内存中的数据,并向客户端返回


1、hadoop 下载地址

http://mirror.bit.edu.cn/apache/hadoop/core/stable/


2、修改主机名,修改host配置文件

vi /etc/sysconfig/network

HOSTNAME=hadoop

vi /etc/hosts

172.30.82.61  hadoop

hostname hadoop


3、设置ssh

ssh-keygen -q -t rsa -N "" -f /root/.ssh/id_rsa

cd /root/.ssh/

cat id_rsa.pub >authorized_keys

chmod 600 authorized_keys


4、设置java环境

下载jdk

wget http://60.28.110.228/source/package/jdk-6u31-linux-i586.bin

#安装jdk

chmod +x  jdk-6u31-linux-i586.bin

./jdk-6u31-linux-i586.bin



5、创建用户useradd hadoop -M -s /sbin/nologin


tar -zxvf hadoop-1.2.1.tar.gz

mv hadoop-1.2.1 /data/program

mkdir -p /data/program/hadoop/hdfs/name

存放namenode元数据

mkdir -p /data/program/hadoop/hdfs/data

hadoop数据存放目录



chown -R hadoop:hadoop /data/program/hadoop


6、配置hadoop

cd /data/program/hadoop/hadoop-1.0.3/conf/


vi hadoop-env.sh

export JAVA_HOME=/data/program/jdk1.6.0_31

设置hadoop java环境


vi core-site.xml

<configuration>

       <property>

               <name>fs.default.name</name>

               <value>hdfs://hadoop:9000</value>

       </property>

</configuration>

<!--hadoop namenode 服务器地址和端口,以域名形式-->

乒乓!@#4


vi hdfs-site.xml

<configuration>

       <property>

               <name>dfs.replication</name>

               <value>1</value>

       </property>

<!-- 设置数据块保存的分数-->


       <property>

               <name>dfs.name.dir</name>

               <value>/data/program/hadoop/hdfs/name</value>

       </property>

<!--HDFS namenode p_w_picpath 文件保存地址-->


       <property>

               <name>dfs.date.dir</name>

               <value>/data/program/hadoop/hdfs/data</value>

       </property>

<!-- HDFS数据文件存储路径,可以配置多个不同的分区和磁盘中,使用,号分隔 -->


       <property>

               <name>dfs.http.address</name>

               <value>hadoop:50070</value>

       </property>

<!---HDFS Web查看主机和端口-->


</configuration>


vi mapred-site.xml

<configuration>

       <property>

               <name>mapred.job.tracker</name>

               <value>hadoop:9001</value>

       </property>

</configuration>

<!--JobTracker 主机和端口-->


7、启动、测试hadoop

/data/program/hadoop/bin/hadoop namenode -format

格式化文件

/data/program/hadoop/bin/hadoop-daemon.sh start namenode

/data/program/hadoop/bin/hadoop-daemon.sh start jobtracker

/data/program/hadoop/bin/hadoop-daemon.sh start datanode

/data/program/hadoop/bin/hadoop-daemon.sh start tasktracker

/data/program/hadoop/bin/hadoop-daemon.sh start secondarynamenode

启动服务

/data/program/hadoop/bin/hadoop-daemon.sh stop namenode

/data/program/hadoop/bin/hadoop-daemon.sh stop jobtracker

/data/program/hadoop/bin/hadoop-daemon.sh stop datanode

/data/program/hadoop/bin/hadoop-daemon.sh stop tasktracker

/data/program/hadoop/bin/hadoop-daemon.sh stop secondarynamenode

批量启动和关闭集群

/opt/modules/hadoop/hadoop-1.0.3/bin/start-all.sh

全部启动

/opt/modules/hadoop/hadoop-1.0.3/bin/stop-all.sh

全部关闭


http://hadoop:50070/ 验证hadoop是否正常启动



8、hadoop 报错处理


Format aborted in /data/program/hadoop/hdfs/name

13/08/19 19:30:54 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at hadoop/172.30.82.61

************************************************************/


/data/program/hadoop/bin/hadoop-daemon.sh start namenode

netstat -anlp | grep :50070 没有打开端口

产看日志

less hadoop-root-namenode-hadoop.log


2013-08-19 19:07:22,306 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.

java.io.IOException: NameNode is not formatted.


错误可能原因:

A、

/data/program/hadoop/hdfs  权限要设置正确

/data/program/hadoop/hdfs/name  /data/program/hadoop/hdfs/data;

name、data这两个文件不需要手动建,hadoop初始化会自动建立

B、

/etc/sysconfig/network 设置不正确

ssh 设置问题

/etc/hosts 设置问题

上述问题设置完成后重新启动网卡

ssh hadoop看是否可以不需密码连接