您的位置:首页 > 运维架构

Hadoop 2.7.2集群安装配置

2016-08-12 16:10 417 查看

Hadoop 2.7.2集群安装配置

 
通常,集群里的一台机器被指定为NameNode,另一台不同的机器被指定为JobTracker,这些机器是masters。余下的机器即作为DataNode也作为TaskTracker,这些机器是slaves。slave节点的配置跟master节点是一样的。所以我们只要部署好master节点,slave节点等master节点配置好以后scp拷贝或者rsync同步到slave节点就可以了。

 

1、准备工作(安装必要的依赖项)

JAVA JDK1.7

1.    从官网http://www.Oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载tar.gz格式的,32位和64位机器对应下载。比如64位的下载的是jdk-7u51-linux-x64.tar.gz.
2.    解压到/usr/local目录 tar –jxvf jdk-7u51-linux-x64.tar.gz –C /usr/local
3.    编辑/etc/profile文件写入到系统环境变量:
#修改java运行环境
export JAVA_HOME=/usr/local/jdk1.7

export PATH=$PATH:$JAVA_HOME/bin
4.    修改完成后,使用source/etc/profile
命令进行更新;
5.    使用java -version命令判断是否安装成功版本号是否正确,在其他机器上同样安装JDK环境。
注意:由于可能会有默认的JDK,如openjdk,所以,为了将我们安装的JDK设置为默认JDK版本,还要进行如下工作。执行:
sudo update-alternatives --install/usr/bin/java java /usr/local/java1.7 /bin/java 300 

sudo update-alternatives --install/usr/bin/javac javac /usr/local/java1.7 /bin/javac 300 

执行以下命令,选择所需的版本。
sudo update-alternatives --configjava 

sudo update-alternatives --config javac
Hosts
所有的节点都需要修改/etc/hosts文件,使彼此之间都能够把主机名解析为ip地址,格式:
ip地址  主机名/域名  
(主机别名)
eg:    192.168.22.131   linux131     linux131
         192.168.22.137   linux137     linux137
SSH 无密码登陆
         首先要配置本机的SSH服务器,运行 ps -e | grep ssh,查看是否有sshd进程,如果没有,说明server没启动,通过
/etc/init.d/ssh -start 启动server进程,如果提示ssh不存在那么就是没安装server。Ubuntu下通过
sudo apt-get install openssh-server命令来安装。
(1)生成当前用户的SSH公钥:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
它在你当前登录的用户名下生成.ssh目录,.ssh下有id_ dsa和id_
dsa.pub。id_ dsa.pub即是本地SSH生成的公钥文件。客户端机器将id_ dsa.pub文件添加到自己的~/.ssh/authorized_keys文件中即可免密码登录到本机。
(2)将~/.ssh/id_ dsa.pub添加到目标机器的~/.ssh/authorized_keys文件中
•如果是本机的操作,则使用:
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
将要登录的机器的公钥添加到本地的认证密钥库中。注意这里必须要用>>操作符进行追加操作。
使用ssh localhost命令即可免密码登录到本地。
•如果是将自己的公钥发送到别的机器上。
可以使用类似下面的命令:
scp ~/.ssh/id_dsa.pub  root@172.24.253.2:~
这条scp命令进行文件上传操作。
然后cat ~/id_dsa.pub >>~/.ssh/authorized_keys
注意:上传过来的其他机器id_dsa.pub不能覆盖本机的此文件。

2、安装Hadoop

下载Hadoop
最新版本hadoop-2.7.2安装包为hadoop-2.7.2.tar.gz
下载官网地址 :http://www.apache.org/dyn/closer.cgi/hadoop/common/
下载到用户当前目录~中,并解压tar zxvf hadoop-2.7.2.tar.gz

1、配置Hadoop环境变量

方法一:vim /etc/profile
在末尾添加:
export JAVA_HOME=/usr/local/jdk1.7.0_25
export HADOOP_HOME=/data/xieguangjian/hadoop-2.7.2
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/:$HADOOP_HOME/bin:$PATH"
方法二:
也可以在hadoop-2.7.2文件夹的etc/hadoop下面的hadoop-env.sh和yarn-env.sh中配置JAVA_HOME路径.
添加:export JAVA_HOME=/usr/local/jdk1.7.0_25
注意:鉴于Hadoop默认的是32位系统,还需要加上64位支持:
exportHADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
exportHADOOP_OPTS="-Djava.library.path=$HADOOP_ HOME/lib"

