`
yangbaba2000
  • 浏览: 30419 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop 安装部署

阅读更多
2台机器:master(192.168.110.223),slave1(192.168.110.222)
系统都为Centos 5
假设将master做为namenonde,将slave1做为datanode

1.在master:(在slave1上操作和以下相同)
vi /etc/hosts
192.168.110.223  master
192.168.110.222  slave1

2.用root登陆,建立hadoop用户
useradd hadoop
passwd hadoop
输入123456做为密码

3.配置SSH免密码登陆
  su - hadoop       #进入hadoop用户目录
  $ ssh-keygen -d  #建立.ssh目录(每台机器都需要),一路回车到底
  cd .ssh #进入ssh目录
ssh-copy-id -i id_dsa.pub hadoop@slave1
#将master上的公钥传到slave1的hadoop用户下,命名为authorized_keys
用hadoop用户进入slave1
ssh-copy-id -i id_dsa.pub hadoop@master
#将slave1上的公钥传到master的hadoop用户下,命名为authorized_keys
(如果改变了文件名字 需要用root用户修改/etc/ssh/ssh_config中的key:IdentityFile 和 /etc/ssh/ssh_config中的key:PubkeyAuthentication 默认的不需要修改 ,重启ssh服务service sshd restart )
测试是否可行 ssh hadoop@slave1 不用密码直接进入则成功

同样效果
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

4 安装JDK1.6 修改/etc/profile文件,如果可用root用户授权,应为profile为只读文件,用:chmod 777 profile 就可以修改了,在两台机器上都做如下操作。
## hadoop config
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
export JAVA_HOME=/usr/local/jdk6
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

#vi /home/hadoop/.bashrc
增加
export HADOOP_CONF_DIR=/hadoop/hadoop-config
export HBASE_CONF_DIR=/hadoop/hbase-config

5 配置hadoop的初始化文件
#tar -zxvf hadoop-0.20.2.tar.gz
#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 中设定。
#mkdir /hadoop/hadoop-config
#cd /hadoop/hadoop/conf/
#cp core-site.xml slaves hadoop-env.sh masters hdfs-site.xml mapred-site.xml /hadoop/hadoop-config/

修改6个文件
masters:
master

slaves:
slave1
slave2

#切忌不要创建:/hadoop/hadoop/tmp
hadoop-env.sh:
export JAVA_HOME=/usr/local/jdk6
export HADOOP_PID_DIR=/hadoop/hadoop/tmp

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://master:54310</value>
</property>
</configuration>

#切忌不要创建:/hadoop/hadoop/name
#mkdir /hadoop/hadoop/data
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>/hadoop/hadoop/name/</value> #hadoop的name目录路径    
</property>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/hadoop/data/</value> #hadoop的data目录路径
</property>
<property>
   <name>dfs.replication</name>
   <value>3</value>     #指定 HDFS 中每个 Block 被复制的次数,起数据冗余备份的作用。在典型的生产系统中,这个数常常设置为3
</property>
</configuration>

mapred-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>mapred.job.tracker</name>
   <value>hdfs://master:54311/</value>
</property>
</configuration>

7 开始启动hadoop
进入master的hadoop的bin目录./hadoop namenode -format 格式化namenode
./start-all.sh 启动hadoop
netstat -tnl查看50070,54310,50090端口是否启动

8 hadoop简单测试
#cd /hadoop/hadoop/bin
#./hadoop dfs -mkdir testdir
#./hadoop dfs -put /root/install.log testdir/install.log-dfs
将/root/install.log 存储到hdfs中的testdir中,重命名为install.log-dfs
#./hadoop dfs -ls
#./hadoop dfs -ls testdir
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics