一、安装伪分布式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看是否可以不需密码连接