Hadoop:Hadoop单机伪分布式的安装和配置



 Hadoop:Hadoop单机伪分布式的安装和配置 


1、安装后设置ssh

可以使用如下命令登陆本机:ssh localhost
此时会有SSH首次登陆提示,输入 no,(如果输入yes再输入密码,这样就登陆到本机了,但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便,如果进去了首先退出刚才的 ssh)。
回到我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit                           # 退出刚才的 ssh localhost,或者用ctrl+d
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以,如果已经存在,直接进入下一步就可以了(lz的就存在,说明以前已经用过这个)
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权,把id_rsa.pub 追加到授权的 key 里面去


关于设置hadoop用户 (前面说了,其实完全可以不用)


2、设置环境变量
注:jdk包需要自行安装


PATH=$PATH:$HOME/.local/bin:$HOME/bin
export JAVA_HOME=/usr/jdk1.8.0_161
export PATH
export HADOOP_HOME=/opt/hadoop/hadoop-2.9.0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PATH="$PATH:${JAVA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin"
export PATH
 
export CLASSPATH=$CLASSPATH:${JAVA_HOME}/lib:/opt/hadoop/hadoop-2.9.0/etc/hadoop:/opt/hadoop/hadoop-2.9.0/share/hadoop/common/lib/*:/opt/hadoop/hadoop-2.9.0/share/hadoop/common/*:/opt/hadoop/hadoop-2.9.0/share/hadoop/hdfs:/opt/hadoop/hadoop-2.9.0/share/hadoop/hdfs/lib/*:/opt/hadoop/hadoop-2.9.0/share/hadoop/hdfs/*:/opt/hadoop/hadoop-2.9.0/share/hadoop/yarn/lib/*:/opt/hadoop/hadoop-2.9.0/share/hadoop/yarn/*:/opt/hadoop/hadoop-2.9.0/share/hadoop/mapreduce/lib/*:/opt/hadoop/hadoop-2.9.0/share/hadoop/mapreduce/*:/opt/hadoop/hadoop-2.9.0/contrib/capacity-scheduler/*.jar


3、修改配置文件
编辑core-site.xml 文件

[hadoop@localhost hadoop]$ vi core-site.xml 
 <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at


    http://www.apache.org/licenses/LICENSE-2.0


  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->


<!-- Put site-specific property overrides in this file. -->
<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <value>file: /opt/hadoop/hadoop-2.9.0/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost:9000</value>
        </property>
</configuration>


编辑 hdfs-site.xml 文件
[hadoop@localhost hadoop]$ vi hdfs-site.xml
<configuration>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file: /opt/hadoop/hadoop-2.9.0/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file: /opt/hadoop/hadoop-2.9.0/tmp/dfs/data</value>
        </property>
</configuration>


Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),
因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行,
不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,
而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。
同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。



修改配置文件:libexec/hadoop-config.sh 


export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jre
# Attempt to set JAVA_HOME if it is not set
if [[ -z $JAVA_HOME ]]; then
  # On OSX use java_home (or /Library for older versions)
  if [ "Darwin" == "$(uname -s)" ]; then
    if [ -x /usr/libexec/java_home ]; then
      export JAVA_HOME=($(/usr/libexec/java_home))
    else
      export JAVA_HOME=(/Library/Java/Home)
    fi
  fi


  # Bail if we did not detect it
  if [[ -z $JAVA_HOME ]]; then
    echo "Error: JAVA_HOME is not set and could not be found." 1>&2
    exit 1
  fi
fi


4、配置完成后,执行 NameNode 的格式化
bin/hdfs namenode -format
开启 NameNode 和 DataNode 守护进程


5、启动hadoop
bin/start-dfs.sh




6、验证是否启动hadoop  成功
通过jps查看启动的Hadoop进程


启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: 
“NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,
请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。
如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
 
pika:~$jps

 
7、拷贝文件
#启动hadoop并将input文件copy到hdfs中
pika:~$hdfs dfs -ls /
pika:~$hdfs dfs -mkdir -p /input
pika:~$hdfs dfs -ls /
 

将输入文件copy到hadoop hdfs文件系统中供其使用(.java文件是可以不用copy进去的)

 

$hdfs dfs -ls /input



 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值