总共11步
1上传解压
解压zip 文件:
unzip hadoop-2.8.1-windows.zip -d apps/
解压tar.gz文件:
tar -zxvf hadoop-2.8.1.tar.gz -C apps/
2修改hadoop-env.sh
cd apps/hadoop-2.8.1/etc/hadoop
Vi hadoop-env.sh
export JAVA_HOME=/root/apps/jdk1.8.0_141/
如下图所示:
这里怎样判断java所在的位置呢?
我后面一次安装Java显示位置是 usr/bin/java 其实这里的usr就等同于上面的/root/apps/jdk1.8.0_141/
3修改core-site.xml
Vi core-site.xml
输入下面语句
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000/</value>
</property>
如下图
4修改hdfs-site.xml
vi hdfs-site.xml
输入以下内容
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>
</property>
</configuration>
5拷贝到其他虚拟机里面去
scp -r hadoop-2.8.1/ hdp-02:/root/apps
6配置hadoop环境变量并初始化
配置:
Vi etc/profile
添加以下内容
export JAVA_HOME=/root/apps/jdk1.8.0_141
export HADOOP_HOME=/root/apps/hadoop-2.8.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效
source /etc/profile
初始化
hadoop namenode -format
7开启name节点
sbin/hadoop-daemon.sh start namenode
看java开启进程,起的类别等等
ps -ef | grep 4106
看占用的端口
netstat -nltp | grep 4106
分析:9000:客户端 50070:外部服务器
8打开外部端口
9开启datanode节点
sbin/hadoop-daemon.sh start datanode
注意启动hadoop-daemon的文件夹在sbin里面,不要搞错
10在一台上开启另外一台
ssh hdp-04 "/root/apps/hadoop-2.8.1/sbin/hadoop-daemon.sh start datanode"
11免密登录设置
ssh-keygen
ssh-copy-id hdp-01 (这里对于每一台都要设定)
编写脚本
cd apps/hadoop-2.8.1/etc/hadoop/
vi slaves
如下编辑
回到 cd sbin/里面去,输入如下命令,就可以控制所有的了
start-dfs.sh
stop-dfs.sh
存在的一些问题:
问题1:
比如开启主节点的datanode有数据,而子节点的datanode没有数据
问题2:
对第二个本机节点进行设置,却打不到关掉的目的
cd apps/hadoop-2.8.1/etc/hadoop/
vi hdfs-site.xml
添加如下
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-02:50090</value>
</property>
复制到每一台
scp hdfs-site.xml hdp-02:$PWD
问题3
只有主节点能够在网页里面显示,而子节点都不能,我上一次装也遇到这样的问题,我以为是namenode多次初始化的原因,并尝试了很多方法发现不是
有些文件夹你需要明白
etc:里面主要是我们用来进行环境变量的设置
logs:可以查看日志,比如某些namenode、datanode启动不了是非常有帮助的
sbin:找到这个文件夹然后执行开启namenode、datanode