云计算与大数据入门 —— 环境配置

云计算与大数据入门 —— 环境配置

Hadoop 伪分布式配置

首先我们进入 Hardoop 路径下,然后修改 core-site.xml 配置文件

cd /usr/local/hardoop
gedit core-site.sml
# 修改如下内容
<configuration>
</configuration>
# 修改后的内容
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
# 这里如果有引用在 9000 端口的话,推荐切换到 8088 端口

同样的方式修改 hdfs-site.xml:

cd /usr/local/hardoop
gedit hdfs-site.xml
# 修改如下内容
<configuration>
</configuration>
# 修改后的内容
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/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,否则在接下来的步骤中可能会出错。

配置完成后,执行 NameNode 的格式化:

cd /usr/local/hadoop
./bin/hdfs namenode -format

显示如下内容,运行成功:

如果这里出现如下警告:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

首先进入这个目录:/usr/local/hadoop/lib/native

然后查看这个目录下存放了什么:

可以看出,libhadoop.so 存放在这个目录下

接下来我们回到 /usr/local/hadoop 目录,紧接着输入以下代码:

grep -R 'java.library.path' *

在hadoop包中搜索发现,java.library.path 被定义为 $JAVA_LIBRARY_PATH,但是我们没有定义 JAVA_LIBRARY_PATH
那么问题就好解决了,配置这个环境变量就好啦

在环境变量添加如下:

export JAVA_LIBRARY_PATH=/usr/local/hadoop/lib/native

然后重启环境变量即可

环境变量文件下,我们还有添加瑞啊内容:

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

接着开启 NameNode 和 DataNode 守护进程:

cd /usr/local/hadoop
./sbin/start-dfs.sh

若出现如下 SSH 提示,输入 yes 即可:

最后我们通过 jps 命令来判断是否启用成功,启用成功如图:

Hadoop 无法正常启动的解决方法: 一般可以查看启动日志来排查原因,注意几点:

启动时会提示形如 "DBLab-XMU: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.out",其中 DBLab-XMU 对应你的机器名,但其实启动日志信息是记录在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.log 中,所以应该查看这个后缀为 .log 的文件

每一次的启动日志都是追加在日志文件之后,所以得拉到最后面看,对比下记录的时间就知道了

一般出错的提示在最后面,通常是写着 Fatal、Error、Warning 或者 Java Exception 的地方

可以在网上搜索一下出错信息,看能否找到一些相关的解决方法

此外,若是 DataNode 没有启动,可尝试如下的方法(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做):

# 针对 DataNode 没法启动的解决方法
cd /usr/local/hadoop
./sbin/stop-dfs.sh   # 关闭
rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format   # 重新格式化 NameNode
./sbin/start-dfs.sh  # 重启

成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件

HBase 伪分布式模式配置

配置 /usr/local/hbase/conf/hbase-env.sh 命令如下:

配置 JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK

HBASE_CLASSPATH 设置为本机 Hadoop 安装目录下的 conf 目录(即/usr/local/hadoop/conf)

# 在文件末尾添加
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_361
export HBASE_CLASSPATH=/usr/local/hadoop/conf 
export HBASE_MANAGES_ZK=true

配置 /usr/local/hbase/conf/hbase-site.xml

修改 hbase.rootdir,指定 HBase 数据在 HDFS 上的存储路径;将属性 hbase.cluter.distributed 设置为 true。假设当前 Hadoop 集群运行在伪分布式模式下,在本机上运行,且 NameNode 运行在 9000 端口(这个端口与前面 Hadoop 配置使用的端口一致)。

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://localhost:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
</configuration>

接下来测试运行 HBase

第一步:首先登陆 ssh,再切换目录至 /usr/local/hadoop ;再启动 hadoop,如果已经启动 hadoop 请跳过此步骤。命令如下:

ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh

输入命令 jps,能看到 NameNode,DataNode 和 SecondaryNameNode 都已经成功启动,表示 hadoop 启动成功,截图如下:

第二步:切换目录至 /usr/local/hbas ,再启动 HBase 命令如下:

cd /usr/local/hbase
bin/start-hbase.sh

启动成功,输入命令 jps ,看到以下界面说明 hbase 启动成功

进入 shell 界面:

bin/hbase shell

shell 界面的命令与 MySQL shell 界面的命令相似

停止 HBase 运行,命令如下:

bin/stop-hbase.sh

注意:如果在操作 HBase 的过程中发生错误,可以通过{HBASE_HOME}目录(/usr/local/hbase)下的logs子目录中的日志文件查看错误原因

这里启动关闭 Hadoop 和 HBase 的顺序一定是:

启动 Hadoop—> 启动 HBase—> 关闭 HBase—> 关闭 Hadoop

猜你喜欢

转载自blog.csdn.net/m0_59161987/article/details/129434834
今日推荐