hadoop集群配置

先决条件:必须保证集群的及其在同一个IP 段,否则无法创建集群

准备

0.以下将以node1、node2两台服务器为例搭建一个集群,以node1为主节点,将namenode等安装在node1上,datanode安装在node1、node2

1.安装java,设置JAVA_HOME

sudo apt-get install sun-java6-jdk1.2.3

2.设置ssh,保证主节点可以不要密码登录其他节点

sudo apt-get install ssh 

在主节点生成密钥队,并将公钥复制到其他节点

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub node2:~/.ssh

在各节点节点上执行(包括node1)

cd ~/.ssh; cat id_rsa.pub >> authorized_keys

然后ssh登录各节点测试,保证无需密码即可登录

安装hadoop

1.安装hadoop 

wget http://apache.mirrors.tds.net/hadoop/common/stable/hadoop-2.5.1.tar.gz
tar -xzf hadoop-2.5.1.tar.gz

2.配置,在主节点修改以下配置,并拷贝到其他节点

namenode配置  conf/masters/core-site.xml

将node1设置为namenode节点

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<configuration>
<property>
 <name>fs.default.name</name>
  <value>hdfs://node1:49000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
 <value>/home/hadoop/hadoop_home/var</value>
</property>
</configuration>

hdfs配置  conf/masters/hdfs-site.xml

<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/name1, /home/hadoop/name2</value> #hadoop的name目录路径
<description>  </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data1, /home/hadoop/data2</value>
<description> </description>
</property>
<property>
  <name>dfs.replication</name>
  <!-- 不能多于节点数量-->
  <value>2</vaue>
</property>
</configuration>

master节点配置,将node1配置为master,conf/masters/masters

node1

slave节点配置,将node1、node2配置为slave,conf/masters/slaves

node1
node2

3 启动服务

NameNode上格式化一个文件系统

./bin/hadoop namenode -format

启动所有节点

./sbin/start_all.sh

也可以使用./sbin/start_hdfs.sh 单独启动hdfs

使用./sbin/stop_all.sh 关闭所有节点

4.查看服务运行情况

可以在http://node1:50070 查看运行情况

使用以下命令在文件系统中创建文件

./bin/hdfs dfs -ls /   #列出根目录下的文件
./bin/hdfs dfs -mkdir /user   #创建/user
./bin/hdfs dfs -mkdir /user/hadoop   #创建hadoop用户的home目录
./bin/hdfs dfs -ls   #列出home目录下的文件
./bin/hdfs dfs -put test   #将test文件放入home目录下 将本地文件./test 放入hdfs  ~/目录
./bin/hdfs dfs -cat test    #查看/user/hadoop/test

5.添加节点

在新节点上安装hadoop后,在namenode上将新节点地址加入到slaves配置中,并将namenode上的配置文件拷贝一份到新节点,然后在namenode上使用start-all.sh启动服务

HDFS常用操作

hadoop dfs -ls 列出HDFS下的文件
hadoop dfs -ls in
列出HDFS下某个文档中的文件
hadoop dfs -put test1.txt test
上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功
hadoop dfs -get in getin
HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录
hadoop dfs -rmr out
删除指定文件从HDFS
hadoop dfs -cat in/*
查看HDFSin目录的内容
hadoop dfsadmin -report
查看HDFS的基本统计信息,结果如下
hadoop dfsadmin -safemode leave
退出安全模式
hadoop dfsadmin -safemode enter
进入安全模式

超时时间配置

某节点down之后,集群系统需要在一定时间内确认该节点失效,可以在hdfs_site.xml中配置

<!-- 超时检测 timeout = interval (ms) * 2 + 10 * interval.heartbeat (s) -->

<property>

<name>heartbeat.recheck.interval</name>

<value>5000</value>

</property>

<property>

<name>dfs.heartbeat.interval</name>

<value>3</value>

</property>

原文地址:https://www.cnblogs.com/stormli/p/hadoop.html