主要内容
1, 编译 Hadoop 包;
2, 安装配置 Hadoop 集群
集群架构:(试验环境)
准备
1, 三个节点规模的虚拟机环境
2, 安装 JDK, maven, findbugs, protobuf, snappy
3, 下载好 hadoop 源码包
镜像地址: https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable2/
下载: hadoop-2.10.1-src.tar.gz
编译源码过程
tip: 为什么要编译源码包?
1, 由于 appache 给出的 hadoop 的安装包没有提供带 C 程序访问的接口,所以我们在使用本地库 (本地库可以用来做压缩,以及支持 C 程序等等)的时候就会出问题;
2, 不支持 snappy 的压缩;
1, 安装 JDK
环境变量设置:
exprot JAVA_HOME=/xxx
exprot PATH=:$JAVA_HOME/bin/:$PATH
复制代码
2, 安装 maven
步骤 1, 上传 apache-maven-3.0.5-bin.tar.gz 到虚拟机并解压
tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /opt/
mv apache-maven-3.0.5 maven3
步骤 2, 修改 maven 配置文件 settings.xml
创建目录, 用于保存 maven 下载的 jar 包:
mkdir /opt/maven3/mvRepository
修改 conf/settings 文件
vim /opt/maven3/conf/settings.xml
指定仓库目录
<localRepository>/opt/maven3/mvRepository</localRepository>
指定 maven 下载镜像地址(目的, 提高 maven 下载 jar 包的速度,这里采用阿里云镜像)
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
步骤 3, 修改环境变量
vi /etc/profile
exprot MAVEN_HOME=/opt/maven3
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
关闭profile文件
source /etc/profile
3, 安装 findbugs
步骤 1, 解压缩 findbugs-1.3.9.tar.gz;
tar -zxvf findbugs-1.3.9.tar.gz -C /opt/
步骤 2, 添加环境变量
export FINDBUGS_HOME=/opt/findbugs-1.3.9
export PATH=:$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
关闭profile文件
source /etc/profile
4, 安装其他依赖包
yum install autoconf automake libtool cmake
yum install ncurses-devel
yum install openssl-devel
yum install lzo-devel zlib-devel gcc gcc-c++
yum install -y bzip2-devel
5, 安装 protobuf
步骤 1: 解压
tar -zxvf ./protobuf-2.5.0.tar.gz -C /opt/
步骤 2: 编译
cd ./protobuf-2.5.0/
./configure
make && make install
6, 安装 snappy
步骤 1: 解压
tar -zxvf ./snappy-1.1.1.tar.gz -C /opt/
步骤 2: 编译
cd ./snappy-1.1.1/
./configure
make && make install
7, 编译 hadoop
mvn package
出现 build success
找到安装包 hadoop-xxx.tar.gz
步骤 1: 解压缩
步骤 2: 编译
mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X
Hadoop 安装过程
1, 上传源码包
上传到虚拟机 node1, 解压到自定义目录;
测试当前包的功能支持: bin/hadoop checknative
2, 修改配置文件
core-site.xml
指定文件系统类型: 分布式文件系统
指定文件存储目录
指定缓冲区大小
开启 hdfs 的垃圾桶机制
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop2/hadoopDatas/tempDatas</value>
</property>
<!-- 缓冲区大小,实际工作中根据服务器性能动态调整 -->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
复制代码
hdfs-site.xml
访问 SecondaryNameNode 的地址
访问主节点 NameNode 的地址和端口
指定 NameNode 存储元数据的存放位置
指定 DataNode 的存放位置
指定 NameNode 日志文件的存放位置
指定文件切片的副本个数
设置 hdfs 的权限: 关闭, 后期可以设置
设置一个文件切片 block 的大小: 128M
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50090</value> </property>
<property> <name>dfs.namenode.http-address</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/bigdata/hadoop2/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2</value> </property> <!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <property> <name>dfs.datanode.data.dir</name> <value>file:///opt/bigdata/hadoop2/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value> </property> <property> <name>dfs.namenode.edits.dir</name> <value>file:///opt/bigdata/hadoop2/hadoopDatas/nn/edits</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///opt/bigdata/hadoop2/hadoopDatas/snn/name</value> </property> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///opt/bigdata/hadoop2/hadoopDatas/dfs/snn/edits</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property></configuration>
复制代码
hadoop-env.sh
配置 JAVA_HOME
export JAVA_HOME=/opt/jdk7
mapred-site.xml
(通过模板任务来重命名一个)
开启 mapreduce 的小任务模式: ubertask.enable
设置 jobhistory.address 历史任务的主机和端口
设置通过网页来访问历史任务信息的主机和端口 webapp.address
<configuration>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
</configuration>
复制代码
yarn-site.xml
主节点 ResourceManager 的位置
开启日志的聚合功能: log-aggregation
设置聚合日志在 hdfs 的保存时间
设置 yarn 集群的内存分配方案
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
</configuration>
复制代码
mapred-env.sh
配置 JAVA_HOME
export JAVA_HOME=/opt/jdk7
复制代码
slaves
子节点有哪些
3, 创建必要的目录
在第一个节点创建必要的目录
mkdir -p /opt/bigdata/hadoop2/hadoopDatas/tempDatasmkdir -p
/opt/bigdata/hadoop2/hadoopDatas/namenodeDatasmkdir -p
/opt/bigdata/hadoop2/hadoopDatas/namenodeDatas2mkdir -p
/opt/bigdata/hadoop2/hadoopDatas/datanodeDatasmkdir -p
/opt/bigdata/hadoop2/hadoopDatas/datanodeDatas2mkdir -p
/opt/bigdata/hadoop2/hadoopDatas/nn/editsmkdir -p
/opt/bigdata/hadoop2/hadoopDatas/snn/namemkdir -p
/opt/bigdata/hadoop2/hadoopDatas/dfs/snn/edits
复制代码
将配置好的安装包, 分发到其余节点
cd /opt/bigdata/
scp -r hadoop2 node2:$PWD
scp -r hadoop2 node3:$PWD
复制代码
4, 配置环境变量
添加 HADOOP_HOME
export HADOOP_HOME=/opt/bigdata/hadoop2export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
复制代码
5, 启动集群
cd /opt/bigdata/hadoop2
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver
复制代码
6, 查看启动情况
http://node1:50070/explorer.html#/ 查看 hdfs
http://node1:8088/cluster 查看 yarn 集群
http://node1:19888/jobhistory 查看历史完成的任务
评论 (1 条评论)