hadoop配置-WIN10Linux子系統

hadoop專屬用戶建立html

$ sudo useradd -m hadoop -s /bin/bash
複製代碼

設置密碼:java

$ sudo passwd hadoop
複製代碼

須要輸入兩次密碼node

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
複製代碼

提高hadoop用戶的權限爲管理員(雖然增長了管理員權限,但後面有些地方仍是須要進入root用戶進行操做)git

$ sudo adduser hadoop sudo
複製代碼

切換到hadoop用戶github

$ su hadoop
複製代碼

執行以後shell

......
Get:28 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [1604 B]
Fetched 11.9 MB in 5min 13s (37.9 kB/s)
Reading package lists... Done
複製代碼

安裝SSH並配置SSH無密碼登陸 網上是說Ubuntu已經自帶了SSH client,還須要安裝SSH serverapache

$ sudo apt-get install openssh-server
複製代碼

手動啓動sshd,重啓WSL不會啓動sshd:ubuntu

$ sudo service ssh restart
複製代碼

獲得vim

* Restarting OpenBSD Secure Shell server sshd
複製代碼

查看是否重啓成功瀏覽器

$ sudo service ssh status
複製代碼

配置ssh開啓自啓

$ cd /etc/profile.d/
複製代碼

建立ssh.sh文件

$ sudo vim ssh.sh
複製代碼

寫入:

sudo service ssh restart
複製代碼

而後使用:wq保存文件(下同) 這樣就能夠開機自動啓動了

SSH設置和密鑰生成 SSH設置須要在集羣上執行不一樣的操做,如啓動,中止和分佈式守護shell操做。進行身份驗證不一樣的Hadoop用戶,須要一種用於Hadoop的用戶提供的公鑰/私鑰對,並用不一樣的用戶共享。

$ su hadoop
複製代碼
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
複製代碼

驗證ssh

$ ssh localhost
複製代碼

接下來能夠再次嘗試ssh localhost,如若無需再次輸入密碼,既成功。

JDK安裝

$ sudo apt-get install openjdk-8-jdk
複製代碼

設置JDK環境變量

$ cd /etc/profile.d/
複製代碼

新建java.sh文件(須要輸入當前密碼)

$ sudo vim java.sh
複製代碼

使source配置文件生效

$ source java.sh
複製代碼

輸出JAVA_HOME路徑,查看配置是否生效

$ echo $JAVA_HOME
複製代碼

輸出如下內容說明配置已經生效

$ /usr/lib/jvm/java-8-openjdk-amd64/
複製代碼

查看是否java安裝成功

$ java -version
複製代碼

顯示如下信息說明安裝成功

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
複製代碼

Hadoop 最新版:hadoop.apache.org/releases.ht…

$ cd /usr/local/
 $ wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
複製代碼
$ tar -vzxf hadoop-3.1.2.tar.gz # 解壓
 $ mv hadoop-3.1.0 hadoop # 重命名
 $ cd hadoop
 $ ./bin/hadoop version
複製代碼

你將會看到相似內容:

Hadoop 3.1.2
Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9a
Compiled by sunilg on 2019-01-29T01:39Z
Compiled with protoc 2.5.0
From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.1.2.jar
複製代碼
$ cd /etc/profile.d/
$ sudo vim hadoop.sh
複製代碼

輸入如下內容:

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
複製代碼

應用全部更改到當前正在運行的系統

$ source /etc/profile
複製代碼

配置core-site.xml

core-site.xml文件中包含,如:用於Hadoop實例的端口號,分配給文件系統,存儲器限制用於存儲數據存儲器和讀/寫緩衝器的大小的信息。

$ sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
複製代碼

寫入如下內容:

<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>
複製代碼

配置hadoop-env.sh 須要添加JAVA_HOME的路徑

$ echo $JAVA_HOME
複製代碼
$ sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
複製代碼

找到被註釋掉的JAVA_HOME,填寫上面輸出的JAVA_HOME地址

export JAVA_HOME= /usr/lib/jvm/java-8-openjdk-amd64/
複製代碼

配置hdfs-site.xml

hdfs-site.xml文件中包含,如:複製數據的值,NameNode的路徑,本地文件系統,要存儲Hadoop基礎架構的Datanode路徑的信息。

$ sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
複製代碼

寫入如下內容:

<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的基礎架構進行更改。

配置完成後,執行NameNode的格式化

$ /usr/local/hadoop/bin/hdfs namenode -format
複製代碼

出現相似輸出,說明名稱節點設置成功

2019-05-17 16:34:23,646 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/hadoop/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 393 bytes saved in 0 seconds .
2019-05-17 16:34:23,685 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2019-05-17 16:34:23,700 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ZERO.localdomain/127.0.1.1
************************************************************/
複製代碼

下面的命令用來啓動DFS。執行這個命令將啓動Hadoop文件系統。

這裏不能再root下運行,切換到 hadoop用戶下運行

$ sudo /usr/local/hadoop/sbin/start-dfs.sh
複製代碼

出現權限問題

Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [account.jetbrains.com]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
複製代碼

運行 sudo chown -R hadoop:root /usr/local/hadoop命令,把hadoop目錄全部用戶改到hadoop上。

再次運行

# 注意:不能加sudo
$ /usr/local/hadoop/sbin/start-dfs.sh
複製代碼

出現相似輸出,說明安裝成功:

Starting namenodes on [localhost]
localhost: namenode is running as process 16525.  Stop it first.
Starting datanodes
Starting secondary namenodes [account.jetbrains.com]
account.jetbrains.com: secondarynamenode is running as process 16988.  Stop it first.
2019-05-17 17:04:20,232 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
複製代碼

至此,完成配置,可經過jps查看是否啓動成功。

$ jps
複製代碼

結果:

16988 SecondaryNameNode
16525 NameNode
18269 Jps
複製代碼

訪問Hadoop上的瀏覽器 訪問Hadoop的默認端口號爲50070。使用如下網址,以獲取Hadoop服務在瀏覽器中。

http://localhost:50070

若是發現沒法訪問,手動修改hdfs-site.xml, 修改hdfs-site.xml

$ sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
複製代碼

添加以下:

<property>
  <name>dfs.http.address</name>
  <value>127.0.0.1:9870</value>
</property>

複製代碼
$ sudo vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
複製代碼

修改以下內容:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
複製代碼

mapred-site.xml

此文件用於指定MapReduce框架以使用。默認狀況下Hadoop包含yarn-site.xml模板。首先,它須要從mapred-site.xml複製模板到mapred-site.xml文件,使用下面的命令來。

$ sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
複製代碼

提供一個默認的mapred-site.xml配置文件:mapred-default.xml 將默認的文件複製到mapred-site.xml中,並添加<configuration></configuration>標籤之間添加如下屬性

<configuration> <!--複製時不包含configuration標籤-->
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
</configuration>
複製代碼

獲取啓動,執行此命令將啓動yarn守護進程。

$ /usr/local/hadoop/sbin/start-yarn.sh
複製代碼

以後須要要啓動Hadoop直接使用如下命令:

$ /usr/local/hadoop/sbin/start-all.sh
複製代碼

原文:zero.osai.club/hadoop/win/…

相關文章
相關標籤/搜索