Hadoop安装
总述
hadoop安装是hbase安装的前提条件, hadoop的HDFS是hbase实际上存数据的地方, hbase是HDFS的封装
hadoop的节点分为2种: namenode,datanode ,2者安装是一样的, 文件完全一致, 只是启动的时候指定身份
datanode里面都配了namenode的地址, namenode本身配的也是自己的地址
配置有2种:
- 环境变量
2.hadoop安装目录里面
hadoop-env.sh 里面
jdk(JAVA_HOME不一定能自动取到,还是配下)
日志文件夹(也可以不配用默认
core-site.xml
Web属性配
name节点地址, 我们就写死一个地址
hdfs-site.xml
HDFS相关的属性:
namenode在硬盘上存储文件的位置
datanode在硬盘上存储文件的位置
安装目的
我们有3台机器,
准备一个做namenode, 这台服务器叫nn01
2个做datanode, 这2台服务器叫 dn01,dn02
如上文所述, 3个的配置是相同的, 如果nn01也想同时当datanode, 再按datanode的启动命令来启一次就行, 配置不用改
这是↓我让nn01 同时当datanode时, nn01作为namenode显示给我他的datanode列表
img安装前的准备工作
jdk要有(用8 )
建议jdk安装的位置和版本一样
防火墙都关掉
配置服务器名
- 配各机器里面的host 配其他服务器的ip
linux是 vim /etc/hosts里面
[图片上传失败...(image-d15d1a-1599721661695)]
2.配本机的名字 vim /etc/sysconfig/network
nn01为例↓, 其他2台也一样
[图片上传失败...(image-35bfaa-1599721661695)]
- 要重启生效
ssh免密登陆
3台服务器之间要能免密登陆
安装
步骤是这样:
1.nn01上单体安装, 启动用浏览器看到成功
2.nn01上成功的配置稍微改改, 改成分布式的
3.hadoop文件夹原样复制到dn01,dn01
4.完成 : nn01作为namenode启动, dn01,dn01 作为datanode启动
单体安装
得到文件夹 /usr/local/hadoop
-
下载Hadoop
https://archive.apache.org/dist/hadoop/core/hadoop-2.8.5/得到 hadoop 2.8.5 tar.gz
[图片上传失败...(image-d8d69e-1599721661695)]
因为我们准备安装最新 稳定版的hbase
-
解压, 放到 /usr/local/hadoop
tar zxvf hadoop-2.8.4.tar.gz
mv hadoop-2.8.4 hadoop
mv hadoop /usr/local
配置
环境变量
环境变量是一定要设定的,否则Hadoop会用默认的路径,比如用home目录去放日志,这样你的系统分区会很容易被占满,然后整个Hadoop集群就会宕掉,出现奇怪的问题,甚至机器也不正常
具体内容
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
因为↑安装目录在/usr/local/hadoop
source
让它生效
env|grep 环境变量名
` 验证一下
hadoop配置
在 /usr/local/hadoop/etc/hadoop/
hadoop-env.sh
-
jvm配置, 这是举个例子, 按服务器实际情况来
export HADOOP_NAMENODE_OPTS=" -Xms512m -Xmx512m -XX:+UseParallelGC"
-
日志文件夹
export HADOOP_LOG_DIR=/data/logs/hadoop
要文件夹保证存在
mkdir /data/logs
mkdir /data/logs/hadoop
core-site.xml
配web属性
<configuration> # 节点中增加name节点地址
<property>
<name>fs.defaultFS</name>
<value>hdfs://nn01:8020</value>
</property>
</configuration>
hdfs-site.xml
HDFS相关的属性 <configuration>
里面加
<!--配置项备份数-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--namenode在硬盘上存储文件的位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/hdfs/nn</value>
</property>
<!--datanode在硬盘上存储文件的位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/hdfs/dn</value>
</property>
<!-- 以上2个, 不管自己是name还是data节点都要配
保证以上配的2个目录存在-->
格式化namenode
hdfs namenode -format
这时候, 如果没配java环境会报错
启动单机模式看看
$HADOOP_PREFIX/sbin/start-dfs.sh
↑ 这里启动 没有写是namenode 还是 datanode 就是2者都是, 单机模式启动
检查启动情况
-
以上命令会打印出来 日志放哪里, 就是hadoop-env.sh配的日志文件夹里面 可以看看
-
jps命令检查一下datanode是否有启动
-
浏览器直接看看 http://nn01:50070/, 如果host没设 换成ip
[图片上传失败...(image-f7f2ba-1599721661695)]
看到这样就成功了!
关闭
$HADOOP_PREFIX/sbin/stop-dfs.sh
分布式
1. dn01 ,dn02 按nn01这样 单体成功
/usr/local/hadoop
直接移过来好了
2. 都关闭
$HADOOP_PREFIX/sbin/stop-dfs.sh
3. 清除单机模式留下来的数据
data节点
删除namenode数据
rm -rf /data/hadoop/hdfs/nn/current
删掉data数据
rm -rf /data/hadoop/hdfs/dn/current
nn节点
删掉datanode数据
rm -rf /data/hadoop/hdfs/dn/current
看成功
[图片上传失败...(image-53af8-1599721661695)]
启动
namenode
$HADOOP PREFIX/sbin/hadoop-daemon.sh --script hdfs start namenode
datanode
$HADOOP_PREFIX/sbin/hadoop-daemons.sh --script hdfs start datanode
关闭
$HADOOP PREFIX/sbin/hadoop-daemon.sh --script hdfs stop namenode
$HADOOP_PREFIX/sbin/hadoop-daemons.sh --script hdfs stop datanode
网友评论