Hadoop系列之hdfs(分布式文件系统)安装配置
环境介绍:
ip 节点
192.168.3.10 hdfs-master
192.168.3.11 hdfs-slave1
192.168.3.12 hdfs-slave2
1.在所有机器添加hosts
192.168.3.10 hdfs-master
192.168.3.11 hdfs-slave1
192.168.3.12 hdfs-slave2
#说明
//主机名不能带有下划线及一些特殊符号,不然将会有很多错误。
2.配置ssh无密码登录机器
在192.168.3.10操作如下:
/usr/bin/ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.3.10 #输入yes及输入192.168.3.10的root密码
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.3.11 #输入yes及输入192.168.3.11的root密码
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.3.12 #输入yes及输入192.168.3.12的root密码
ssh 192.168.3.10 #测试进入192.168.3.10是否不需要输入密码进去,如果不需要则表示无密码登陆成功.
ssh 192.168.3.11 #测试进入192.168.3.11是否不需要输入密码进去,如果不需要则表示无密码登陆成功.
ssh 192.168.3.12 #测试进入192.168.3.12是否不需要输入密码进去,如果不需要则表示无密码登陆成功.
3.在所有机器安装jdk软件及配置jdk环境
cd /root/soft
rpm -ihv jdk-7u51-linux-x64.rpm
3.1打开/etc/profile文件增加下面内容
export JAVA_HOME=/usr/java/default
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
3.2刷新环境变量
source /etc/profile
java -version #查看是否安装成功
4.在所有机器安装hadoop软件
4.1hadoop安装
mv /root/soft/hadoop-2.4.0.tar.gz /usr/local/
cd /usr/local/
tar zxvf hadoop-2.4.0.tar.gz
mv hadoop-2.4.0 hadoop
4.2打开/etc/profile文件增加下面内容环境变量
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
4.3刷新环境变量
source /etc/profile
4.4配置文件目录创建
mkdir -p /data/hadoop/{tmp,name,data,var}
5.在192.168.3.10配置hadoop
5.1配置hadoop-env.sh
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改export JAVA_HOME=${JAVA_HOME} 为export JAVA_HOME=/usr/java/default
5.2配置slaves文件
vim /usr/local/hadoop/etc/hadoop/slaves
#添加下面内容
hdfs-slave1
hdfs-slave2
5.3配置core-site.xml文件
vim /usr/local/hadoop/etc/hadoop/core-site.xml
#添加下面内容
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hdfs-master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
</configuration>
#说明
//fs.default.name是NameNode的URI。hdfs://主机名:端口/
//hadoop.tmp.dir:hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。
//不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
5.4配置hdfs-site.xml文件
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
#添加下面内容
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/data/hadoop/name</value>
<description> </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/data/hadoop/data</value>
<description> </description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
#说明
//dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
//dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错.(我这里只有2个datanode所以修改为2)
5.5配置mapred-site.xml文件
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
#添加下面内容
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs-master:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/data/hadoop/var</value>
</property>
</configuration>
#说明
//mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。其中/data/hadoop/var目录需要提前创建,并且注意用chown -R 命令来修改目录权限。
5.6配置yarn-site.xml文件
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
#添加下面内容
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
5.7同步hadoop配置文件到hdfs-slave1和hdfs-slave2
scp -r /usr/local/hadoop root@192.168.3.11:/usr/local/
scp -r /usr/local/hadoop root@192.168.3.12:/usr/local/
6.格式化分布式文件系统
#在192.168.3.10格式化hadoop
hdfs namenode -format
7.启动Hadoop集群
#在192.168.3.10启动hadoop
/usr/local/hadoop/sbin/start-all.sh
8.查看Master和slave进程状态
#在192.168.3.10查看Java进程情况:
[root@hdfs-master hadoop]# jps
8030 NameNode
8213 SecondaryNameNode
8615 Jps
8356 ResourceManager
#在其它几台DataNode从节点上,查看Java进程情况:
[root@hdfs-slave1 hadoop]# jps
2821 Jps
2702 NodeManager
2586 DataNode
注:各节点上进程都在的话,说明集群部署成功。
9.简单验证hdfs
#在192.168.3.10测试hdfs分布式存储:
//建立目录
hdfs dfs -mkdir /test
hdfs dfs -mkdir /test/01
//査看目录
[root@hdfs-master sbin]# hdfs dfs -ls /
drwxr-xr-x - root supergroup 0 2014-09-12 16:49 /test
//査看目录包括子目录
[root@hdfs-master sbin]# hdfs dfs -ls -R /
drwxr-xr-x - root supergroup 0 2014-09-12 17:01 /test
drwxr-xr-x - root supergroup 0 2014-09-12 17:01 /test/01
//添加文件
hdfs dfs -put /root/soft/aa.txt /test
[root@hdfs-master sbin]# hdfs dfs -ls -R /test
drwxr-xr-x - root supergroup 0 2014-09-12 17:01 /test/01
-rw-r--r-- 2 root supergroup 4 2014-09-12 17:07 /test/aa.txt
//获取文件
hdfs dfs -get /test/aa.txt /tmp/
[root@hdfs-master sbin]# ls /tmp/aa.txt
/tmp/aa.txt
//删除文件
hdfs dfs -rm /test/aa.txt
[root@hdfs-master sbin]# hdfs dfs -ls -R /test
drwxr-xr-x - root supergroup 0 2014-09-12 17:01 /test/01
//删除目录
hdfs dfs -rm -r /test/01
[root@hdfs-master sbin]# hdfs dfs -ls -R /
drwxr-xr-x - root supergroup 0 2014-09-12 17:13 /test
//修改文件所有者
hdfs dfs -chown -R root /test
//修改权限
hdfs dfs -chmod -R 700 /test
//通过网页查看整个集群的状态
http://192.168.3.10:50070
//通过命令查看整个集群的状态
10.关闭hadoop集群
#在192.168.3.10关闭hadoop
/usr/local/hadoop/sbin/stop-all.sh
注:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 这个警告一直没有解决,不过hdfs现在可以正常上传和下载,如果知道怎么解决的,可以跟我留言哈。
本文出自 “成都@阿状” 博客,请务必保留此出处http://azhuang.blog.51cto.com/9176790/1551782
原文地址:http://azhuang.blog.51cto.com/9176790/1551782