全部博文(2759)
分类: 云计算
2013-07-16 02:33:02
原文地址:hadoop环境搭建 作者:hbjxzl
新搭建的hadoop环境,使用起来还不错
1、修改主机信息
每个node节点需要修改/etc/hosts文件
192.168.1.xxx master
192.168.1.xxx node1
192.168.1.xxx node2
2、修改自动登录设置
每个节点均操作
ssh-keygen -t rsa
将生成的id_rsa.pub密码信息输入到authorized_keys
将所有节点的authorized_keys合并到一个文件中,然后把合并之后的文件覆盖到每个节点的.ssh目录下
每个节点赋予权限
chmod 644 ~/.ssh/authorized_keys
3、关闭防火墙
各机器加入iptables策略:
[master-/root]iptables -I INPUT -s 192.168.1.0/255.255.255.0 -j ACCPET
[master-/root]service iptables save
4、安装jdk
每个节点均操作,仅支持JDK1.6之上的版本
1、解压jdk文件,并且设置java_home和path环境变量
2、修改环境变量
编辑三台机器的/etc/profile,增加如下内容
export JAVA_HOME=/hadoop/jdk
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_HOME=/hadoop/hadoop
export HBASE_HOME=/hadoop/hbase
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin
[master-/hadoop]vi /hadoop/.bashrc
增加
export HADOOP_CONF_DIR=/hadoop/hadoop-config
export HBASE_CONF_DIR=/hadoop/hbase-config
5、安装hadoop
下载hadoop tar包
[master-/hadoop]tar -zxvf hadoop-0.20.2.tar.gz
[master-/hadoop]ln -s hadoop-0.20.2 hadoop
由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因 此将配置文件与安装目录分离,一种比较好的方法就是建立一个存放配置文件的目录,/hadoop/hadoop-config/,然后将 /hadoop/hadoop/conf/目录中的core-site.xml,slaves,hadoop-env.sh,masters, hdfs-site.xml,mapred-site.xml,这6个文件拷贝到 /hadoop/hadoop-config/目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在/root/.bashrc 中设定。
[master-/hadoop]mkdir /hadoop/hadoop-config
[master-/hadoop]cd /hadoop/hadoop/conf/
[master-/hadoop]cp core-site.xml slaves hadoop-env.sh masters hdfs-site.xml mapred-site.xml /hadoop/hadoop-config
6、修改hadoop环境变量
masters:
master
slaves:
slave1
slave2
#切忌不要创建:/hadoop/hadoop/tmp
hadoop-env.sh:
export JAVA_HOME=/hadoop/jdk
export HADOOP_PID_DIR=/hadoop/hadoop/tmp
core-site.xml:
#切忌不要创建:/hadoop/hadoop/name
[master-/hadoop]mkdir /hadoop/hadoop/data
hdfs-site.xml:
mapred-site.xml:
3、格式化namenode
[master-/hadoop]cd /hadoop/hadoop/bin
[master-/hadoop]./hadoop namenode -format
[master-/hadoop]cd /hadoop
[master-/hadoop]scp -r ./*
[master-/hadoop]scp -r ./*
到slave1和slave2上,分别重做软链接
[master-/hadoop]cd /hadoop
[master-/hadoop]rm -rf hadoop
[master-/hadoop]ln -s hadoop-0.20.2 hadoop
4、启动所有hadoop守护进程
[master-/hadoop/hadoop/bin]./start-all.sh
说明:
在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守护
[root@master bin]# jps
6813 NameNode
7278 Jps
7164 JobTracker
7047 SecondaryNameNode
出现4个这样的进程,且datanode没有error,同时访问ui正常才算成功。
ui: --web UI for HDFS name node(s)
--web UI for MapReduce job tracker(s)
--web UI for task tracker(s)
5、hdfs简单测试
[master-/hadoop/hadoop/bin]./hadoop dfs -mkdir testdir
[master-/hadoop/hadoop/bin]./hadoop dfs -put /root/install.log testdir/install.log-dfs
将/root/install.log 存储到hdfs中的testdir中,重命名为install.log-dfs
[master-/hadoop/hadoop/bin]./hadoop dfs -ls
[master-/hadoop/hadoop/bin]./hadoop dfs -ls testdir