共计 5522 个字符,预计需要花费 14 分钟才能阅读完成。
1、创建 Hadoop 用户【所有操作都是 root, 在所有 master 和 slaver 上】
1)、创建 hadoop 用户:adduser hadoop
2)、更换密码:passwd hadoop
====================================================================================
2、安装 jdk【所有操作都是 root, 在所有 master 和 slaver 上】
1)、将 jdk.tar.gz 解压到 /et/local/:tar –zxvf jdk.tar.gz
2)、配置 java 环境变量, 在 /etc/profile 中添加:
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin
3)、使环境变量有效:source /etc/profile
4)、测试 jdk 安装是否成功:java -version
====================================================================================
3、免密码登陆
1)、进入 hadoop 的家目录:su – hadoop【root】
2)、创建空密码登陆,在家目录的.ssh 文件夹下生成 id_rsa 和 id_rsa.pub 文件:ssh-keygen –t rsa –P ”【hadoop】
3)、把 id_rsa.pub 追加到授权 key 中[ 特别注意 : 如果没有修改 hostname,将 id_rsa.pub 中的 localhost 修改为 ip, 否则在 authorized_keys 中全部是 localhost]: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys【hadoop】
4)、[特别注意] 修改 authorized_keys 文件的权限为 600:chmod 600 ~/.ssh/authorized_keys【hadoop】
5)、使用 root 用户修改 /etc/ssh/sshd_config 文件:【root】
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
6)、重启 sshd:service sshd restart【root】
7)、验证是否 hadoop 能无密码登陆,使用 hadoop 用户:ssh localhost【hadoop, 在 slave 机器上重复 1 -7】
8)、把 master/slave 的公钥 scp 到所有 slave/master 上:scp id_rsa.pub hadoop@ip:~/【hadoop】
9)、将 master/slave 的公钥追加到 slave/master 的 authorized_keys 中:cat id_rsa.pub>>.ssh/authorized_keys【hadoop】
10)、验证无密码登陆:ssh ip【hadoop】
====================================================================================
4、安装 hadoop【所有操作都是 root, 在 master 上】
1)、下载 hadoop 代码到 /usr/local 下:wget http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.6.0.tar.gz
2)、解压缩:tar –zxvf hadoop-2.0.0.tar.gz
3)、修改文件夹名称:mv hadoop-2.0.0 hadoop
4)、修改权限:chown -R hadoop:hadoop hadoop
====================================================================================
5、配置 hadoop【在 master 上】
1)、创建存储临时文件 temp、data 和 name 节点数据的目录【hadoop】:
mkdir /usr/local/hadoop/temp
mkdir /usr/local/hadoop/dfs/data
mkdir /usr/local/hadoop/dfs/name
2)、配置 /usr/local/hadoop/etc/hadoop/core-site.xml:【hadoop】
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master 域名或者 master 的 ip:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/temp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
3)、配置 hdfs-site.xml:【hadoop】
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master 域名或者 master 的 ip:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
4)、生成 mapred-site.xml 文件:cp mapred-site.xml.template mapred-site.xml【hadoop】
5)、配置 mapred-site.xml:【hadoop】
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master 域名或者 master 的 ip:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master 域名或者 master 的 ip:19888</value>
</property>
</configuration>
6)、配置 yarn-site.xml:【hadoop】
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master 域名或者 master 的 ip:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master 域名或者 master 的 ip:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master 域名或者 master 的 ip:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master 域名或者 master 的 ip:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master 域名或者 master 的 ip:8088</value>
</property>
</configuration>
7)、配置 slaves 文件: 将 slaver 的 ip 直接放里面,一行一个【hadoop】
8)、将 /usr/loca/ 的整个 hadoop 目录 scp 到其他服务器的 /usr/local 下
9)、在所有机器上配置 hadoop 的系统环境变量:
export HADOOP_HOME=/usr/local/hadoop
export PATH=/usr/local/php/bin:/usr/local/sublime:$JAVA_HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$HADOOP_HOME/bin
10)、如果使用的是域名,需要在所有机器上修改 hostname 和 hosts【root】
hostname 修改:/etc/sysconfig/network,HOSTNAME= 域名
hosts 修改:/etc/hosts,ip 域名
11)、关闭所有机器的 防火墙:【root】
chkconfig iptables off
====================================================================================
6、启动并验证 hadoop 集群【在 master 服务器上,hadoop 用户】
1)、格式化 namenode【特别注意 是 hadoop 命令,不是 hdfs 命令,高版本用 hdfs 命令可能格式化不成功】: hadoop namenode -format
2)、启动 hdfs:sh /usr/local/hadoop/sbin/start-dfs.sh
3)、启动 yarn:sh /usr/local/hadoop/sbin/start-yarn.sh
4)、验证:jps 命令,看需要的服务启动起来没有
相关阅读:
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13