Hadoop集群的构建和安装
1.安装Java
$ yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
上述命令默认安装位置/usr/lib/jvm/java-1.8.0-openjdk
设置环境变量:
$ vim ./.bashrc export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:JAVA_HOME/bin
测试:
$ java -version
2.创建unix用户账号
HDFS,MapReduce,YARN通常作为独立的用户运行,分别命名为hdfs,mapred,yarn,都属于同一组hadoop。
3.hadoop的安装
CDH : http://archive-primary.cloudera.com/cdh5/cdh/5/ Hadoop : wget https://archive.apache.org/dist/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
步骤:
$ tar -zxf hadoop-2.x.x -C /usr/local $ cd /usr/local $ mv hadoop-2.x.x hadoop
设置环境变量:
$ vim ./.bashrc export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin $ source ./.bashrc
4. ssh配置
# 这一部分比较关键,因为我们是根据别名来连接slaves
master:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 确保公钥存放在用户所要连接的所有机器上(包括本机master)~/.ssh/authorized_keys
这里还有一个点,我们ssh连接slaves服务器时,想要使用slaves服务器的别名(hostname),
这就需要我们编辑/etc/hosts文件
$ vim /etc/hosts 192.168.31.111 data1 192.168.31.112 data2 192.168.31.113 data3 192.168.31.110 master
5.hadoop的配置
hadoop 各版本配置详见hadoop 官网对应版本的document或见hadoop文件配置
主要配置文件:
hadoop-env.sh:脚本中要用到的环境变量,以运行Hadoop。
mapred-env.sh:脚本中要用到的环境变量,以运行MapReduce。
yarn-env.sh:脚本中要用到的环境变量,以运行YARN。
core-site.xml:Hadoop Core配置项,例如HDFS,MapReduce和YARN常用的IO设置。
hdfs-site.xml:Hadoop守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml:MapReduce守护进程的配置项,包括作业历史服务器。
yarn-site.xml:YARN守护进程的配置项,包括资源管理器,web应用代理服务器,和节点管理器。
slaves:纯文本,运行datanode和节点管理器的机器列表。
https://hadoop.apache.org/docs/r2.5.2/ # 文档地址,各版本文档不同
6.hdfs的格式化
以hdfs用户身份运行以下命令
$ hdfs namenode -format
7.启动和停止守护进程
当然也可以start-all.sh。
# 以hdfs用户身份运行以下命令可启动HDFS守护进程 $ start-dfs.sh
start-dfs.sh 所做事情如下:
1. 在每台机器上运行一个namenode,这些机器由hdfs getconf -namenodes得到的返回值确定
2. 在slaves 文件所列举的每台机器上启动一个datanode
3. 在每台机器上启动一个辅助namenode,这些机器由hdfs getconf -secondarynamenodes得到的返回值确定
hadoop的集群是基于master/slave模式,namenode、ResourceManager、jobtracker属于master,datanode、NodeManager、tasktracker属于slave,master只有一个,而slave有多个
# yarn守护进程以相同的方式启动, # 以yarn用户身份在托管资源管理器的机器上运行 $ start-yarn.sh
在这种情况下,资源管理器总是和start-yarn.sh运行在同一机器上,脚本明确完成以下两件事:
1. 在本地机器上运行一个资源管理器ResourceManager
2. 在slaves文件列举的每台机器上启动一个节点管理器NodeManager
7. 创建用户目录
$ hadoop fs -mkdir /user/username $ hadoop fs -chown username:username /user/username # 给用户目录设置最大空间 $ hdfs dfsadmin -setSpaceQuota 1t /user/username