CentOS 安装hadoop
来源:互联网 发布:宇宙战舰大和号 知乎 编辑:程序博客网 时间:2024/05/21 10:33
准备:CentOS6.4, Hadoop1.2.1, Java. 三台电脑Master, Slave01, Slave02.
- 关闭防火墙 su (root)
sudo service iptables stop #关闭iptables
sudo chkconfig iptables off # 永久关闭iptables - 配置Hostname
- vim /etc/hosts
#127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6
127.0.0.1 master localhost.localdomain localhost
::1 master localhost6.localdomain6 localhost6
158.132.11.122 master
158.132.11.195 slave01
158.132.11.176 slave02 - vim /etc/sysconfig/network
#NETWORKING=yes
#NETWORKING_IPV6=no
#HOSTNAME=localhost.localdomain
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master - 运行 hostname master
- 测试 hostname
- vim /etc/hosts
- 本地模式(local mode) 和伪分布式模式(Pseudo-distribution mode)
将hadoop-XXX-bin.tar.gz 分别传到home目录下 ( 注意,三台机器hadoop所在目录必须一致,因为master会登陆到slave上执行命令,master认为slave的hadoop路径与自己一样)- 编辑conf/hadoop-env.sh
cd hadoop-XXX
vim conf/hadoop-env.sh
export JAVA_HOME=/usr/java/XXXXX - 测试本地模式是否正常
$mkdir input
$cp conf/*.xml input
$bin/hadoop jar hadoop-examples-XX.jar grep input output 'dfs[a-z.]+'
$cat output/* - 配置伪分布式:
配置SSH无密码登陆本机
$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
修改sshd配置文件(root)
$sudo vim /etc/ssh/sshd_config 去掉注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启 sudo service sshd restart
$chmod 600 ~/.ssh/authorized_keys - 修改hadoop配置文件
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration> - 启动Hadoop,测试伪分布式模式
a) 格式化namenode
$ bin/hadoop namenode -format
b) 启动 Hadoop 后台进程
$ bin/start-all.sh
c) 现在可以用浏览器打开NameNode和JobTracker的web界面了。
NameNode - http://158.132.11.122:50070/
JobTracker - http://158.132.11.122:50030/
d) 数据拷贝到分布文件系统中
$ bin/hadoop fs -put conf input
如果这时出现 SafeModeException 异常,不用担心,等待几分钟即可。因为hadoop刚刚启动时,会进入安全模式进行自检。
e) 运行 Hadoop 自带的例子:
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
f) 查看文件输出
$ bin/hadoop fs -cat output/*
h) 当你做完了后,关闭 Hadoop:
$ bin/stop-all.sh
- 编辑conf/hadoop-env.sh
- 分布式模式 cluster setup
- 配置 master 无密码登陆到所有机器(包括master自己登陆自己)
首先在两台slave上修改sshd的配置文件,然后重启sshd服务。
sudo vim /etc/ssh/sshd_config 找到以下三行,并去掉注释符”#“
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改了配置文件需要重启sshd服务 $ sudo service sshd restart - 在两台slaves机器上新建 ~/.ssh 目录
$ mkdir ~/.ssh - 在master机器上执行:
#生成公钥
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
($ ssh-keygen -t rsa -P '' 或者这个 因为上面那个可能不能生成rsa.pub)
把公钥拷贝到所有机器上(包括自己)
# 拷贝到自己
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
# 拷贝到两台slaves机器上
$ scp ~/.ssh/id_rsa.pub dev@192.168.1.132:~/.ssh/authorized_keys
$ scp ~/.ssh/id_rsa.pub dev@192.168.1.133:~/.ssh/authorized_keys
修改 .ssh目录和authorized_keys 文件的权限 - #在三台机器上执行以下命令
$ chmod 600 ~/.ssh/authorized_keys
# 在两台 slaves 上执行以下命令
$ chmod 700 ~/.ssh
测试,看看 master 是否可以无密码登陆两台slave - #在 master执行
$ ssh 192.168.1.132
$ exit
$ ssh 192.168.1.133
$ exit
如果不需要密码,则说明配置成功了。
如果登陆不上,试试先关闭两台slaves的防火墙 $ sudo service iptables stop - 修改6个配置文件
在 master 上修改配置文件。
编辑 conf/hadoop-env.sh,设置 JAVA_HOME。
在master上编辑 conf/hadoop-env.sh,注释掉第8行的JAVA_HOME,设置正确的JDK位置,确保集群中所有机器的JDK都安装在这个位置,这样待会儿后面可以用scp命令把master的6个配置文件(hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml, masters, slaves)拷贝到所有slaves机器上,这样其他机器就不用重复进行配置了。
conf/masters:
master
conf/slaves:
slave01
slave02
这两个配置文件的作用是,指定131作为master, 132和133为 slaves。
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/dev/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/dev/hdfs/data</value>
</property>
</configuration>
要在master创建 /home/dev/hdfs/name 目录,在 slaves上创建 /home/dev/hdfs/data 目录,并chmod g-w /home/dev/hdfs/data(权限不对的话datanode无法启动)。
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration> - 将配置文件拷贝到所有slaves
$ cd ~/hadoop-1.1.2/conf/
$ scp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves dev@192.168.1.132:~/hadoop-1.1.2/conf/
$ scp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves dev@192.168.1.133:~/hadoop-1.1.2/conf/ - 运行 hadoop
在master上执行以下命令,启动hadoop
$ cd ~/hadoop-1.1.2/
#只需一次,下次启动不再需要格式化,只需 start-all.sh
$ bin/hadoop namenode -format
$ bin/start-all.sh - 检查是否启动成功
在master上执行:
$ jps
2615 NameNode
2767 JobTracker
2874 Jps
在一台slave上执行:
$ jps
3415 DataNode
3582 TaskTracker
3499 SecondaryNameNode
3619 Jps
在另一台slave上执行:
$ jps
3741 Jps
3618 DataNode
3702 TaskTracker
可见进程都启动起来了,说明hadoop运行成功。
- 配置 master 无密码登陆到所有机器(包括master自己登陆自己)
- 运行wordcount例子,进一步测试是否安装成功
- 将输入数据拷贝到分布式文件系统中:
$ cd ~/hadoop-1.1.2/
$ bin/hadoop fs -put conf input (这里我的程序有问题: put: Target input/conf is a directory) - 运行 Hadoop 自带的例子:
$ bin/hadoop jar hadoop-examples-*.jar wordcount input output
查看输出文件:
$ bin/hadoop s -ls output
$ bin/hadoop fs -cat output/part-r-00000
如果能看到结果,说明这个例子运行成功。 - 停止 hadoop集群
在master上执行:
$ bin/stop-all.sh
- 将输入数据拷贝到分布式文件系统中:
参考文献
http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504132.html 如何配置无密码登陆SSH
http://www.yanjiuyanjiu.com/blog/20130612/ 如何在centos上配置hadoop
http://developer.yahoo.com/hadoop/tutorial/module3.html#vmware-install Yahoo 的hadoop
- hadoop centos 安装
- centos安装hadoop注意
- CentOS 安装hadoop
- CentOS hadoop 的安装
- centos下安装hadoop
- CentOS下安装hadoop
- CentOS 安装 Hadoop 手记
- CentOS下安装hadoop
- centos 单机安装hadoop
- centos虚拟机安装hadoop
- centos hadoop环境安装
- Centos安装Hadoop出错
- CentOS安装Hadoop
- hadoop(1):centos 安装 hadoop & hive
- centos上安装hadoop过程
- centOS 安装 hadoop-2.2.0
- centOS 安装 hadoop-2.2.0
- centos下hadoop的安装
- toj2033 floyd算法 模板
- 黑马程序员--循环条件选择
- java进制转换
- toj3070 Encryption
- java中properties属性文件的读写修改操作
- CentOS 安装hadoop
- 戴尔CEO:我们将专注于企业 而非手机业务
- Android之@Override详解
- Leap Motion+ unity3D 初探(一): 手势控制object transform
- Struts的工作原理
- 详解iOS7升级细节:引领视觉革命
- poj 1777 Vivian's Problem
- 设计模式
- 创新工场笔试题----有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?