hdfs集群安装与配置
准备
1.1创建新用户
sudo useradd hadoop //新建hadoop用户
sudo passwd hadoop //输入密码
sudo vi /etc/sudoers //添加hadoop的sudo权限; 新增一行:hadoop ALL=(ALL) ALL
1.2安装JAVA
下载 java 包,jdk1.6 以上
有很多下tar.gz 包的不能正常安装,建议用apt-get 或者下载bin 格式的安装包。
2.配置hosts与hostname
sudo vi /etc/hosts
编辑内容:
192.168.1.80 ns(主机名,尤其是namenode,不能包含下划线)
192.168.1.81 ds1
192.168.1.82 ds2
192.168.1.83 ds3
192.168.1.84 ds4
192.168.1.85 ns2
所有节点均按以上配置
修改各结点上的主机名:
hostname ns(临时生效,可通过修改/etc/hostname)
其它结点也和上面hosts中的主机名配置保持一致
3.安装配置ssh
3.1 ssh安装略
3.2 ssh配置:
在ns上:
ssh-keygen –t rsa
一直按回车使用默认配置
将ns上的公钥拷贝到ns2和各个ds:
scp ~/.ssh/id_rsa.pub hadoop@target:~/master_key
在除ns外的节点上:
mkdir ~/.ssh
chmod 700 ~/.ssh
cat ~/master_key >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
尝试从ns用ssh连接其它节点,如果不需要输入密码则配置成功
4.安装hadoop
4.1解压并创建必要目录
(所有节点操作和配置均相同)
获取包hadoop-1.0.3.tar.gz至/home/hadoop
su hadoop
cd ~
tar zxvf hadoop-1.0.3.tar.gz
cd hadoop-1.0.3
mkdir data
mkdir tmp
chmod 755 data
4.2 配置各个节点角色
(masters 和 slaves 这两个配置文件可以只在ns上编辑配置)
vi ~/hadoop-1.0.3/conf/masters
编辑内容:
ns2
#这里ns2代表secondnamenode 的hostname
vi ~/hadoop-1.0.3/conf/slaves
编辑内容:
ds1
ds2
ds3
ds4
#以上的为各个datanode的hostname
4.3配置hadoop-env.sh、hdfs-site.xml和core-site.xml
(所有节点操作和配置均相同)
vi ~/ hadoop-1.0.3/conf/hadoop-env.sh
修改内容:
export JAVA_HOME=/usr/lib/jvm/java-1.6.0
#以上环境变量要设置为系统java的安装路径
vi ~/hadoop-1.0.3/conf/hdfs-site.xml
编辑内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop-1.0.3/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-1.0.3/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>1000</value>
</property>
<property>
<name>dfs.datanode.handler.count</name>
<value>1000</value>
</property>
<property>
<name>dfs.client.block.write.retries</name>
<value>10</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>2560000</value>
</property> </configuration>
vi ~/hadoop-1.0.3/conf/core-site.xml
编辑内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://ns:9000/</value> //ns代表namenode的hostname
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-1.0.3/tmp</value>
</property>
<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>3000000</value>
</property>
<property>
<name>dfs.socket.timeout</name>
<value>3000000</value>
</property>
</configuration>
4.4配置/etc/profile
(所有节点操作和配置均相同)
配置 /etc/profile (配置完后输入source /etc/profile 生效),添加:
export JAVA_HOME=/java的安装路径
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/home/hadoop/hadoop20/
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
5.启动hdfs
5.1格式化namenode
hadoop namenode –format
5.2启动hdfs
start-dfs.sh
5.3检测是否成功启动
(1)在各个节点上执行jsp,观察是否都有对应的hdfs进程(namenode、secondarynamenode、datanode)
(2)在namenode上执行:hadoop fsck /
检查hdfs状态
(3)在namemode上执行:hadoop dfsadmin –report
查看hdfs文件系统信息,包括空间容量和已用空间
(4)hadoop fs –ls /
查看hdfs根目录下所有文件
hadoop fs –put localfile /hdfsfile
将本地文件系统上localfile文件拷贝到hdfs根目录下hdfsfile文件
如果有提示“hdfs is in safemode”,执行:hadoop dfsadmin –safemode leave
常用命令:
hadoop –fs rm /file
stop-all.sh