CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置
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日志记录停止完成"