`

Hadoop 2.x 安装配置(无HA用于开发测试)

 
阅读更多
前提
一、防火墙关闭
service iptables stop
chkconfig iptables off
二、SeLinux关闭
setenforce 0
vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled
 

操作系统

Hadoop可以同时支持在Linux和Windows系统下进行安装,但是在windows系统下没有进行过大量的测试,不稳定容易出现问题。因此,我们使用Linux系统进行安装。
在国内企业中使用最多的Linux系统是CentOS,笔者就使用CentOS的最新版6.5(写作时)进行安装。
Hosts的配置

映射配置

Hadoop通过域名来进行互相访问,通过修改/etc/hosts文件可配置本地域名映射关系,在hosts文件中添加计算机的域名(或叫别名)和IP的对应关系:
192.168.1.200 master
192.168.1.201 node1
192.168.1.202 node2
192.168.1.203 node3 

主机名配置

永久生效

修改/etc/sysconfig/network文件,将主机名改为相应主机名,如master.
HOSTNAME=master
注:ubuntu修改/etc/hostname
当系统重启后,主机名便会生效。

本次运行期间生效:

也可运行如下命令设置主机名,无须重启:
hostname master
 

添加用户和组(所有节点)

添加组

groupadd hadoop

添加用户

useradd hadoop -g hadoop
添加新的用户和组的作用为,使用独立的帐户保护hadoop文件,防止被其它用户修改。同时,还能防止程序修改其它帐户的文件。

配置文件个数(所有节点)

本次开机期间生效

ulimit -n 65535

永久生效

vi /etc/security/limits.conf
*    hard    nofile   65535
*    soft    nofile   65535

SSH和无密码登录(主节点到所有其它节点)

安装SSH客户端:

yum -y install openssh-clients

生成无密码的“公私钥”对:

su hadoop
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

把公钥分发给其它节点: 

scp -r ~/.ssh root@node1:/home/hadoop
node1:
chown -R hadoop:hadoop /home/hadoop/.ssh
chmod 700 /home/hadoop/.ssh
 以上为node1节点,node2、node3把上面的node1替换成相应的并执行便可。
 确认是否成功:
ssh master
ssh node1
ssh node2
ssh node3
注:上面所有节点使用相同的公钥和密钥,不太安全但方便。

JDK的安装与配置

运行Hadoop需要JDK1.6(也叫JDK6.0)以上,到www.oracle.com上进行下载。笔者在这里使用的是jdk-7u5-linux-i586.rpm,也就是JDK1.6的30更新版。
下面讲解JDK的安装与配置步骤:

一、安装

rpm –ivh jdk-7u5-linux-i586.rpm
ln –s /usr/java/jdk1.7.0_05 /usr/java/jdk
使用RPM包进行安装,rpm是centos和redhat的包管理机制。ln的作用是创建一个易记的JDK目录,便于配置。
JDK默认安装在/usr/java/jdk1.7.0_05下面。

二、配置

为了使用方便,我们对JDK的安装目录进行链接。
ln –s /usr/java/jdk1.6.0_30 /usr/java/jdk
然后,修改环境变量,在/etc/profile文件末中添加下面的内容:
JAVA_HOME=/usr/java/jdk
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
在命令行下输入source /etc/profile使用修改生效。
 

Hadoop的下载与解压

到hadoop.apache.org上下载Hadoop的安装文件,笔者使用的是 “hadoop-2.4.0.tar.gz”。
在发布式安装模式下,所有服务器Hadoop的安装目录需要一样。笔者安装的位置为/opt/hadoop,使用解压命令如下:
tar  -zxvf  hadoop-2.4.0.tar.gz  -C /opt/
#ln -s /opt/hadoop-2.4.0 /opt/hadoop
mv /opt/hadoop-2.4.0 /opt/hadoop
chown -R hadoop:hadoop /opt/hadoop
注:之所以用mv而不是ln是笔记不喜欢ls时很多项。

配置Hadoop

修改hadoop目录下 etc/hadoop/hadoop-env.sh的环境变量,在末尾添加:
export JAVA_HOME=/usr/java/jdk
export HADOOP_HEAPSIZE=2048
#export HADOOP_PID_DIR=/home/$USER/pids
注:HADOOP_HEAPSIZE用来配置JVM堆大小,可以根据实际情况而定。

core-site.xml

修改hadoop目录下etc/hadoop/core-site.xml的配置文件,在<configuration>标签中添加如下内容:
<property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/${user.name}/tmp</value>
</property>
<property> 
    <name>fs.trash.interval</name> 
    <value>1440</value> 
</property>
 
说明:
fs.defaultDFS:设置NameNode的IP和端口
hadoop.tmp.dir:设置Hadoop临时目录,(默认/tmp,机器重启会丢失数据!)
fs.trash.interval:开启Hadoop回收站
 

hdfs-site.xml

修改hadoop目录下conf/hdfs-site.xml的配置文件,在<configuration>标签中添加如下内容:
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/${user.name}/dfs_name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/${user.name}/dfs_data</value>
</property>
<property>
        <name>dfs.support.append</name>
        <value>true</value>
</property>
<property> 
        <name>dfs.datanode.max.xcievers</name> 
        <value>4096</value> 
</property>
 说明:
dfs.replication:文件复本数
dfs.namenode.name.dir:设置NameNode存储元数据(fsimage)的本地文件系统位置
dfs.datanode.data.dir:设置DataNode存储数据的本地文件系统位置
dfs.support.append:设置HDFS是否支持在文件末尾追加数据
dfs.datanode.max.xcievers:设置datanode可以创建的最大xcievers数

yarn-site.xml

修改hadoop目录下etc/hadoop/yarn-site.xml的配置文件,在<configuration>标签中添加如下内容:
 
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property> 
<property>
  <name>yarn.timeline-service.hostname</name>
  <value>master</value>
</property>
 注:属性名为mapred.job.tracker来配置job tracker交互端口,

mapred-site.xml

修改hadoop目录下etc/hadoop/mapred-site.xml的配置文件,在<configuration>标签中添加如下内容:
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
 
配置子节点:修改hadoop目录etc/hadoop/slave文件,每行一个节点,伪分布式修改内容为:
node1
node2
node3
 
scp -r /opt/hadoop root@node1:/opt/
node1上执行:
chown -R hadoop:hadoop /opt/hadoop
如此node2、node3……

 

执行

在使用一个分布式文件系统前需要对其进行格式化

./bin/hadoop namenode –format

启动Hadoop守护进程

./sbin/start-all.sh
Hadoop守护进程的日志写入到${HADOOP_LOG_DIR}目录(默认为logs下)。

完成全部操作后,若需停止Hadoop守护进程

$ sbin/stop-all.sh

验证集群

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.0.jar randomwriter out

Hadoop自带的WEB管理界面

浏览NameNode和JobTracker的WEB管理界面,它们的地址默认为:
   NameNode - http://master :50070/dfshealth.jsp
   Yarn - http://master:8088
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics