hadoop単機のインストール、白い手の最も詳しい教程-ali 0 th
14469 ワード
Author : Ali0th
Date : 2019-4-6
前言
最近ビッグデータを手に入れて、hadoopに入って、単機の配置は数日、やっと配置して、多くの穴に出会った.この文章は私のプロセス全体をコードして、各ステップとエラー処理を含む.
環境
システムサービス
iptablesを閉じる
selinuxサービスを閉じる(再起動が有効)
hostname構成
ここでデフォルトはlocalhostです.localdomain
ssh非密ログイン
成功したかどうかをテストし、次のコマンドを実行します.パスワードを入力しないと成功します.
JAvaインストール
yumでのインストール
環境変数の表示
jvmディレクトリの表示
出力は、
グローバル変数の設定:
環境設定を追加するには、次のようにします.
グローバル変数がすぐに有効になります
hadoopダウンロードと関連環境構成
アカウントの作成
rootでvisudoを実行し、hadoopをsudoersに加入し、
開始アイテムを追加します.
データストアディレクトリを作成するには、次の手順に従います. NameNodeデータ格納ディレクトリ:/usr/local/data/hadoop/name SecondaryNameNodeデータ格納ディレクトリ:/usr/local/data/hadoop/secondary DataNodeデータ格納ディレクトリ:/usr/local/data/hadoop/data 一時データ格納ディレクトリ:/usr/local/data/hadoop/tmp
hadoop構成と起動
hadoop-envを設定します.sh、hdfs-site.xml、core-site.xml、mappred-site.xml、yarn-site.xml
構成ディレクトリへ:
hadoop-env.sh
追加
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
arn.resourcemanager.hostname yarnクラスタのボス
dfs起動
hadoopファイルシステムのフォーマット
dfsの起動
jpsを使用して、サービスが開始されたかどうかを確認します.
すべて開始
結果のスクリーンショットは次のとおりです.
誤報
質問:
localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
解決:
sshパスワードなしで他のノードのホストに接続できない場合、hadoopを起動すると他のホストのパスワードが入力され、正しく入力しても認証できません
質問:
localhost: ERROR: Unable to write in/usr/local/hadoop/logs. Aborting.
解決:
質問:
localhost:/usr/local/hadoop/bin/../libexec/hadoop-functions.sh: line 1842:/tmp/hadoop-hadoop-namenode.pid: Permission denied localhost: ERROR: Cannot write namenode pid/tmp/hadoop-hadoop-namenode.pid.
解決:
修正
質問:
[hadoop@localhost hadoop]$ ./sbin/start-dfs.sh Starting namenodes on [localhost] Starting datanodes Starting secondary namenodes [localhost] 2019-04-06 07:26:22,110 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解決:
stackoverflow.com/questions/1…
質問:
2019-04-06 13:08:58,376 INFO util.ExitUtil: Exiting with status 1: java.io.IOException: Cannot remove current directory:/usr/local/data/hadoop/tmp/dfs/name/current
解決:
権限の問題
資料
juejin.im/entry/5a0a8…
blog.51cto.com/xpleaf/2082…
Ubuntuの下でhadoopを構築するとPermission denied(publickey,password)の問題が発生する
Date : 2019-4-6
前言
最近ビッグデータを手に入れて、hadoopに入って、単機の配置は数日、やっと配置して、多くの穴に出会った.この文章は私のプロセス全体をコードして、各ステップとエラー処理を含む.
環境
CentOS release 6.4
openjdk version "1.8.0_201"
システムサービス
iptablesを閉じる
# :
service iptables stop
#
chkconfig iptables off
selinuxサービスを閉じる(再起動が有効)
vim /etc/selinux/config
SELINUX=disabled
hostname構成
vim /etc/sysconfig/network
ここでデフォルトはlocalhostです.localdomain
ssh非密ログイン
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
成功したかどうかをテストし、次のコマンドを実行します.パスワードを入力しないと成功します.
ssh localhost
JAvaインストール
yumでのインストール
# yum jdk
yum search java
# jdk
yum install java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
環境変数の表示
export
vi /etc/profile
jvmディレクトリの表示
ll /usr/lib/jvm/
出力は、
java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
がJAVA_HOME
ディレクトリである.[root@localhost java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64]# ll /usr/lib/jvm/
total 4
lrwxrwxrwx. 1 root root 26 Apr 3 15:47 java -> /etc/alternatives/java_sdk
lrwxrwxrwx. 1 root root 32 Apr 3 15:47 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0
drwxr-xr-x. 7 root root 4096 Apr 3 15:47 java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
lrwxrwxrwx. 1 root root 48 Apr 3 15:47 java-1.8.0-openjdk.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
lrwxrwxrwx. 1 root root 34 Apr 3 15:47 java-openjdk -> /etc/alternatives/java_sdk_openjdk
lrwxrwxrwx. 1 root root 21 Apr 3 15:47 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 Apr 3 15:47 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx. 1 root root 52 Apr 3 15:47 jre-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre
lrwxrwxrwx. 1 root root 52 Apr 3 15:47 jre-1.8.0-openjdk.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre
lrwxrwxrwx. 1 root root 29 Apr 3 15:47 jre-openjdk -> /etc/alternatives/jre_openjdk
グローバル変数の設定:
vim /etc/profile
環境設定を追加するには、次のようにします.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
グローバル変数がすぐに有効になります
source /etc/profile
hadoopダウンロードと関連環境構成
アカウントの作成
groupadd hadoop
useradd hadoop -g hadoop
ll -d /home/hadoop
grep hadoop /etc/passwd /etc/shadow /etc/group
passwd hadoop # hadoop123
rootでvisudoを実行し、hadoopをsudoersに加入し、
root ALL=(ALL) ALL
で加入する.hadoop ALL=(ALL) ALL
hadoop
をダウンロードして解凍します.wget http://apache.claz.org/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
tar -xzf hadoop-3.1.2.tar.gz
sudo mv hadoop-3.1.2 /usr/local/hadoop
開始アイテムを追加します.
vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
データストアディレクトリを作成するには、次の手順に従います.
mkdir -p /usr/local/data/hadoop/name
mkdir -p /usr/local/data/hadoop/secondary
mkdir -p /usr/local/data/hadoop/data
mkdir -p /usr/local/data/hadoop/tmp
hadoop構成と起動
hadoop-envを設定します.sh、hdfs-site.xml、core-site.xml、mappred-site.xml、yarn-site.xml
構成ディレクトリへ:
cd /usr/local/hadoop/etc/hadoop/
hadoop-env.sh
追加
JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
core-site.xml
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://localhost.localdomain:9000value>
<description>hdfs description>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/usr/local/hadoop/data/value>
<description>hadoop description>
property>
configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replicationname>
<value>1value>
property>
configuration>
mapred-site.xml
# yran
mv mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
configuration>
yarn-site.xml
arn.resourcemanager.hostname yarnクラスタのボス
<configuration>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>localhost.localdomainvalue>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
configuration>
dfs起動
hadoopファイルシステムのフォーマット
cd /usr/local/hadoop
./bin/hdfs namenode -format
dfsの起動
./sbin/start-dfs.sh
jpsを使用して、サービスが開始されたかどうかを確認します.
[hadoop@localhost hadoop]$ jps
6466 NameNode
6932 Jps
6790 SecondaryNameNode
6584 DataNode
すべて開始
./sbin/start-all.sh
結果のスクリーンショットは次のとおりです.
誤報
質問:
localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
解決:
sshパスワードなしで他のノードのホストに接続できない場合、hadoopを起動すると他のホストのパスワードが入力され、正しく入力しても認証できません
質問:
localhost: ERROR: Unable to write in/usr/local/hadoop/logs. Aborting.
解決:
sudo chmod 777 -R /usr/local/hadoop/
質問:
localhost:/usr/local/hadoop/bin/../libexec/hadoop-functions.sh: line 1842:/tmp/hadoop-hadoop-namenode.pid: Permission denied localhost: ERROR: Cannot write namenode pid/tmp/hadoop-hadoop-namenode.pid.
解決:
修正
hadoop-env.sh
export HADOOP_PID_DIR=/usr/local/hadoop/tmp/pid
質問:
[hadoop@localhost hadoop]$ ./sbin/start-dfs.sh Starting namenodes on [localhost] Starting datanodes Starting secondary namenodes [localhost] 2019-04-06 07:26:22,110 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解決:
stackoverflow.com/questions/1…
cd /usr/local/hadoop/lib
ldd libhadoop.so.1.0.0
./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
linux-vdso.so.1 => (0x00007fff901ff000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8ceda5d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8ced83f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8ced4ac000)
/lib64/ld-linux-x86-64.so.2 (0x00000031c1e00000)
# download
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2
wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2
#
tar -xjvf glibc-2.14.tar.bz2
cd glibc-2.14
tar -xjvf ../glibc-linuxthreads-2.5.tar.bz2
# , '#error "glibc cannot be compiled without optimization"'
cd ../
export CFLAGS="-g -O2"
glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks
make
sudo make install
質問:
2019-04-06 13:08:58,376 INFO util.ExitUtil: Exiting with status 1: java.io.IOException: Cannot remove current directory:/usr/local/data/hadoop/tmp/dfs/name/current
解決:
権限の問題
sudo chown -R hadoop:hadoop /usr/local/data/hadoop/tmp
sudo chmod -R a+w /usr/local/data/hadoop/tmp
資料
juejin.im/entry/5a0a8…
blog.51cto.com/xpleaf/2082…
Ubuntuの下でhadoopを構築するとPermission denied(publickey,password)の問題が発生する