Hadoop HDFS 配置
环境:
Jdk1.6
Hadoop-2.20.1
Fuse-2.8.1
Jdk1.6 下载地址
hadoop-2.20.1 下载地址 http://www.apache.org/dyn/closer.cgi/hadoop/core/
Fuse-2.8.1 下载地址 http://sourceforge.net/projects/fuse/files/fuse-2.X/
NameNode 192.168.1.11 CentOS 5.3 hostname master-dfs
JobTracker 192.168.1.11 (这个也可单独配置一台)
DataNode 192.168.1.12 Centos 5.3 hostname:data-dfs
Client 192.168.1.13 Centos 5.3 hostname:client-dfs
先决条件
安装
1、JDK安装,解压到/usr/local/jdk1.6,并配置/etc/profile环境
export JAVA_HOME=/usr/local/jdk1.6
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
2、下载Hadoop 解压到每台服务器的/data/soft目录下,最好目录都相同。
tar zxvf hadoop-2.20.1.tar.gz
配置
配置说明
具体配置选项说明详见
1、修改conf/hadoop-env.sh,添加jdk支持
export JAVA_HOME=/usr/local/jdk1.6
2、cd /data/soft/hadoop-2.20.1 修改 hadoop 目录下的 conf/core-site.xml文件,增加以下内容
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://ws:54310</value> //你的namenode的配置,机器名加端口
</property>
<name>fs.default.name</name>
<value>hdfs://ws:54310</value> //你的namenode的配置,机器名加端口
</property>
<property>
<name>dfs.name.dir</name>
<value>/data/hdfs/hdfs1</value> //NameNode持久存储名字空间及事务日志的本地文件系统路径。
</property>
<property>
<name>dfs.data.dir</name> //DataNode存放块数据的本地文件系统路径,逗号分割的列表。
<value>/data/hdfs/hdfsdata1</value>
</property>
<name>dfs.name.dir</name>
<value>/data/hdfs/hdfs1</value> //NameNode持久存储名字空间及事务日志的本地文件系统路径。
</property>
<property>
<name>dfs.data.dir</name> //DataNode存放块数据的本地文件系统路径,逗号分割的列表。
<value>/data/hdfs/hdfsdata1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>>//Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。
<value>/data/hdfs/hdfstmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>dfs.replication</name> //数据需要备份的数量,默认是三
<value>1</value>
</property>
<name>hadoop.tmp.dir</name>>//Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。
<value>/data/hdfs/hdfstmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>dfs.replication</name> //数据需要备份的数量,默认是三
<value>1</value>
</property>
</configuration>
3、修改conf/mapred-site.xml 增加如下内容
<property>
<name>mapred.job.tracker</name> //JobTracker的主机(或者IP)和端口。
<value>ws:54311</value>
</property>
<name>mapred.job.tracker</name> //JobTracker的主机(或者IP)和端口。
<value>ws:54311</value>
</property>
4、配置/masters,修改conf//masters
master-dfs
修改hosts文件 vi /etc/hosts
192.168.1.11 master-dfs
192.168.1.12 data-dfs
192.168.1.13 client-dfs
192.168.1.12 data-dfs
192.168.1.13 client-dfs
5、配置slaves,修改conf/slaves
data-dfs
复制hadoop-2.20.1目录以及所有文件到DataNode 和Client
scp -rp /data/soft/hadoop-2.20.1 192.168.1.12:/data/soft
scp -rp /data/soft/hadoop-2.20.1 192.168.1.13:/data/soft
scp -rp /data/soft/hadoop-2.20.1 192.168.1.13:/data/soft
6、格式化Hdfs文件系统namenode,进入hadoop目录
[master@hadoop]$bin/hadoop namenode -format
不出意外,应该会提示格式化成功。如果不成功,就去hadoop/logs/目录下去查看日志文件。
7、启动Hdfs分布式文件系统
进入hadoop目录,在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
启动所有守护
[master@hadoop]bin/start-all.sh //会自动找到conf/slaves文件里的IP或者机器名,启动相应的slaves服务端
同样,如果要停止hadoop,则
[master@hadoop]$bin/stop-all.sh
同样,如果要停止hadoop,则
[master@hadoop]$bin/stop-all.sh
8、HDFS 操作
进入Hadoop目录,运行bin/目录的hadoop命令,可以查看Haoop所有支持的操作及其用法,这里以几个简单的操作为例。
建立目录
[master@hadoop]$bin/hadoop dfs -mkdir testdir
在HDFS中建立一个名为testdir的目录
复制文件
[master@hadoop]$bin/hadoop dfs -put /home/dbrg/large.zip testfile.zip
把本地文件large.zip拷贝到HDFS的根目录/user/dbrg/下,文件名为testfile.zip
查看现有文件
[master@hadoop]$bin/hadoop dfs -ls
在HDFS中建立一个名为testdir的目录
复制文件
[master@hadoop]$bin/hadoop dfs -put /home/dbrg/large.zip testfile.zip
把本地文件large.zip拷贝到HDFS的根目录/user/dbrg/下,文件名为testfile.zip
查看现有文件
[master@hadoop]$bin/hadoop dfs -ls
行hadoop程序时, 中途我把它终止了,然后再向hdfs加文件或删除文件时,出现
Name node is in safe mode错误:
rmr: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode
rmr: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode
解决的命令:
bin/hadoop dfsadmin -safemode leave #关闭safe mode
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20