第一次搭建Ubuntu:
本环境在自己的dellpc上,通过visualbox虚拟出三个centos7虚拟机搭建而成。
注意:
Visualbox网络设置为 桥接方式
Centos7安装选择server no deskptop
磁盘大一点,每个设置至少50G左右。
安装主要分以下几个步骤:
账号:root/000000
1、创建用户组
groupadd hadoop 添加一个组
useradd hadoop -g hadoop 添加用户
groupadd lyq
useradd lyq
2、jdk的安装
这里安装的版本是server-jre-7u21-linux-x64.gz,解压复制到/usr/java/
jdk安装好就要配置环境变量了,使用vi /etc/profile命令编辑添加如下内容:
JAVA_HOME=/usr/java/jdk1.7.0_21
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME PATH CLASSPATH
配置好之后要用命令source /etc/profile使配置文件生效,这样jdk就安装完毕了。
安装完之后不要忘了将所有者设置为hadoop。
使用命令chown -R hadoop:hadoop java/
3.hadoop的安装
hadoop的版本是hadoop-0.20.2.tar.gz,也把它解压到/opt目录(免编译安装的软件放在这个目录)下面,改名为hadoop。
hadoop也要设置环境变量,使用vi /etc/profile命令编辑添加如下内容:
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
同样也要执行source /etc/profile使配置文件生效,然后执行命令使用命令chown -R hadoop:hadoop hadoop/将其所有者改为hadoop
4、修改地址解析文件/etc/hosts,加入
192.168.6.110 master
192.168.6.111 slave1
192.168.6.112 slave2
5、修改hadoop的配置文件
首先切换到hadoop用户,su hadoop
①修改hadoop目录下的conf/hadoop-env.sh文件
加入java的安装路径export JAVA_HOME=/opt/java/jdk
②把hadoop目录下的conf/core-site.xml文件修改成如下:
安装介绍:
Web Interfaces
Once the Hadoop cluster is up and running check the web-ui of the components as described below:
Daemon |
Web Interface |
Notes |
NameNode |
Default HTTP port is 50070. |
|
ResourceManager |
Default HTTP port is 8088. |
|
MapReduce JobHistory Server |
Default HTTP port is 19888. |
来自 <http://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html>
关闭防火墙:
hadoop几种安装方式:
单机:下载解压就可以使用,命令行使用
伪分布:几个节点安装在同一个linux机器中。
完全分布
Master
Slave1
Slave2
Slave3
….
NameNode:
保存metadata信息(fsimage),permissions权限,block保存在datanode位置记录
Namenode是所有HDFS元数据的仲裁者和管理者,这样,用户数据永远不会流过Namenode。
SecondNameNode:辅助名称节点
DataNode
数据节点,3s一次发送心跳,报告磁盘健康状态
Jobtracker作业跟踪器
tasktracker:任务节点,完全分布至少两个task加一个namenode,3台服务器。
第二次搭建(Centos):
Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.5.0+Hbase-1.1.2+Hive-1.2.0集群搭建
磁盘太小,每个最大才配置8G,所以现在重新安装三台ubuntu-server。
本环境在自己的dellpc上,通过visualbox虚拟出三个CentOS7虚拟机搭建而成。
注意:
Visualbox网络设置为 桥接方式
主机子网掩码:255.255.255.0
默认网关:192.168.6.1
Centos7安装选择server no deskptop
磁盘大一点,每个设置至少50G左右。
安装主要分以下几个步骤:
1、创建用户组
root/000000
hadoop/123456
groupadd hadoop 添加一个组
useradd hadoop -g hadoop 添加用户
2、jdk的安装
检查是否内置jdk:
rpm -qa | grep java
卸载内置jdk:
rpm -qa | grep java | xargs rpm -e --nodeps
这里安装的版本是server-jre-7u21-linux-x64.gz,解压复制到/usr/java/
jdk安装好就要配置环境变量了,使用vi /etc/profile命令编辑添加如下内容:
JAVA_HOME=/usr/java/jdk1.7.0_21
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME PATH CLASSPATH
配置好之后要用命令source /etc/profile使配置文件生效,这样jdk就安装完毕了。
安装完之后不要忘了将所有者设置为hadoop。
使用命令chown -R hadoop:hadoop java/
3.hadoop的安装
文档:
http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/ClusterSetup.html
下载:
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
下载后解压到:/opt/hadoop-2.7.1
hadoop也要设置环境变量,使用vi /etc/profile命令编辑添加如下内容:
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
同样也要执行source /etc/profile使配置文件生效,然后执行命令使用命令chown -R hadoop:hadoop hadoop/将其所有者改为hadoop
4.1 设置主机名
vi /etc/sysconfig/network
master/slave1/slave2
4.2设置主机静态ip
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
static
192.168.6.160
service network restart
dns设置:
vim /etc/resolve.conf
nameserver 192.168.6.1
4.3 修改地址解析文件/etc/hosts,加入
Master |
192.168.6.160 |
Slave1 |
192.168.6.161 |
Slave2 |
192.168.6.162 |
192.168.6.160 master
192.168.6.161 slave1
192.168.6.162 slave2
4.4 关闭防火墙Iptables,关闭SElinux
service iptables status
chkconfig iptables off
CentOS7使用firewall防火墙替代了原来的,centos7开始使用systemctl来管理服务和程序,包括了service和chkconfig
查看防火墙状态:
firewall-cmd --state
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
getenforce
/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效
4.5 ssh配置,支持公钥连接
vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart
5、修改hadoop的配置文件(conf/*-site.xml)
首先切换到hadoop用户,su hadoop
①
hadoop-env.sh export JAVA_HOME=/opt/java/jdk
yarn-env.sh export JAVA_HOME=/usr/java/jdk
②conf/core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
hdfs-site.xml:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
mapred-site.xml:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
yarn-site.xml:
<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.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
Slaves:
ssh-keygen -t rsa
格式化namenode:
hadoop namenode -format
(第一次不执行,namenode不会启动)
g.启动hdfs集群
sh /opt/hadoop-1.1.1/sbin/start-all.sh
(Instead use start-dfs.sh and start-yarn.sh)
h.查看节点进程
Jps
Master(无tasktrack):
resourceManager
Slave:
NameNode info:
secondNamenode:
http://192.168.6.160:9001/status.html
All Applications
http://192.168.6.160:8088/cluster
运行测试:
hadooop fs -mkdir /input
本地文件存放到hdsf:
bin/hadoop fs -put ec/hadoop/core-site.xml /input
(hadoop fs -copyFromLocal /home/hadoop/*.py /input/wordcount)
执行,指定jar主类,输入,输出hdfs目录:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output
hadoop jar /home/hadoop/wordcount.jar com.PACKT.chapter1.WordCount /input/wordcount/ /output
查看数据:
bin/hadoop fs -ls /output
bin/hadoop fs -cat /output/part-r-00000
由于配置了环境变量,所以直接执行:
hadoop fs -put ec/hadoop/core-site.xml /input
更简便:
unalias fs &> /dev/null
alias fs="hadoop fs"
unalias hls &> /dev/null
alias shls ="fs -ls"
eclipse配置:
Hadoop-eclipse-plugin-2.7.3.jar插件,maven管理
集群包含三个节点,节点之间可以免密码SSH访问,节点IP地址和主机名分布如下:
序号 |
IP地址 |
机器名 |
类型 |
核数/内存 |
用户名 |
目录 |
1 |
192.168.0.61 |
hadoop1 |
NN/DN/RM Master/Worker |
1核/3G |
hadoop |
/opt程序所在路径 /opt/scala-... /opt/hadoop /opt/complied |
2 |
192.168.0.62 |
hadoop2 |
DN/NM/Worker |
1核/2G |
hadoop |
|
3 |
192.168.0.63 |
hadoop3 |
DN/NM/Worker |
1核/2G |
hadoop |
|
1.所有节点均是CentOS7 64bit系统,防火墙/SElinux均禁用,所有节点上均创建了一个hadoop用户,用户主目录是/home/hadoop,上传文件存放在/home/hadoop/upload文件夹中。
2.所有节点上均创建了一个目录/app用于存放安装程序,并且拥有者是hadoop用户,对其必须有rwx权限(一般做法是root用户在根目录下创建/app目录,并使用chown命令修改该目录拥有者为hadoop),否则hadoop用户使用SSH往其他机器分发文件会出现权限不足的提示
博客地址:http://blog.yoqi.me/?p=3716
这篇文章还没有评论