windows 10开启bash on windows,配置sshd,部署hadoop
1、安装Bash on Windows
这个参考官网步骤,很容易安装,https://msdn.microsoft.com/en-us/commandline/wsl/install_guide
安装过程很简单,主要是从应用商店下载bash的时候,比较容易失败,可能需要多试几次。
2、配置SSHD
自带的命令行比较简陋,操作不方便。可以开启sshd,然后用xshell等终端登录。
/etc/ssh/ vim sshd_config #修改以下几项 Port 2222 #windows 10会默认占用22端口,所以这里需要换成22端口外的其他端口。 ListenAddress 0.0.0.0 UsePrivilegeSeparation no PasswordAuthentication yes #运行 sudo ssh-keygen -A
#测试可以使用ssh username@localhost -p 2222进行登录了 #编辑/etc/sudoers 添加下面一行(using sudo visudo for safety): %sudo ALL=(ALL) NOPASSWD: /usr/sbin/sshd -D#便于从外部启动sshd。
3、开启windows自动运行sshd
新建startssh.bat cd C:\Windows\System32 bash.exe -c "sudo /usr/sbin/sshd -D" 新建 autostartssh.vbe set ws=wscript.createobject("wscript.shell") ws.run "startssh.bat /start",0 双击autostartssh.vbe,启动sshd
将autostartssh.vbe加入windows自启动
4、创建hadoop用户
sudo useradd -m hadoop
sudo passwd hadoop
sudo adduser hadoop sudo
5、设置免密码登录
使用hadoop账号登录
cd ~
ssh-keygen -t rsa
cd .ssh
cat ./id_rsa.pub >> ./authorized_keys
6、配置java环境
vim ~/.bashrc
export JAVA_HOME=/home/hadoop/programs/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin
source ~/.bashrc
7、安装hadoop
tar -zxf hadoop-2.8.0.tar.gz
cd hadoop-2.8.0
./bin/hadoop version
默认单机版,运行测试例子
mkdir ./input
cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*
8、配置伪分布式
vim etc/hadoop/core-site.xml
#路径必须放在能设置linux权限的目录
修改为
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/programs/hadoop-2.8.0/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改 etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/programs/hadoop-2.8.0/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/programs/hadoop-2.8.0/tmp/dfs/data</value>
</property>
</configuration>
格式化hdfs
./bin/hdfs namenode -format
vim ~/.bashrc
export HADOOP_SSH_OPTS="-p 2222" #根据实际情况编写,ssh的端口设置
vim etc/hadoop/hadoop-env.sh
注释掉export JAVA_HOME=${JAVA_HOME}, 添加新的JAVA_HOME
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/hadoop/programs/jdk1.8.0_131
启动
./sbin/start-dfs.sh
停止
./sbin/stop-dfs.sh
使用jps来判断是否启动成功, “NameNode”、”DataNode” 和 “SecondaryNameNode”
9、运行伪分布式例子
./bin/hdfs dfs -mkdir -p /user/hadoop
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
./bin/hdfs dfs -cat output/*
10、配置YARN
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vim etc/hadoop/yarn.site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
#如果出现running beyond virtual memory limits,添加下面这个配置
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
./sbin/start-yarn.sh # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver # 开启历史服务器,才能在Web中查看任务运行情况
运行jps
多了 NodeManager 和 ResourceManager 两个后台进程