2、配置Hadoop相关文件

core-site.xml:
该文件是 hadoop core的配置项,例如hdfs和mapreduce常用的i/o设置等,做如下配置:

1.   <configuration>  
2.     <property>  
3.        <name>fs.default.name</name>  
4.        <value>hdfs://localhost:9000</value>  
5.     </property>  
6.     <property>  
7.        <name>hadoop.tmp.dir</name>  
8.        <value>/data/xieguangjian/hadoop/hadoop-tmp</value>  
9.     </property>  
10.  </configuration>  

注解:
(1)fs.defaultFS
这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。
(2)hadoop.tmp.dir
是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中Hadoop的默认临时路径,这个最好配置,然后在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令了。
hdfs-site.xml:
该文件是 hadoop守护进程的配置项,包括namenode、辅助namenode和datanode等,做如下配置:

1.   <configuration>  
2.   <property>  
3.     <name>dfs.namenode.name.dir</name>  
4.     <value>file: /data/xieguangjian/hadoop/dfs/name</value>  
5.   </property>  
6.   <property>  
7.     <name>dfs.namenode.data.dir</name>  
8.     <value>file: /data/xieguangjian/hadoop/dfs/data</value>  
9.   </property>  
10.  <property>  
11.    <name>dfs.replication</name>  
12.    <value>3</value>  #系统默认文件保存3份,若为伪分布模式,改为1份.这一属性也可以不配,使用默认。
13.  </property>  
14.  </configuration>  

注解:
(1)dfs.namenode.name.dir这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。在实际应用中,它最好被覆盖掉。
(2)dfs.datanode.data.dir这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir,
这个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆盖。
 
下面配置可以参见:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/
mapred-site.xml,做如下配置:
这里没有这个文件,可以新建一个,或者直接修改mapred-site.xml.template
         <property>
       <name>mapreduce.framework.name</name>
        <value>yarn</value>
          <description>Execution framework set toHadoop
YARN.</description>
</property>
   <property> 

        <name>mapreduce.jobtracker.http.address</name> 

       <value>linux137:50030</value> 

    </property> 

    <property> 

       <name>mapreduce.jobhistory.address</name> 

       <value>linux137:10020</value> 

    </property> 

    <property> 

        <name>mapreduce.jobhistory.webapp.address</name> 

       <value>linux137:19888</value> 

    </property>
 
yarn-site.xml,如下配置:
         <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
</property>
   <property> 

       <name>yarn.resourcemanager.address</name> 

       <value>linux137:8032</value> 
    </property> 

    <property> 

       <name>yarn.resourcemanager.scheduler.address</name> 

       <value>linux137:8030</value> 
    </property> 

    <property> 

       <name>yarn.resourcemanager.resource-tracker.address</name> 

       <value>linux137:8031</value> 
    </property> 

    <property> 

       <name>yarn.resourcemanager.admin.address</name> 

       <value>linux137:8033</value> 
    </property> 

    <property> 

       <name>yarn.resourcemanager.webapp.address</name> 

       <value>linux137:8088</value> 
    </property>
 
slaves配置文件(DataNode的主机名):
linux131
linux137

3、启动集群

到Hadoop2.7.2目录下第一次需要格式化节点信息:
./bin/hdfs namenode –format
查看终端信息,若没有error应该就对了。
启动:
sbin/start-all.sh其实这条命令就是执行了:
sbin/start-dfs.sh和sbin/start-yarn.sh两步操作。
停止:
sbin/stop-all.sh或者 $ sbin/stop-dfs.sh$ sbin/stop-yarn.sh

4、运行测试

测试一下状态吧,检查一下进程是否启动jps命令:出现大概是:
然后再测试一下hadoop状态,
./bin/hadoop dfsadmin -report,出现大概是:
。。。
也可以浏览器进行查看:
http://192.168.22.137:50070 这是hdfs的页面。 http://192.168.22.137:8088 这是hadoop进程管理页面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: