0%

Hadoop伪分布式安装 Ubuntu 18.04

1. 下载相关文件

2. 安装

2.1 安装JDK

添加环境变量

export JAVA_HOME=/opt/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

2.2 安装ssh rsync

 sudo apt-get install ssh
 sudo apt-get install rsync

配置免密登录

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

3. 运行

3.1 初始化Hadoop

bin/hdfs namenode -format

这里可能会报错JAVA_HOME Not Found, 解决办法如下:

vim /opt/hadoop-2.9.2/etc/hadoop/hadoop-env.sh

修改
export JAVA_HOME = ${JAVA_HOME}
为
export JAVA_HOME=/opt/jdk1.8.0_181

配置Hadoop文件

1. etc/hadoop/core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

2. etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

3.2 启动

sbin/start-dfs.sh

打开浏览器: http://localhost:50070/, 显示如下界面,成功

4. 其他

4.1 创建HDFS目录

bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/ying

4.2 测试文件上传

bin/hdfs dfs -put etc/hadoop/ input
# 查看文件
bin/hdfs dfs -ls /user/ying/input
当然,也可以通过它的可视化界面查看文件

4.3 运行示例程序

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'

bin/hdfs dfs -get output output
cat output/*

5. 配置yarn

1. etc/hadoop/mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

1. etc/hadoop/yarn-site.xml(这里从template复制一份出来)
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

5.1 启动yarn

sbin/start-yarn.sh

打开本地网址: http://localhost:8088/

显示如下则成功:

停止

sbin/stop-dfs.sh
sbin/stop-yarn.sh

这里补充一点
在配置core-site.xml时,我们最好指定hadoop.tmp.dir, 因为hadoop默认的文件夹在/tmp目录下,所有机器重启后会出现无法启动的情况(无法访问50070端口), 在配置文件core-site.xml中加入以下属性,并创建自定义的tmp目录(不要在/tmp目录下创建)

<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop_tmp</value>
</property>