安装Hadoop步骤Linux
上传jar包jdk和hadoop包,首先解压jar包tar -zxvf(jar包名) -c /opt/module/
接着解压hadoop包tar -zxvf(hadoop包名) -c /opt/module
配置java环境变量:进入jdk之后通过pwd拿到jdk的绝对路径,进入配置文件sudo vi /etc/profile,进入最后一行配置JAVA_HOME,
全局变量 export JAVA_HOME=<jdk的绝对路径> export PATH=$PATH:$JAVA_HOME/bin 之后执行java确认安装完成
配置hadoop环境变量: 进入hadoop拿到绝对路径,进入配置文件sudo vi /etc/profile,进入最后一行配置HAOOD_HOME,全局变量
export HADOOP_HOME=<jdk的绝对路径> export PATH=$PATH:$HADOOP/bin export PATH=$PATH:$JAVA_HOME:/sbin
之后通过source /etc/profile 使配置文件生效,之后执行hadoop确认安装完成
配置集群:
创建一个bin目录,进入创建一个-rwx可执行文件xsync,进入编辑脚本文件
#!/bin/bash 表示是一个脚本
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$# 代表获取执行文件后面的参数个数
if((pcount==0)); then
exit;
fi
#2 获取文件名称
p1=$1
fname= basename $p1
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=cd -p $(surname $p1); pwd
echo pdir=$pdir
#4. 获取当前用户名称
user= whoami
#5. 循环
for(host=103; host<105; host++); do
echo- - - - - - - - hadoop$host- - - - - - - -
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
测试分发脚本xsync bin/
集群部署规则:
hadoop102 hadoop103 hadoop104
HDFS NameNode SecondaryNameNode
DateNode DateNode DateNode
YARN NodeManager NodeManager NodeManager
ResourceManager
集群配置文件:
(1,)进入hadoop文件下,进入etc/hadoop下,进入vi core-site.xml然后来到19行,
在<configuration>中配置
<!- - 指定HDFS中NameNode的地址- ->
<property>
<name>fs.defaultFs</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!- - 指定hadoop运行是产生的存储目录,但是如果内存不够,会优先删除这个目录存储的东西- ->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
(2,)hdfs配置两个文件,首先进入vi hadoop-env.sh配置环境 找到export JAVA_HOME=<jdk的全路径>路径修改成自己安装的jdk路径
接着进入vi hdfs-site.xml配置,找到<configuration>把配置信息放入中间,
<property>
<name>dis.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
(3,)yarn配置配置两个文件,首先进入vi yarn-env.sh配置 找到export JAVA_HOME=<jdk的全路径>路径修改成自己安装的jdk路径
之后进入vi yarn-site.xml配置 找到<configuration>把配置信息放入中间,
<!- - 获取数据的方式- ->
<property>
<name>yarn,nodemanager.aux-services</name>
<value>mapreduce shuffle</value>
</property>
<!- - 指定yarn的ResourceManager的地址- ->
<property>
<name>yarn-resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
(4,)mapreduce配置两个文件,进入vi mapred-env.sh配置 找到export JAVA_HOME=<jdk的全路径>路径修改成自己安装的jdk路径
之后首先把 通过 mv mapped-site.xml.template mapped-site.xml 修改成我们需要的mapped-site.xml,之后 进入vi mapped-site.xml找到<configuration>把配置信息放入中间,<configuration>把配置信息放入中间
<!- - 指定mr运行在yarn上- ->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
在集群上分发以上所有文件:
首先在其他服务器上,在/ect/opt/下新建一个module空文件,之后运行xsync module/输入密码之后就发送
然后在改一下103和104的配置信息,进入配置文件sudo vi /etc/profile,进入最后一行配置JAVA_HOME,
全局变量 export JAVA_HOME=<jdk的绝对路径> export PATH=$PATH:$JAVA_HOME/bin
配置hadoop环境变量进入hadoop拿到绝对路径,进入配置文件sudo vi /etc/profile,进入最后一行配置HAOOD_HOME,全局变量
export HADOOP_HOME=<jdk的绝对路径> export PATH=$PATH:$HADOOP/bin export PATH=$PATH:$JAVA_HOME:/sbin
之后通过source /etc/profile 使配置文件生效
之后启动集群:
如果集群是第一次启动需要格式化一下namenode,输入hdfs点击回车,之后输入hdfs namenode-format点确定,开始格式,格式是为了生成一个工作地址为了告诉namenode去哪工作
之后输入hadoop-daemon.sh start 起namenode就后面加上namenode点确定,jps查看是否多了一个叫namenode的进程,在网页看
可以输入hadoop102:50070
之后启动hadoop-daemon.sh start datanode jps查看进程,存储数据的地方在网页刷新查看存储大小,
进入103和104输入cd modul/hadoop-2.7.2/启动103的namenode和datanode
做一个群起脚本:
ssh hadoop103跳转到103窗口,ssh登录,免密登录原理:首先在A服务器生成密钥对,A发送公钥到B,B拿到公钥后加密返回给A,A用私钥解密,之后得到SSh,在发送给B,B验证来完成登录
102 ssh-keygen -t rsa 生成密钥对,点击三下回车
103 ssh-keygen -t rsa 生成密钥对,点击三下回车
102 ssh -copy-id hadoop103这是一个ssh拷贝公钥的命令 之后会提示输入密码,之后可以通过ssh hadoop103可以直接登录
登到自己也需要设置下。
开始写脚本
cd etc/hadoop 找到slaves默认脚本,进入vi 编辑模式:添加节点名,hadoop103
hadoop104
在103修改vi etc/hadoop/slaves下添加上102,103,104保存退出,之后把103提交给别的ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop102
群关脚本:stop-dfs.sh 群启脚本在102:start-dfs.sh 之后启动yarn:start-yarn.sh 群关yarn:stop-yarn.sh