1. Hadoop安装包的下载和解压
基于apache原始厂商:https://archive.apache.org/dist/
基于Cloudera厂商的cdh本:http://archiveprimary.cloudera.com/cdh5/cdh/5/,
Cloudera有免费版和企业版,企业版只有试用期,不过cdh大部分功能都是免费的,使用解压命令将hadoop解压的目标文件夹。
2. Hadoop分布式集群配置_HDFS
安装HDFS需要修改4个配置文件:hadoop-env.sh,core-site.xml,hdfs-site.xml和slaves
2.1. 在hadoop-env.sh配置文件中配置JAVA_HOME
# The java implementation to use.
export JAVA_HOME=/opt/modules/jdk1.8.0_144
2.2. 在core-site.xml中配置默认的文件系统
<property>
<name>fs.defaultFS</name>
<value>hdfs://spark-node04.ouyang.com:9000</value>
</property>
2.3. 在hdfs-site.xml中配置文件的副本保存数量
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
2.4. 在slaves文件中配置三个datanode的节点的地址
node01.ouyang.com
node02.ouyang.com
node03.ouyang.com
2.5. 将修改好的hadoop发送到其他的服务器上
scp –r /export/servers/hadoop-2.7.4/ root@node01.ouyang.com:$PWD
2.6. 格式化HDFS文件系统
首次使用配置安装号HDFS系统之后,需要进行格式化,在Hadoop的namenode服务器的机器的顶级目录执行如下命令: ./bin/hdfs namenode –format
2.7. 启动HDFS
我们现在将一个节点上的HDFS文件系统配置完成和格式化完成了,接下来,我们启动HDFS文件系统
#启动namenode
./sbin/hadoop-daemon.sh start namenode
#启动datanode
./sbin/hadoop-daemon.sh start datanode
#启动之后可以在50070的web界面进行查看
3. Hadoop分布式集群配置_YARN
3.1. 在yarn-env.sh中配置JAVA_HOME
# some Java parameters
export JAVA_HOME=/opt/modules/jdk1.8.0_144
3.2. 在mapred-site.xml中配置资源调度框架是yarn
步骤一:修改mapred-site.xml.template为mapred-site.xml
步骤二:在mapred-site.xml中配置资源调度框架是yarn
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
步骤三:在mapred-site.xml中配置配置日志的UI界面(可以不配)
<property>
<name>mapreduce.jobhistory.address</name>
<value>node01.ouyang.com:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node01.ouyang.com:19888</value>
</property>
3.3. 在yarn-site.xml中设置资源调度的名称
#必配
<!--设置资源调度的名称-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
#选配
<!--设置resourcemanager的主机名称-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>spark-node04.ouyang.com</value>
</property>
<!--配置日志聚集-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>10000</value>
</property>
<!--配置resourcemanager的内存大小,保证不至于内存太小导致nodeManager挂掉-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8192</value>
</property>
<!--表示的是可以使用的虚拟cpu个数-->
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
</property>
3.4. 将修改好的配置文件分发到其他节点
scp -r hadoop/ node03.ouyang.com:$PWD
3.5. 启动yarn
#启动resourcemanager
./sbin/yarn-daemon.sh start resourcemanager
#启动nodemanager
./sbin/yarn-daemon.sh start nodemanager
#启动之后可以在8088的web界面进行查看
4. Hadoop环境变量配置
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-2.7.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
5. Hadoop的额外配置和集成测试
5.1. 在hdfs-site.xml设置为不检查权限
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
5.2. 在core-site.xml配置静态用户和存储目录
<!--配置静态用户-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!--修改存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.7.4/data/tmp</value>
</property>
5.3. 将修改好的配置文件分发到其他目录
scp -r hadoop-2.7.4/ spark-node05.ouyang.com:$PWD
scp -r hadoop-2.7.4/ spark-node06.ouyang.com:$PWD
5.4. 关闭Hadoop的所有应用并重新格式化
在hadoop的sbin目录下执行如下目录:
./stop-all.sh
由于我们修改了namenode的目录,因此,我们需要重新格式化namenode:
bin/hdfs namenode –format
一键启动hadoop的hdfs和yarn服务:
./start-all.sh
5.5. 测试HDFS
#创建目录
bin/hdfs dfs -mkdir -p /user/root/data/
#上传文件
bin/hdfs dfs -put /opt/datas/words.txt /user/root/data/
5.6. YARN集群运行MapReduce程序
cd /export/server/hadoop-2.7.4/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 20 50
6. 配置Hadoop一键启动和停止脚本
#一键启动脚本
echo "Hadoop开始启动"
ssh 192.168.12.121 "source /etc/profile;nohup sh ${HADOOP_HOME}/sbin/start-all.sh >/dev/null 2>&1 &"
echo "Hadoop启动完成"
echo "Hadoop日志记录开始启动"
ssh 192.168.12.121 "source /etc/profile;nohup sh ${HADOOP_HOME}/sbin/mr-jobhistory-daemon.sh start historyserver >/dev/null 2>&1 &"
echo "Hadoop日志记录启动完成"
#一键停止脚本
echo "Hadoop开始停止"
ssh 192.168.12.121 "source /etc/profile;nohup sh ${HADOOP_HOME}/sbin/stop-all.sh >/dev/null 2>&1 &"
echo "Hadoop停止完成"
echo "Hadoop日志记录开始停止"
ssh 192.168.12.121 "source /etc/profile;nohup sh ${HADOOP_HOME}/sbin/mr-jobhistory-daemon.sh stop historyserver >/dev/null 2>&1 &"
echo "Hadoop日志记录停止完成"