Hadoop搭建过程
前期环境搭建主要分为软件的安装与配置文件的配置,集成的东西越多,配置项也就越复杂。
Hadoop集成了一个动物园,所以配置项也比较多,且每个版本之间会有少许差异。
安装的方式有很多,各个版本lunix源的配置也不同,我才用的是直接下载tar包进行安装,这样的好处是版本容易控制。
下载软件:
官网下载时会标明相匹配的版本:
1、hadoop本体2.8.0
2、Scala,spark的原生语言,依赖于此环境
3、Spark,spark依赖hadoop的组件(忘了,单跑也可以)
系统环境:Ubuntu16.04
JRE环境:1.8(e)
配置jRE环境变量:
vim /etc/profile
最后加上,:是拼接的意思,拼接到path
export JAVA_HOME=/usr/jdk8/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
Java -version 成功
1、修改主机名
修改主机名,配置host,设置静态ip:
1.修改主机名:
主节点主机名称:Hadoop-host,IP地址:192.168.1.200
//由于搭建standalone测试,暂未配置子节点
Host:
修改/etc/host、hostname文件,注意请在host文件中一并添加hadoopnode1机器的IP地址。
192.168.1.200 Hadoop-host //192.168.1.201 hadoopnode1
::1 localhost
立即生效:sudo /etc/init.d/networking restart
Ip设置(e):
#sudo vim /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.117
gateway 192.168.0.1 #这个地址你要确认下网关是不是这个地址
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
dns-nameservers 8.8.8.8
2、关闭防火墙
原因:内部系统,不用考虑安全问题;各个节点之间的配合需要开放的环境。
乌班图ufw disable 其它版本的lunix好像是配置iptable关闭
配置免密码登录:公钥私钥。
ssh-keygen -t rsa -P “”
实现本地登录免密码登录,因为搭建的时候,我们做了对其他主机的免密码登录,但是本地ssh连接本地没有
所以,讲本地的公钥导入私钥就可以
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
非本地节点将非本地公钥导入私钥?
3、安装Hadoop
Tar -xvf 安装包名
Tip:解压x压缩z
解压后放入/usr/local/hadoop文件夹下。
创建hdfs以及其他组件需要的文件夹:
#mkdir tmp hadoop临时文件
#mkdir hdfs/name hdfsNODE
#mkdir hdfs/data hdfsDATA
配置环境变量:
vim /etc/profile
加入:
export HADOOP_HOME=/usr/hadoop/hadoop-2.8.0
export PATH=$PATH:$HADOOP_HOME/bin
Source,立即生效
现在执行hadoop version 查看安装是否成功。
4、配置Hadoop
主要是几个配置文件:
A:hadoop-2.8.0/etc/hadoop/hadoop-env.sh
配置vim hadoop-env.sh文件 添加JAVA_HOME位置
source立即生效
B:hadoop-2.8.0/etc/hadoop/yarn-env.sh -此版本没有
C:hadoop-2.8.0/etc/hadoop/core-site.xml
D:hadoop-2.8.0/etc/hadoop/hdfs-site.xml
E:hadoop-2.8.0/etc/hadoop/mapred-site.xml
F:hadoop-2.8.0/etc/hadoop/yarn-site.xml
1、=========core-site.xml
<configuration>
刚才新建的临时文件目录位置:
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
<final>true</final>
<description>A base for other temporary directories.</description>
</property>
Hdfs地址与端口
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.200:9000</value>
<!-- hdfs://Master.Hadoop:22-->
<final>true</final>
</property>
缓存文件的大小
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
2===========hdfs-site.xml
<configuration>
Hdfs节点个数
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
刚才建立的目录
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
刚才建立的目录
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>
第二节点的位置???
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-host:9001</value>
</property>
开启网络模式???
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
许可,权限???
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
3、mapred-site.xml
//mapreduce通过yarn配置(Hadoop 资源管理器)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4、yarn-site.xml
这个文件配置好各自的端口就行
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop-host:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop-host:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop-host:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop-host:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop-host:18141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
5、初始化
hadoop namenode -format
17/09/13 05:01:45 INFO common.Storage: Storage directory /usr/local/hadoop-2.8.0/hdfs/name has been successfully formatted.
17/09/13 05:01:45 INFO namenode.FSImageFormatProtobuf: Saving image file /usr/local/hadoop-2.8.0/hdfs/name/current/fsimage.ckpt_0000000000000000000 using no compression
17/09/13 05:01:45 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/hadoop-2.8.0/hdfs/name/current/fsimage.ckpt_0000000000000000000 of size 321 bytes saved in 0 seconds.
17/09/13 05:01:45 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
17/09/13 05:01:45 INFO util.ExitUtil: Exiting with status 0
17/09/13 05:01:45 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at Hadoop-host/127.0.1.1
************************************************************/
启动 sudo sbin/start-all.sh
输入http://localhost:50070/ 查看运行情况。