CentOS的Hadoop集群配置(一)
2011-06-27 12:54
323 查看
参考资料:
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/
http://hadoop.apache.org/common/docs/current/cluster_setup.html
以下集群配置内容,以两台机器为例。其中一台是
master
,另一台是
slave1
。
master
上运行
name node, data
node, task tracker, job tracker
,
secondary name node
;
slave1
上运行
data node, task
tracker
。
前面加
*
表示对两台机器采取相同的操作
1.
安装
JDK
*
yum install
java-1.6.0-openjdk-devel
2.
设置环境变量
*
编辑
/etc/profile
文件,设置
JAVA_HOME
环境变量以及类路径:
export
JAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64"
export
PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
3.
添加
hosts
的映射
*
编辑
/etc/hosts
文件,注意
host name
不要有下划线,见下步骤
9
192.168.225.16 master
192.168.225.66 slave1
4.
配置
SSH
*
cd /root
& mkdir .ssh
chmod 700
.ssh & cd .ssh
创建密码为空的
RSA
密钥对:
ssh-keygen
-t rsa -P ""
在提示的对称密钥名称中输入
id_rsa
将公钥添加至
authorized_keys
中:
cat
id_rsa.pub >> authorized_keys
chmod 644
authorized_keys #
重要
编辑
sshd
配置文件
/etc/ssh/sshd_config
,把
#AuthorizedKeysFile
.ssh/authorized_keys
前面的注释取消掉。
重启
sshd
服务:
service
sshd restart
测试
SSH
连接。连接时会提示是否连接,按回车后会将此公钥加入至
knows_hosts
中:
ssh
localhost
5.
配置
master
和
slave1
的
ssh
互通
在
slave1
中重复步骤
4
,然后把
slave1
中的
.ssh/authorized_keys
复制至
master
的
.ssh/authorized_keys
中。注意复制过去之后,要看最后的类似
root@localhost
的字符串,修改成
root@slave1
。同样将
master
的
key
也复制至
slave1
,并将最后的串修改成
root@master
。
或者使用如下命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub
root@slave1
测试
SSH
连接:
在
master
上运行:
ssh slave1
在
slave1
上运行:
ssh master
6.
安装
Hadoop
下载
hadoop
安装包:
wget
http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz
复制安装包至
slave1
:
scp
hadoop-0.20.203.0rc1.tar.gz root@slave1:/root/
解压:
tar xzvf
hadoop-0.20.203.0rc1.tar.gz
mkdir /usr/local/hadoop
mv hadoop-0.20.203.0/* /usr/local/hadoop
修改
.bashrc
文件(位于用户目录下,即
~/.bashrc
,对于
root
,即为
/root/.bashrc
)
添加环境变量:
export
HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
7.
配置
Hadoop
环境变量
*
以下所有
hadoop
目录下的文件,均以相对路径
hadoop
开始
修改
hadoop/conf/hadoop-env.sh
文件,将里面的
JAVA_HOME
改成步骤
2
中设置的值。
8.
创建
Hadoop
本地临时文件夹
*
mkdir /root/hadoop_tmp
(注意这一步,千万不要放在
/tmp
目录下面!!因为
/tmp
默认分配的空间是很小的,往
hdfs
里放几个大文件就会导致空间满了,就会报错)
修改权限:
chown -R
hadoop:hadoop /root/hadoop_tmp
更松地,也可以这样:
chmod –R 777
/root/hadoop_tmp
9.
配置
Hadoop
修改
master
的
hadoop/conf/core-site.xml
,在
<configuration>
节中添加如下内容:
注意:
fs.default.name
的值不能带下划线
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop_tmp/hadoop_${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
<property>
<name>io.sort.mb</name>
<value>1024</value>
</property>
其中
io.sort.mb
值,指定了排序使用的内存,大的内存可以加快
job
的处理速度。
修改
hadoop/conf/mapred-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
其中
mapred.map.child.java.opts,
mapred.reduce.child.java.opts
分别指定
map/reduce
任务使用的最大堆内存。较小的内存可能导致程序抛出
OutOfMemoryException
。
修改
conf/hdfs -site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
同样,修改
slave1
的
/usr/local/hadoop/conf/core-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop_tmp/hadoop_${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
<property>
<name>io.sort.mb</name>
<value>1024</value>
</property>
修改
conf/mapred-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
修改
conf/hdfs
-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
10.
修改
hadoop/bin/hadoop
文件
把
221
行修改成如下。因为对于
root
用户,
-jvm
参数是有问题的,所以需要加一个判断
(
或者以非
root
用户运行这个脚本也没问题
)
HADOOP_OPTS="$HADOOP_OPTS
-jvm server $HADOOP_DATANODE_OPTS"
à
#for root, -jvm option is invalid.
CUR_USER=`whoami`
if [ "$CUR_USER" =
"root" ]; then
HADOOP_OPTS="$HADOOP_OPTS -server
$HADOOP_DATANODE_OPTS"
else
HADOOP_OPTS="$HADOOP_OPTS -jvm
server $HADOOP_DATANODE_OPTS"
fi
unset $CUR_USER
至此,
master
和
slave1
都已经完成了
single_node
的搭建,可以分别在两台机器上测试单节点。
启动节点:
hadoop/bin/start-all.sh
运行
jps
命令,应能看到类似如下的输出:
937 DataNode
9232 Jps
8811 NameNode
12033 JobTracker
12041
TaskTracker
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/
http://hadoop.apache.org/common/docs/current/cluster_setup.html
以下集群配置内容,以两台机器为例。其中一台是
master
,另一台是
slave1
。
master
上运行
name node, data
node, task tracker, job tracker
,
secondary name node
;
slave1
上运行
data node, task
tracker
。
前面加
*
表示对两台机器采取相同的操作
1.
安装
JDK
*
yum install
java-1.6.0-openjdk-devel
2.
设置环境变量
*
编辑
/etc/profile
文件,设置
JAVA_HOME
环境变量以及类路径:
export
JAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64"
export
PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
3.
添加
hosts
的映射
*
编辑
/etc/hosts
文件,注意
host name
不要有下划线,见下步骤
9
192.168.225.16 master
192.168.225.66 slave1
4.
配置
SSH
*
cd /root
& mkdir .ssh
chmod 700
.ssh & cd .ssh
创建密码为空的
RSA
密钥对:
ssh-keygen
-t rsa -P ""
在提示的对称密钥名称中输入
id_rsa
将公钥添加至
authorized_keys
中:
cat
id_rsa.pub >> authorized_keys
chmod 644
authorized_keys #
重要
编辑
sshd
配置文件
/etc/ssh/sshd_config
,把
#AuthorizedKeysFile
.ssh/authorized_keys
前面的注释取消掉。
重启
sshd
服务:
service
sshd restart
测试
SSH
连接。连接时会提示是否连接,按回车后会将此公钥加入至
knows_hosts
中:
ssh
localhost
5.
配置
master
和
slave1
的
ssh
互通
在
slave1
中重复步骤
4
,然后把
slave1
中的
.ssh/authorized_keys
复制至
master
的
.ssh/authorized_keys
中。注意复制过去之后,要看最后的类似
root@localhost
的字符串,修改成
root@slave1
。同样将
master
的
key
也复制至
slave1
,并将最后的串修改成
root@master
。
或者使用如下命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub
root@slave1
测试
SSH
连接:
在
master
上运行:
ssh slave1
在
slave1
上运行:
ssh master
6.
安装
Hadoop
下载
hadoop
安装包:
wget
http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz
复制安装包至
slave1
:
scp
hadoop-0.20.203.0rc1.tar.gz root@slave1:/root/
解压:
tar xzvf
hadoop-0.20.203.0rc1.tar.gz
mkdir /usr/local/hadoop
mv hadoop-0.20.203.0/* /usr/local/hadoop
修改
.bashrc
文件(位于用户目录下,即
~/.bashrc
,对于
root
,即为
/root/.bashrc
)
添加环境变量:
export
HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
7.
配置
Hadoop
环境变量
*
以下所有
hadoop
目录下的文件,均以相对路径
hadoop
开始
修改
hadoop/conf/hadoop-env.sh
文件,将里面的
JAVA_HOME
改成步骤
2
中设置的值。
8.
创建
Hadoop
本地临时文件夹
*
mkdir /root/hadoop_tmp
(注意这一步,千万不要放在
/tmp
目录下面!!因为
/tmp
默认分配的空间是很小的,往
hdfs
里放几个大文件就会导致空间满了,就会报错)
修改权限:
chown -R
hadoop:hadoop /root/hadoop_tmp
更松地,也可以这样:
chmod –R 777
/root/hadoop_tmp
9.
配置
Hadoop
修改
master
的
hadoop/conf/core-site.xml
,在
<configuration>
节中添加如下内容:
注意:
fs.default.name
的值不能带下划线
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop_tmp/hadoop_${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
<property>
<name>io.sort.mb</name>
<value>1024</value>
</property>
其中
io.sort.mb
值,指定了排序使用的内存,大的内存可以加快
job
的处理速度。
修改
hadoop/conf/mapred-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
其中
mapred.map.child.java.opts,
mapred.reduce.child.java.opts
分别指定
map/reduce
任务使用的最大堆内存。较小的内存可能导致程序抛出
OutOfMemoryException
。
修改
conf/hdfs -site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
同样,修改
slave1
的
/usr/local/hadoop/conf/core-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop_tmp/hadoop_${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
<property>
<name>io.sort.mb</name>
<value>1024</value>
</property>
修改
conf/mapred-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
修改
conf/hdfs
-site.xml
,在
<configuration>
节中添加如下内容:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
10.
修改
hadoop/bin/hadoop
文件
把
221
行修改成如下。因为对于
root
用户,
-jvm
参数是有问题的,所以需要加一个判断
(
或者以非
root
用户运行这个脚本也没问题
)
HADOOP_OPTS="$HADOOP_OPTS
-jvm server $HADOOP_DATANODE_OPTS"
à
#for root, -jvm option is invalid.
CUR_USER=`whoami`
if [ "$CUR_USER" =
"root" ]; then
HADOOP_OPTS="$HADOOP_OPTS -server
$HADOOP_DATANODE_OPTS"
else
HADOOP_OPTS="$HADOOP_OPTS -jvm
server $HADOOP_DATANODE_OPTS"
fi
unset $CUR_USER
至此,
master
和
slave1
都已经完成了
single_node
的搭建,可以分别在两台机器上测试单节点。
启动节点:
hadoop/bin/start-all.sh
运行
jps
命令,应能看到类似如下的输出:
937 DataNode
9232 Jps
8811 NameNode
12033 JobTracker
12041
TaskTracker
相关文章推荐
- CentOS6.4配置Hadoop-2.6.0集群配置安装指南
- CentOS系统下的Hadoop集群(第3期)_VSFTP安装配置
- Centos6.4 +Hadoop 1.2.1集群完全分布模式配置
- Hadoop集群(第1期)_CentOS安装配置
- Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS
- Hadoop集群(第1期)_CentOS安装配置
- Hadoop集群(第1期)_CentOS安装配置
- centos 6.3下安装Hadoop 2.7.1并配置伪分布式集群
- Hadoop集群(第1期)_CentOS安装配置
- Hadoop集群安装(四)--------CentOS基本配置
- CentOS系统下的Hadoop集群(第1期)_CentOS安装配置
- Hadoop集群安装(六)--------CentOS配置SSH无密码登录
- CentOS系统下Hadoop 2.4.1集群安装配置(简易版)
- Hadoop集群_CentOS安装配置
- 01_note_Hadoop集群2.8.1的安装配置, JDK安装, 免密码登录 (CentOS7)
- Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS
- Hadoop集群(第1期)_CentOS安装配置
- centos 6.3下安装Hadoop 2.7.1并配置伪分布式集群
- Centos7下Hadoop的配置(单机,伪分布式和集群)
- CentOS下安装与配置Ganglia监控Hadoop集群及HBase